A scalable, real-time messaging platform designed for seamless team communication, optimized for performance, security, and intuitive user experience. A production-grade, full-stack real-time chat application built with React, TypeScript, Express, MongoDB, and enhanced using Docker, Socket.IO, Zustand, Upstash Redis, and other modern technologies.
π Live Demo: rocket-chat-sable.vercel.app
π Backend API: rocket-chat-624j.onrender.com/api
- Frontend: React, TypeScript, Zustand, Tailwind CSS
- Backend: Node.js, Express, MongoDB, Upstash Redis, JWT, Cloudinary
- Real-time Communication: Socket.IO, WebSockets
- DevOps: Docker, GitHub Actions (CI/CD ready)
- Deployment: Docker containers, suitable for Kubernetes or Render deployments
- Handling WebSocket Scalability: Implemented Redis Pub/Sub for distributed event broadcasting across multiple server instances.
- Real-Time Delivery Confirmations: Designed a robust optimistic UI with client-side message state management and backend confirmations.
- Rate Limiting & Caching: Optimized API performance using middleware with Redis-backed rate limiting and caching mechanisms.
- Vercel (frontend)
- Render (backend/API)
- Docker Compose (multi-service orchestration)
- Zustand β global, fast, simple state management
- Socket.IO β reliable, scalable real-time messaging
- Multer + Cloudinary Storage β file uploads
- bcryptjs & JWT β authentication & authorization
- Upstash Redis β rate limiting and caching
- Nodemon β hot reloading backend during dev
- Instant messaging
- Online presence
- Read & delivered receipts (ββ)
- "Seen at" indicators (Instagram-style)
- Typing indicators
- Public and private rooms
- Media sharing (images, videos, docs)
- JWT-based auth
- Secure session handling
- Password hashing with bcrypt
- Redis-powered rate limiting
- Server-side caching for fast access
- Fully Dockerized
- CI/CD ready
- Environment-variable driven config
- Image/video/document sharing
- Media hosted on Cloudinary
- TypeScript across the stack
- Modular, scalable codebase
- REST & WebSocket APIs
- Docker Compose for local dev
| Layer | Platform | Technology | Notes |
|---|---|---|---|
| Frontend | Vercel | React, Vite, TypeScript | Live Demo |
| Backend/API | Render | Node.js, Express, Socket.IO | API |
| Database | MongoDB | Atlas or Render-hosted | |
| Media Storage | Cloudinary | Cloudinary | For file/media uploads |
| Caching/RateLimit | Upstash | Redis (Serverless) | |
| Containerization | Docker | Docker, Docker Compose | For local/prod setups |
# Clone the repo
git clone https://github.com/yourusername/rocket-chat.git
cd rocket-chat
# Copy env example files and fill values
cp backend/.env.example backend/.env
cp frontend/.env.example frontend/.env
# Start all services
docker-compose up --build
---# Backend setup
cd backend
npm install
npm run dev
# Frontend setup
cd frontend
npm install
npm run devPOST /api/authβ Register/LoginGET /api/messagesβ Retrieve messagesPOST /api/messagesβ Send messagePOST /api/roomsβ Create/Join/Leave room
message:send,message:receiveuser:connect,room:joinmessage:read,message:deliveredtyping:start,typing:stop- ...and more
VITE_SOCKET_URLVITE_API_URL
FRONTEND_URLMONGODB_URIJWT_SECRETUPSTASH_REDIS_REST_URLUPSTASH_REDIS_REST_TOKENCLOUDINARY_URL
- β‘ Real-time communication using Socket.IO
- π Secure JWT authentication
- π¦ Rate limiting & caching via Upstash Redis
- π³ Dockerized, production-ready architecture
- π Cloud-native deployment with Vercel & Render
- Integrate OAuth (Google, Microsoft) authentication
- Advanced analytics and monitoring dashboards
- Native mobile app (React Native)
Siddhant Bhagat
LinkedIn β
βοΈ Star this repo if you found it useful!
Built with passion for speed, scalability, and developer happiness.


