A real-time P2P chat application powered by the Ouroboros server system.
Ouroboros Chat is a decentralized chat application that leverages WebRTC and PeerJS for peer-to-peer communication. The app connects to a self-sustaining server network running on GitHub Actions, allowing users to exchange messages in real-time without traditional centralized servers.
- Real-time P2P messaging
- Persistent message history
- Automatic reconnection on connection loss
- Responsive design
- Infinite scroll message loading
- Frontend: Next.js 15.1
- P2P Communication: PeerJS
- Styling: Tailwind CSS
- Build & Deployment: GitHub Actions
- Node.js v23.x
- npm
- Clone the repository
- Install dependencies
- Run development server
- Build for production
The app uses a custom static Communicator class (referenced in src/global/communicator.ts) that handles:
- P2P connection management
- Message sending and receiving
- Server discovery
- Automatic reconnection
The app fetches server nodes from a JSON file hosted on GitHub Pages and attempts to connect to the most reliable node.
If connection to the primary node fails, the system automatically attempts to connect to alternative nodes.
The application is automatically deployed to GitHub Pages using GitHub Actions. The workflow includes:
- Node.js setup
- Dependency installation
- Next.js build
- Static file deployment
ROUTE
: Repository name for GitHub Pages deployment
For more information about the server infrastructure, visit the Ouroboros Server Repository. https://github.com/BigJumble/Ouroboros
This project is licensed under the MIT License - see the LICENSE file for details.