RTC Terminal is a modern real-time chat application that enables users to create or join chat rooms and communicate instantly with other participants. The application features a clean, responsive interface and supports real-time message delivery using WebSocket technology.
-
Install Daytona: Follow the Daytona installation guide.
-
Create the Workspace:
daytona create https://github.com/yashksaini-coder/relay-chat-daytona
-
Next start the application:
npm run dev
-
Click on the local deployment URL of the Application:
https://localhost/5173
- ๐ Create new rooms with auto-generated unique room IDs
- ๐ Join existing rooms using room IDs
- ๐ Copy room IDs to clipboard for easy sharing
- ๐ฅ Real-time user connection tracking
- โก Real-time message delivery
- ๐ผ๏ธ User-friendly message interface with distinct styling for sent/received messages
- ๐จโ๐ฉโ๐งโ๐ฆ Support for multiple users in the same room
- ๐ Username display for each message
- โ Enter key support for sending messages
- ๐ Clean, modern interface with dark theme
- ๐ฑ Responsive design that works on mobile and desktop
- ๐ Toast notifications for important actions
- ๐ข Smooth transitions and hover effects
- ๐ Scrollable message history
React | TypeScript | Tailwind CSS | Vite | React Toastify | Lucide React |
---|---|---|---|---|---|
![]() |
The frontend is built as a single-page application (SPA) with React. Key components include:
- ๐ Connection management with WebSocket
- ๐๏ธ State management using React hooks
- ๐ Responsive UI components
- โก Real-time message handling and display
The backend implements a WebSocket server that handles:
- ๐ฅ User connections and disconnections
- ๐ Room management
- ๐ก Message broadcasting to room participants
- ๐ข User count tracking
The application uses a simple message protocol over WebSocket:
{
"type": "join",
"payload": {
"roomid": "ROOM_ID"
}
}
{
"type": "chat",
"payload": {
"name": "USERNAME",
"message": "MESSAGE_CONTENT"
}
}
- ๐ Secure WebSocket connections (WSS)
- ๐ก๏ธ Input validation
- ๐ช Room isolation (messages only broadcast to users in the same room)
- ๐ Frontend deployed on Vercel
- ๐ฅ๏ธ Backend deployed on Render
- ๐ง WebSocket server configured for production use