ChatApp is a modern, open source real-time chat platform designed for developers and teams. It features collaborative tools, secure authentication, and a beautiful UI. The project is built to be extensible, easy to contribute to, and ideal for learning or production use.
- MENN Stack: MongoDB, Express.js, Next.js, Node.js
- Clerk: (Optional) For advanced authentication and user management
- WebSockets: Real-time communication using Socket.IO
- Other Tools: Tailwind CSS, Cloudinary (for file uploads), JWT, bcryptjs
- Real-Time Chat: Instant messaging with online presence
- Authentication: Sign up, login, JWT-based sessions (optionally Clerk)
- Role-Based Access: Support for different user roles and permissions
- Collaborative Code Editor: Live code editing and sharing
- Shared Scratchpads & Snippet Boards: Save and share code snippets
- Live Interview Mode: Coding interviews, timer, prompts, and private notes
- File Sharing & Code Preview: Upload and preview code files in chat
- Code Execution: Run code in chat using external APIs
- Profile Management: Update avatar, bio, and user info
- Open Source: Built for learning, collaboration, and contribution
- Node.js (v18+ recommended)
- MongoDB instance (local or cloud)
- Clerk account for advanced auth (To be implemented)
- Cloudinary account (for file uploads)
git clone https://github.com/ThePlator/NPMChat
cd NPMChatcd backend
npm installCreate a .env file in backend/:
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secret
Run the backend:
npm run devcd ../frontend
npm installCreate a .env.local file in frontend/:
NEXT_PUBLIC_API_URL=http://localhost:8080
Run the frontend:
npm run dev- Frontend: http://localhost:3000
- Backend: http://localhost:8080
Contributions are welcome! Please open issues or pull requests for new features, bug fixes, or improvements.
ISC