A video call app built with Cloudflare Pages and Durable Objects.
Peer to peer connection for video and audio stream is delivered over WebRTC. Peer discovery and signalling is powered by WebSockets over Durable Objects.
The diagram below explains how signalling over WebSocket happens on the frontend

Clone the repo
git clone https://github.com/megaconfidence/veet.gitInstall the client dependencies and start a local dev server
cd client
npm i
npm start #available on http://localhost:8788Install the server dependencies and start a local dev server
cd server
npm i
npm start #available on ws://localhost:8787To deploy either the client or server, run the following the corresponding directory
npm run deployOnce the server is deployed, update env.ws in client/public/call/index.js to the deployed server address.