A secure, ephemeral chat application with no history, logs, tracking, or authentication.
This client app requires a running instance of the server.
You can host your own instance, or use the one hosted by Diamonds VPN at chat.vpn.diamonds.
- Private chat rooms
- Real-time messaging using WebSockets
- No message history or logs stored
- User presence notifications
- Simple and intuitive UI
- Node.js v22.13.1
- bun 1.1.27
-
Clone the repository:
git clone https://github.com/PrivateChatProtocol/private-chat-ui.git cd private-chat-ui
-
Install dependencies:
bun install
-
Create a
.env.local
file in the root directory:# Your frontend URL (development) NEXT_PUBLIC_FRONTEND_URL=localhost:3000 # Backend server URL NEXT_PUBLIC_SERVER_URL=localhost:8000
Start the development server:
bun run dev
Open http://localhost:3000 in your browser to view the client application.
The server and client uses the following message formats for real-time communication:
{
"system": true,
"type": "JOIN_ROOM",
"username": "string",
"roomId": "string"
}
{
"system": true,
"type": "LEAVE_ROOM",
"username": "string",
"roomId": "string"
}
{
"system": false,
"type": "CHAT_MESSAGE",
"roomId": "string",
"content": "string",
"username": "string"
}
{
"system": false,
"type": "IMAGE_MESSAGE",
"roomId": "string",
"username": "string",
"imageData": "string",
"caption": "string",
"timestamp": "string"
}
{
"system": true,
"type": "USER_LIST",
"roomId": "string",
"members": ["string"]
}
{
"system": true,
"type": "ERROR",
"roomId": "string",
"username": "string",
"content": "string",
"timestamp": "string"
}
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Commit your changes:
git commit -m 'Add amazing feature'
- Push to the branch:
git push origin feature/amazing-feature
- Open a pull request
This project is licensed under the MIT License - see the LICENSE file for details.