Live Link: https://chatty-frontend-7pr0.onrender.com
Chatty is a full-stack real-time chat application built using the MERN stack (MongoDB, Express.js, React.js, Node.js) and Socket.IO for real-time communication. It supports user authentication, profile management, real-time messaging with file/image support, email OTP verification, and more.
It is a fully functional modern chat platform designed for fast, responsive, and secure messaging between users.
- Signup with email + password
- Login via username or email
- Secure password hashing
- Persistent login with cookies
- Logout functionality
- OTP email verification during signup
- View and edit profile
- Upload profile picture
- Update contact number and display name
- File uploads handled via Cloudinary
- 1-on-1 messaging with Socket.IO
- Real-time message delivery without refresh
- Online users indicator
- Send text messages or attach images/files
- File preview before sending
- Auto-scroll to the latest message
- Change profile picture and contact info
- View list of active users
- Logout from settings
- Image/file support with type previews
- Files stored securely in Cloudinary
- Frontend hosted on Render (Static Site)
- Backend + WebSocket Server hosted on Render (Web Service)
| Layer | Technology |
|---|---|
| Frontend | React.js + Tailwind CSS |
| State Mgmt | Redux Toolkit |
| Backend | Node.js + Express.js |
| DB | MongoDB Atlas |
| Real-Time | Socket.IO |
| Auth | JWT + HTTP-only Cookies |
| File Upload | Cloudinary |
| Nodemailer (Gmail SMTP) | |
| Hosting | Render (Frontend + Backend) |
- 🌐 Frontend: https://chatty-app-by-aryan.onrender.com
- 🛠️ Backend API Base URL:
https://chatty-backend-24kt.onrender.com/api/v1 - 🔌 WebSocket Endpoint:
https://chatty-backend-24kt.onrender.com
src/
├── components/
│ ├── pages/ # Home, Login, Signup, Settings, etc.
│ ├── MessageInput.jsx
│ ├── ChatContainer.jsx
│ └── ChatHeader.jsx
├── services/
│ ├── operations.js # All API + Socket logic
├── Redux/
│ ├── slices/
├── utils/
│ └── constants.js
├── App.jsx
└── index.jsx
PORT=3000
MONGODB_URL=<your-mongodb-uri>
JWT_SECRET=<your-jwt-secret>
CLOUDINARY_URL=cloudinary://<cloudinary-api-key>
CLOUDINARY_FOLDER=ChattyProfilePics
CLOUDINARY_CHAT_FOLDER=ChattyMessageFiles
MAIL_USER=your_email@gmail.com
MAIL_PASSWORD=your_app_password
CLIENT_URL=https://chatty-app-by-aryan.onrender.com
cd backend
npm install
npm run devcd client
npm install
npm run devIf you have any questions or suggestions, feel free to reach out at:
- 📬 Email: aaryangupta636@gmail.com