A full-stack real-time chat application built with the MERN stack and WebSockets, focused on privacy-first communication.
Users can communicate without sharing phone numbers, making it ideal for college groups, hostels, societies, and events.
- Website: https://sparshsharma.vercel.app
- Chat App: https://chat-mmln.onrender.com
⚠️ Backend is hosted on Render (free tier) — first load may take 30–40 seconds due to cold start.
Most messaging platforms require users to share personal phone numbers or social profiles, which is not suitable for privacy-conscious environments like colleges, hostels, and societies.
- WhatsApp → Phone number required
- Telegram → Phone number + contact notifications
- Instagram/Facebook → Personal identity exposure
A secure chat platform that enables communication using only email and password, ensuring privacy without compromising usability.
- JWT authentication with HTTP-only cookies
- bcrypt password hashing (10 salt rounds)
- No phone number required
- Secure protected routes
- WebSocket communication using Socket.IO
- Instant message delivery
- Online/offline user tracking
- Message persistence in MongoDB
- Optimistic UI updates
- Image uploads via Cloudinary
- Supports files up to 100MB
- CDN-optimized delivery
- Fully responsive design
- Tailwind CSS + DaisyUI
- Multiple themes (system-based)
- Loading states & skeleton loaders
- Browser notifications for new messages
- Google Gemini AI (code assistance)
- YouTube Shorts integration (no login required)
- Joke API
- Quote API
- Horoscope API
- Multiplayer Chess game (WebSocket-based)
- React (Vite)
- Tailwind CSS
- DaisyUI
- Zustand (state management)
- Axios
- Socket.IO Client
- React Router DOM
- Node.js
- Express.js
- MongoDB + Mongoose
- Socket.IO
- JWT
- bcrypt
- Cloudinary
- Frontend: Vercel
- Backend: Render
- Database: MongoDB Atlas
- Media Storage: Cloudinary CDN
backend/ ├── models/ ├── controllers/ ├── routes/ ├── middleware/ └── lib/
frontend/ ├── pages/ ├── components/ ├── store/ ├── api/ └── lib/
- User registers with name, email, password
- Password is hashed using bcrypt
- User data stored in MongoDB
- JWT token generated
- Token sent via HTTP-only cookie
- Access granted to protected routes
- Client connects using Socket.IO with userId
- Server maps
userId → socketId - Message sent via REST API
- Message stored in MongoDB
- Socket emits message to receiver
- UI updates instantly
- Image converted to base64 on frontend
- Sent to backend
- Uploaded to Cloudinary
- Secure URL returned
- URL stored in MongoDB
- Render free tier causes cold starts
- Single profile image per user (currently)
- Group chats not implemented yet
Cron jobs can be used to keep the backend warm.
- Read receipts & typing indicators
- Group chats
- Message editing & deletion
- Voice messages & video calls (WebRTC)
- Push notifications
- End-to-end encryption
- Mobile app (React Native)
- Desktop app (Electron)
- College project teams
- Hostel or society communication
- Event-based group chats
- Anonymous feedback systems
- Privacy-focused communities
A privacy-first real-time chat application built with MERN and WebSockets, enabling secure communication without phone numbers, featuring real-time messaging, media sharing, AI assistance, and production-ready deployment.
Sparsh Sharma
Full-Stack Developer
🌐 https://sparshsharma.vercel.app
⭐ If you like this project, consider giving it a star!
