Chatty is a modern, real-time one-on-one chat application powered by the MERN stack with Socket.IO for WebSocket-based communication and Gemini AI for assisting users in composing and editing messages. The platform offers a clean UI, theme customization, user profile management, and secure authentication.
- 🔁 Real-time messaging using Socket.IO
- 🤖 AI-assisted text composition and editing with Gemini AI
- 🟢 Online/offline user status detection
- 🔍 Filter/search for online users
- 🎨 Customizable UI themes (light/dark/cyberpunk, etc.)
- 👤 Profile page with editable avatar, email, and join date
- 🔐 Secure authentication with JWT and bcryptjs
- ☁️ Image upload via Cloudinary
- React (with Vite)
- TailwindCSS & DaisyUI
- React Router, Zustand, Axios
- Socket.IO Client, Lucide-React
- Node.js, Express.js
- Google Gemini AI API
- MongoDB with Mongoose
- Socket.IO, JWT, bcryptjs
- Cloudinary for image hosting
- cookie-parser, cors, dotenv, nodemon
| AI Chat | Real-Time Chat |
|---|---|
![]() |
![]() |
| Login Page |
|---|
![]() |
| Profile Page | Settings Page |
|---|---|
![]() |
![]() |
git clone https://github.com/apoorv654123/Chatty.git
cd Chattycd server
npm install-
Create a
.envfile in/serverand add:PORT=5000 MONGODB_URI=your_mongo_uri JWT_SECRET=your_jwt_secret CLOUDINARY_CLOUD_NAME=your_cloud_name CLOUDINARY_API_KEY=your_api_key CLOUDINARY_API_SECRET=your_api_secret
npm run devcd ../client
npm install
npm run dev- Passwords are hashed using
bcryptjs - Authentication handled via
jsonwebtokenand secure HTTP-only cookies - Sensitive data protected via environment variables (
dotenv)
- ✅ Group chats
- ✅ Voice and video calls
- ✅ Emoji and file sharing
- ✅ Message reactions and notifications
- ✅ AI-powered summarization and auto-reply
MIT License. Feel free to fork, contribute, or suggest improvements.
Thanks to:
"Confidence comes from building. Clarity comes from shipping." Start small, keep building, and launch often. 🚀




