Status: alpha
Real-Time Peer-to-Peer Chat — A WebRTC-based messaging application for direct communication with message threads, group chat, and per-user privacy controls.
Chatta is a modern, decentralized chat application built on WebRTC technology, enabling direct peer-to-peer communication with a signaling server backend. It provides a rich messaging experience with support for real-time conversations, message editing/deletion, threaded discussions, and group management.
Core Mission: Enable secure, ephemeral peer-to-peer messaging with minimal server dependencies.
# Clone and setup
git clone https://github.com/KooshaPari/Phenotype repos/chatta
cd chatta
# Review governance context
cat CLAUDE.md
# Install dependencies (frontend + backend)
./start
# Development server runs on http://localhost:5173
# Backend signaling on http://localhost:3000
chatta/
├── frontend/ # Svelte UI
│ ├── src/
│ │ ├── components/ # Reusable Svelte components
│ │ ├── routes/ # SvelteKit pages
│ │ ├── lib/ # WebRTC client logic
│ │ └── stores/ # Reactive state management
│ └── package.json
├── backend/ # Signaling server
│ ├── main.go # Server entry point
│ ├── signaling/ # WebRTC signaling logic
│ ├── users/ # User management
│ └── go.mod
└── start # Development launcher script
# Start all services
./start
# Frontend only (Svelte dev server)
cd frontend && npm run dev
# Backend only (Go signaling server)
cd backend && go run main.go
# Run tests
cd frontend && npm test
cd backend && go test ./...
# Format and lint
cd frontend && npm run lint
cd backend && gofmt -w . && golangci-lint run
POST /api/signal/offer — Send SDP offerPOST /api/signal/answer — Send SDP answerPOST /api/signal/candidate — Send ICE candidateGET /api/peer/{id} — Get peer statusDELETE /api/peer/{id} — Close peer connectionGET /api/messages/{thread-id} — Get message historyPOST /api/messages — Send messagePATCH /api/messages/{id} — Edit messageDELETE /api/messages/{id} — Delete messageGET /api/threads — List threadsPOST /api/threads — Create threadPATCH /api/threads/{id} — Update threadDELETE /api/threads/{id} — Delete threadSee docs/SECURITY.md for detailed threat model.
docker-compose up -d
# Opens http://localhost:5173 (frontend)
# Backend on localhost:3000
See k8s/ for Helm charts and deployment manifests.
fly deploy
"Connection failed"
"Messages not syncing"
"UI not loading"
Ctrl+Shift+Delete)MIT — see LICENSE.
Last Updated: 2026-04-25 | Status: Active Development