Replacing Zoom with a streaming stack we ran ourselves
Geniebook · Software Engineer III · Nov 2021 — Aug 2025
Migrated live classes off the Zoom SDK onto self-hosted LiveKit with a purpose-built React client, sustaining 99.9%+ streaming uptime for over a year.
Context
Zoom's SDK worked, and reliability was not the problem. The constraint was the classroom itself: live classes needed interaction built around how a lesson actually runs, and the SDK's interface was the one surface the product team could not reshape. Every idea for making a class more engaging had to fit a meeting UI that was never designed for teaching.
Decisions
Keep buying live video from Zoom's SDK, or run the streaming stack in-house?
Chosen
Self-hosted LiveKit with a purpose-built React live-class client
Owning the client put the classroom interface under the product team's control. Interactivity could then be designed for the lesson and tried, measured, and changed on the product's own schedule, rather than being limited to what a general-purpose meeting UI exposed.
Rejected alternatives
Remaining on the Zoom SDK
It was a capable product, but its interface set the ceiling on what the class could be. Staying meant the experiments that make a class more engaging stayed off the table.
Outcomes
Every figure below is shown with what it measures.
| Outcome | Result | How it was measured |
|---|---|---|
| Streaming uptime | ≥99.9% | Sustained for 12+ months following launch. |
| Concurrent students served | ~1,500(approx.) | ~30 simultaneous classes at ~50 students each. |
Architecture
A teacher and roughly fifty students per class connect over WebRTC to a self-hosted LiveKit media server, which forwards media between them. Around thirty such classes run at once, totalling about 1,500 concurrent students. Both teacher and students use the same purpose-built React client, which talks to the class platform for room state and interaction features alongside the media path. The boundary worth reading is that the client and the media server are both inside the system Geniebook operates, which is what made the classroom interface open to change.