Instant Msg is a premium, real-time private room chat application designed with a sleek Midnight Luxury (Gold & Obsidian) aesthetic. It enables instant text and voice messaging without the need for accounts or databases—all communication is temporary and secure.
- Instant Rooms: Generate or join unique 6-character room codes.
- Premium Design System: "Gold & Obsidian" luxury dark mode theme with glassmorphism, floating shadows, and subtle background animations.
- Real-Time Communication: Powered by Socket.IO for sub-second message delivery.
- Voice Messaging: Integrated MediaRecorder API for recording, previewing, and sending high-quality voice notes directly within the chat.
- Smart Delivery Status: Real-time read receipts (✓ Sent, ✓✓ Read) based on active room participants.
- Typing Indicators: See when others are typing in real-time.
- Responsive Layout: Works flawlessly on Desktop, Tablet, and Mobile with a specialized drawer interface for smaller screens.
- React 19 & Vite: Ultra-fast component rendering and hot-module replacement.
- CSS3 Variables & Animations: Custom design system without heavy UI libraries.
- Socket.IO Client: Persistent WebSocket connections with automatic reconnection handling.
- MediaRecorder API: Native browser API for capturing audio streams.
- Node.js & Express: Lightweight HTTP server.
- Socket.IO Server: Manages WebSocket connections, namespaces, and room clustering.
- In-Memory State: Messages and users are stored temporarily in memory. When a room is empty, all data is securely wiped.
instant-msg/
├── client/ # React Frontend
│ ├── public/ # Static assets (manifest, favicon)
│ ├── src/
│ │ ├── components/ # React components (Chat, Join, MessageInput, etc.)
│ │ ├── styles/ # CSS style sheets
│ │ └── utils/ # Helper functions
│ └── package.json # Frontend dependencies
├── server/ # Node.js Backend
│ ├── server.js # Socket.IO and Express setup
│ └── package.json # Backend dependencies
└── README.md # Project documentation
-
Clone the repository.
-
Start the Backend:
cd server npm install npm run devThe server runs on
http://localhost:5000. -
Start the Frontend:
cd client npm install npm run devThe client runs on
http://localhost:5173.
- Deploy the
serverfolder. - The server will automatically use
process.env.PORT.
- Deploy the
clientfolder. - Set the build command to
npm run buildand publish directory todist. - Environment Variables: Add
VITE_SOCKET_URLpointing to your deployed backend URL (e.g.,https://instant-msg-api.onrender.com).
- End-to-End Encryption (E2EE) for messages using Web Crypto API.
- Multimedia support (Image/Video sharing).
- WebRTC integration for direct peer-to-peer audio calls.
MIT License