Almost every browser video-call tutorial stops at a two-person peer connection, and that architecture quietly collapses the moment a third person joins. In a mesh, each browser encodes and uploads a separate copy of its camera to every other participant, so a caller's upload cost climbs with the size of the room and the weakest connection in the call sets the ceiling for everyone. The objective was a meeting that holds up past two people, opens in a tab with nothing to install, and can be self-hosted and read end to end rather than rented as a black box.
A Selective Forwarding Unit — mediasoup — was placed between the participants. Each browser uploads its camera exactly once; the SFU decides which stream, at which quality, reaches each viewer. Cameras are published as three simulcast encodings, so the server can drop a viewer to a smaller layer when their downlink degrades instead of degrading the call for everyone, and audio consumers are pinned to top priority so voice survives a bandwidth collapse that video does not. Socket.IO carries signalling, presence and reconnect; Google OAuth is exchanged for a JWT held in an httpOnly cookie, so no token is ever parked in client storage; MongoDB holds scheduled meetings and invite links. The whole stack — database, log shipper, dashboards — comes up under a single Docker Compose command, with a coturn TURN server included for the networks that refuse to route media directly.


