Tech stack: MERN + Socket.io + TailwindCSS + Daisy UI
Authentication && Authorization with JWT
Real-time messaging with Socket.io
Online user status (Socket.io and React Context)
Global state management with Zustand
Error handling both on the server and on the client
Setup .env file
MONGO_DB_URI=...
JWT_SECRET=...
NODE_ENV=...
Build the app
Start the app