| Feature | Description |
|---|---|
| Real-time Messaging | Instant chat powered by Socket.IO with live updates |
| Video Calling | High-quality video calls via Stream GetStream SDK |
| Presence Indicators | Live online/offline status for all users |
| Clear Chat | One-click chat history cleanup |
| Responsive Design | Fully optimized for mobile and desktop |
| Instagram-inspired UI | Modern, familiar, and visually polished interface |
- React (via Vite) — fast, component-based UI
- Tailwind CSS — utility-first styling
- Socket.IO Client — real-time event handling
- Node.js + Express.js — REST API server
- MongoDB — persistent data storage
- Socket.IO — WebSocket communication layer
- Stream Video SDK — video/audio calling infrastructure
- JWT — secure authentication tokens
InstaChat/
├── Client/ # React Frontend (Vite)
│ ├── src/
│ │ ├── Components/ # Reusable UI components
│ │ ├── Pages/ # Route-level pages
│ │ ├── Utils/ # Custom React hooks
│ │
│ └── .env # Frontend environment variables
│
├── Server/ # Node.js Backend
│ ├── controllers/ # Route handlers
│ ├── models/ # Mongoose schemas
│ ├── routes/ # Express route definitions
│ ├── middleware/ # Auth & error middleware
│ └── .env # Backend environment variables
│
└── README.md
git clone https://github.com/Parth-Chikalkar/InstaChat
cd instachatcd Server
npm install
npm startcd Client
npm install
npm run devMONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
GETSTREAM_API_KEY=your_stream_api_key
GETSTREAM_API_SECRET=your_stream_api_secretVITE_BACKEND_URL=http://localhost:5000
VITE_STREAM_API_KEY=your_stream_api_keyUser A ──► sends call request
│
▼
User B receives popup
│
▼
User B accepts
│
▼
Both users join call room
│
▼
Stream handles video & audio
-Blazing fast — Vite + Tailwind keep the frontend lean and snappy -Real-time first — Socket.IO ensures zero-latency messaging -Production-grade video — Stream SDK handles all WebRTC complexity -Clean architecture — frontend and backend are fully decoupled
- Instagram DM — familiar, fluid chat interface
- WhatsApp — intuitive calling experience
Parth Chikalkar