Sync Meet is a real-time video calling and chat web application built with the MERN stack and powered by Stream SDKs. It allows users across the world to connect via secure, interactive meetings — ideal for language exchange, online collaboration, or casual chatting.
- Custom login/signup flow using JWT-based auth
- Secure session handling with cookies and tokens
- High-quality video calls
- Screen sharing, meeting recording, and emoji reactions
- Smooth multi-user experience
- Real-time text messaging
- Emoji support, GIFs, and media (image/video) sharing
- Threaded replies for organized conversations
- Encourages users from different geographies to connect, converse, and learn languages
- React 19 + Vite
- Stream Chat & Video SDKs
- Zustand for state management
- TanStack React Query for API caching and data handling
- TailwindCSS + DaisyUI for UI
- Lucide React icons
- Routing with React Router v7
- Notifications via react-hot-toast
- Express.js with Node.js
- MongoDB using Mongoose
- JWT, bcryptjs for auth
- dotenv, cookie-parser, cors for environment config and middleware
- Stream Chat Server SDK
The app is deployed on Render with a mono-repo structure for both frontend and backend. A top-level package.json handles the build and start process:
"scripts": {
"build": "npm install --prefix backend && npm install --prefix frontend && npm run build --prefix frontend",
"start": "npm run start --prefix backend"
}/SyncMeet /frontend → React Client (Vite) /backend → Express API & Stream Chat server logic package.json (for Render deployment)
git clone https://github.com/code0403/SyncMeet.git cd SyncMeet
cd backend npm install npm run dev
cd ../frontend npm install npm run dev
Visit http://localhost:5173
Create .env files in both backend/ and frontend/ folders:
PORT=5000 MONGODB_URI=your_mongodb_uri JWT_SECRET=your_jwt_secret STREAM_API_KEY=your_stream_api_key STREAM_API_SECRET=your_stream_api_secret
VITE_STREAM_API_KEY=your_stream_api_key