A free, no-login, high-quality 1:1 video calling app.
- P2P media via WebRTC
- No accounts
- Join with a 6+ character code
- Designed to host the frontend on Cloudflare Pages (free tier)
- Signaling via a Cloudflare Worker (Durable Object) (also free tier)
- Web App: https://9e70c36b.67-28b.pages.dev
- Signaling Server: https://67-signal.yashasvm.workers.dev
- Install deps:
npm install- Run the signaling worker (WebSocket signaling):
npm run dev:signal- In another terminal, run the web app:
npm run dev- Set
.env:
cp .env.example .envSet VITE_SIGNAL_BASE=ws://127.0.0.1:8787.
- Deploy signaling worker:
npm run deploy:signalAfter deploying, Wrangler will show a *.workers.dev URL.
- Deploy Pages:
- Build:
npm run build - Output dir:
dist - Environment variable:
VITE_SIGNAL_BASEset towss://<your-worker>.workers.dev
Or CLI:
npm run build\nnpm run deploy:pages- This ships with STUN-only by default. Some restrictive networks may require TURN (not included).
- Durable Objects and TURN can have billing implications depending on your Cloudflare plan. This repo is built to run on free-tier friendly primitives, but you should verify current Cloudflare pricing before production use.