A real-time chat application built with the MERN Stack, Socket.IO, Tailwind CSS, and shadcn/ui. Users can chat, share files, and make p2p calls in real time. The repository is a Bun workspace managed by Turborepo.
-
Authentication & Authorization - Secure login and token-based authentication with JWT.
-
Real-time Messaging – Instant chat updates powered by Socket.IO.
-
Typing Indicators – See when a user is typing in real time.
-
Contacts Search – Quickly find contacts with an intuitive search.
-
Status Updates – View online/offline status of contacts.
-
Peer-to-peer calls - Audio and video connections powered by PeerJS.
-
File sharing - Upload and serve media through the dedicated peer service.
-
State Management - Managed globally with React Context and Zustand.
-
Data Caching - Implements client side caching using React Query.
-
Schema Validation – Ensures data integrity with Zod on both client and server.
-
Error Handling – Robust error handling on both frontend and backend.