Anonymous Real-Time Random Chat Application
Connect instantly with strangers worldwide. Decoupled architecture with a Vercel-hosted frontend and Dokploy VPS backend.
Buzzly Chat is a modern, real-time random chat application that connects users anonymously for instant conversations. Built with a decoupled monorepo architecture, the static frontend is optimized for global edge delivery via Vercel, while the long-lived WebSocket backend runs inside Docker on Dokploy VPS.
- 🎭 Anonymous Chatting — Random temporary identities (Anime-themed names) without registration or personal data logging.
- ⚡ Real-Time WebSockets — Low-latency bidirectional messaging powered by Socket.IO.
- ⏭️ Skip & Pair System — Instant O(1) partner matching and automatic re-queuing upon skip or disconnect.
- 🎨 Modern Responsive UI — Material Design-inspired aesthetic with audio notification support.
- 🏗️ Decoupled Monorepo Architecture — Clean separation into
frontend/,backend/, andtests/directories for effortless scaling.
Buzzly-Chat/
├── 📁 backend/ # Express & Socket.IO server engine
│ ├── 🐳 Dockerfile # Production Docker build setup for Dokploy
│ ├── 📦 package.json # Server dependencies
│ └── 📜 server.js # Real-time user pairing & heartbeat logic
│
├── 📁 frontend/ # Static client UI assets (Deployed to Vercel)
│ ├── ⚙️ config.js # Dynamic environment target resolver
│ ├── 🌐 index.html # Main HTML entrypoint (Socket.IO CDN)
│ ├── 📜 script.js # Client socket event handlers & state
│ ├── 🎨 styles.css # Application styles
│ ├── 🖼️ image/ # Logos & icons
│ └── 🔊 sounds/ # Audio alerts
│
├── 📁 tests/ # Connection benchmark pages & test HTMLs
│ ├── 🧪 connection-test.html
│ └── 🧪 test-mui.html
│
└── 📄 README.md # Project documentation
| Component | Technology | Version / Platform |
|---|---|---|
| Backend Engine | Node.js + Express | v18+ / v22+ |
| Real-Time Layer | Socket.IO | 4.7.x |
| Backend Deployment | Docker + Traefik | Dokploy VPS |
| Frontend UI | Vanilla JS (ES6+) + CSS3 | Vercel (Global CDN) |
git clone https://github.com/mannas006/Buzzly-Chat.git
cd Buzzly-Chat/backend
npm installnpm startOpen http://localhost:3000 in your web browser. Local development automatically serves the static frontend and connects WebSockets to http://localhost:3000.
- Open Dokploy Dashboard -> Create Application.
- Select Provider: GitHub and choose
Buzzly-Chatrepo. - Configure application settings:
- Root Directory:
./backend - Build Type:
Dockerfile - Port:
3000 - Environment Variable:
PORT=3000
- Root Directory:
- Go to Domains, set your API domain (e.g.
https://buzzly-api.yourdomain.com), and enable Let's Encrypt HTTPS. - Click Deploy.
Edit frontend/config.js and set your Dokploy domain:
window.SOCKET_SERVER_URL = window.SOCKET_SERVER_URL || (
window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1'
? window.location.origin
: (window.location.hostname.includes('vercel.app')
? 'https://buzzly-api.yourdomain.com' // <-- Set your Dokploy URL here
: window.location.origin)
);- Import repository on Vercel.
- Set Framework Preset:
Other / Static Site. - Set Root Directory:
./frontend. - Click Deploy.
- Zero Data Persistence — No chat histories or messages are stored in any database.
- Anonymous Sessions — Temporary random display names assigned on connection.
- Transient Memory — In-memory JavaScript
Map/Setpairing cleanup on disconnect.
This project is open source under the MIT License.