A modern, customizable, self-hosted social platform for friend groups — inspired by classic MySpace.
WebNook brings back personal expression, cozy vibes, and privacy to social networking. Designed specifically for friend groups and self-hosters, WebNook lets each user create a cute, highly customized personal page ("Nook") at website.com/nook/username.
Featuring 12 curated themes (Cozy Cat Café, Fluffy Cloud Dream, 8-Bit Pixel Arcade, Magical Girl Kawaii, Windows 9x Classic, Frutiger Aero, Cyberpunk Y2K, etc.), toggleable Web Audio API theme sound effects, laser sweep & file transfer micro-animations, a real-time Visual Sticker Studio, custom MP3 audio playlists, Movies & TV Showcases, Books & StoryGraph Reading Nooks, Spotify & Steam integrations, hardware Passkey / 2FA security, and auto-reloading Docker container self-upgrades.
| Category | Highlights |
|---|---|
| 💬 Direct & Group Messaging | Real-time 1-on-1 and group chats with custom group icons, markdown formatting, and per-Nook theme bubble styling! |
| 😍 Emoji Reactions & Replies | Quick emoji reactions, double-tap shortcuts, custom user reaction preferences, and threaded message replies with cancelable quote previews. |
| 🐛 Bug Reports & Admin Channel | Isolated private support stream where users can report issues directly to site admins, plus locked system announcement broadcasts. |
| 🎵 Continuous Music & Autoplay | Playlist track #1 autoplay toggle, continuous auto-next playback, looping, and theme-styled browser unmute toast banners. |
| 🎨 12 Whimsical Themes | 12 curated themes with custom card shapes, 3D pixel borders, paw print backgrounds, and scalloped edges. |
| 🔊 Theme Sound FX Engine | Web Audio API sound synthesizer producing retro 95 clicks, 8-bit arcade blips, cat purrs, and magical guestbook chimes (toggleable). |
| 🖼️ Visual Sticker Studio | Live interactive canvas to drag, scale, rotate, and layer cute preset or custom stickers anywhere over your profile! |
| 🎬 Movies & TV Showcase | Search film & series databases (TMDB/OMDb) to display poster art, release years, and personal star ratings. |
| 📚 Books & Reading Nook | Search books (Open Library) or import your reading lists directly from StoryGraph CSV files with 1 click. |
| 🤝 Social Mechanics | MySpace-style Top Friends grids, unidirectional favoriting with ⭐ Favorited You badges, and full-width guestbooks. |
| 🔒 Privacy & Security | Private by default profile viewing, fine-grained card visibility controls, email/password + TOTP 2FA & WebAuthn Passkeys. |
| 📦 Scheduled Backups & Recovery | Automated hourly/daily/weekly backups with configurable retention limits, bundling database, branding, and all uploaded media files. |
WebNook is published on Docker Hub as tylerhats/webnook.
Create a docker-compose.yml file:
version: '3.8'
services:
webnook:
image: tylerhats/webnook:latest
container_name: webnook
restart: unless-stopped
ports:
- "4000:4000"
environment:
- PORT=4000
- NODE_ENV=production
- JWT_SECRET=replace_with_secure_random_key
volumes:
- webnook-data:/app/backend/data
- webnook-uploads:/app/backend/uploads
volumes:
webnook-data:
webnook-uploads:Start the container:
docker compose up -dFor Linux servers running directly without Docker:
git clone https://github.com/TylerHats/WebNook.git
cd WebNook
# Execute installer
./install.sh
# Start WebNook server
npm startAccess WebNook at http://localhost:4000.
WebNook natively detects reverse proxies with trust proxy enabled. Protocol headers (X-Forwarded-Proto and X-Forwarded-Host) are automatically used to match WebAuthn Passkey origins across custom domains.
For bare installations needing automated Let's Encrypt SSL certificates:
sudo ./setup-ssl.sh- Backend: Node.js, TypeScript, Express.js.
- Database: SQLite (WAL mode) with automated version tracking (
schema_migrations). - Frontend: React, TypeScript, Vite, Vanilla CSS Theme Engine.
- Authentication: Argon2/bcrypt,
otplib(TOTP),@simplewebauthn(Passkeys / FIDO2). - Containerization: Alpine Multi-stage Docker image.
To cleanly remove build dependencies or purge local data:
./uninstall.shThis project is licensed under the GNU General Public License v3.0 (GPL-3.0).
