DEV Community

Иван Солоненко
Иван Солоненко

Posted on

I built a self-hosted P2P video chat — looking for feedback

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
Enter fullscreen mode Exit fullscreen mode

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)