Early on, someone — let's be honest, it was us — looked at WebRTC and thought: "Cool, free phone company." That's how you end up building a worse Zoom with extra steps. CB radio is not a meeting. Nobody wants raise-hand semantics on channel 19. They want a key, a roger beep, and the social contract that only one person hogs the air at a time.

Half-duplex changes everything. Full-duplex VoIP optimizes for simultaneous talkers, echo cancellation marathons, and UI chrome that assumes everyone's in a boardroom. Keyed transmit optimizes for bursts: press, speak, release, listen. The media path is simpler in spirit and harder in culture — because fairness, cooldowns, and "who has the floor" are product features, not codec details.

Binary framed media over a persistent socket turned out to be a better fit than pretending every browser tab is a SIP endpoint. We're not streaming a continuous conversational mesh; we're shipping keyed chunks to a channel with roster state and moderation hooks. That sounds retro until you watch fifty operators bounce off a busy frequency without the server melting into a puddle of RTCP sadness.

The UX follows the architecture. Classic mode strips the chaos when operators want a radio, not a game HUD. Roster presence, channel hopping, and keyed indicators matter more than speaker grids and virtual backgrounds. If your web radio app feels like a video call with the camera broken, you've built the wrong thing — even if the demos looked impressive on LinkedIn.

We're not anti-WebRTC on principle. We're anti shoehorning conference DNA into a medium that predates broadband. Global Chaos CB Radio is a browser tab that behaves like radio because we stopped asking it to behave like enterprise VoIP. Turns out that's exactly what the channel wanted.