I've been working on Ash — an open source video chat where peers connect directly. No accounts, no data stored, end-to-end encrypted via WebRTC.
The server only handles the initial handshake. After that, it's a direct connection between you and the other person.
What it does
- Video/audio calls with screen sharing
- Text chat (also P2P)
- Device selection, picture-in-picture, speaking indicators
- Works behind NATs with a built-in TURN relay
Stack
- Client: React + Vite + Zustand
- Server: Deno + Hono (WebSocket signaling)
- Infra: coturn (TURN relay) + Caddy (auto-TLS)
Try it
Live demo: chat.relaysapp.xyz — open two tabs or grab a friend.
Self-host on any VPS with one command:
curl -fsSL https://raw.githubusercontent.com/isolonenko/ash/master/deploy/install.sh | sudo bash -s -- --domain chat.yourdomain.com --email you@example.com
Feedback welcome
It's early days. I'd love to hear:
- Does the connection work for you? (especially across different networks)
- What's missing that you'd expect?
- Any WebRTC edge cases that break things?
GitHub: github.com/isolonenko/ash (https://github.com/isolonenko/ash)
MIT licensed. PRs and issues welcome.
Top comments (0)