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!
