
Real-Time Chat App
Web-based chat app with personal/group rooms, unique identities, and image sharing over WebSockets.
Next.jsTailwindCSSFastAPIMongoDBsocket.io
About this project
The challenge was enabling true real-time messaging — not polling — across personal and group chat rooms with persistent identities. The frontend is Next.js with TailwindCSS; the backend uses FastAPI with socket.io for the WebSocket layer and MongoDB for message persistence. The most interesting problem was handling image sharing over WebSockets: large payloads needed chunking to avoid dropped frames, which required a custom buffering protocol on both ends.
- Real-time WebSocket messaging via socket.io — no polling
- Personal and group chat rooms with persistent identities
- Image sharing with custom chunk-buffering protocol
Key features
Unique identities
Persistent across sessions
Personal chat
Direct messaging
Group rooms
Multi-user channels
Image sharing
Chunked over WebSocket
Tech stack
Next.js
TailwindCSS
FastAPI
MongoDB
socket.io

