gitmyhub

rendezvous

TypeScript ★ 14 updated 24d ago

a serverless, Zoom-like video conferencing web app

A serverless video conferencing web app that runs entirely in the browser with no backend needed, join with a six-letter code, no account required, and host video calls for free.

ReactTypeScriptPeerJSWebRTCGitHub Pagessetup: easycomplexity 2/5

Rendezvous is a video conferencing web app that works without any application server. It runs entirely in the browser and can be hosted as a plain static website, meaning there is no backend to maintain or pay for. You can try it at the live demo link in the README.

The way it works is that one participant, the host, acts as the relay point for the meeting. Video and audio from each other participant flows to the host, and the host sends everyone else's streams out to all other attendees. Chat messages follow the same path. This design avoids the need for a central server but does mean the host's own internet connection determines how many people can join before quality degrades, since the host's upload bandwidth is shared across all streams going out to other participants.

Joining a meeting is simple: pick a name, then either start a new meeting or enter a short six-letter code to join an existing one. No accounts or passwords are required. The interface shows a grid of video tiles, and when someone's camera is off, their initials appear instead. Controls let you mute audio and turn video on or off. A collapsible chat panel on the right side keeps a history of messages, so people who join late can see what was said before they arrived.

The app is built with React and TypeScript, uses a library called PeerJS for the underlying peer-to-peer connection setup, and can be deployed to GitHub Pages with a single command. The README provides instructions for running it locally for testing or deploying to your own GitHub Pages site.

One honest limitation the README notes is that the "serverless" description has a caveat: if any participant is on a particularly restrictive network connection, video traffic may end up routed through a third-party relay server rather than flowing directly between browsers. This is a standard WebRTC behavior rather than something specific to this project.

Where it fits