Broadcast Streaming is XOM's live video stack: a broadcaster-side console for running a stream, a viewer-side player with chat and interaction, and a set of endpoints that carry stream, chat and viewer state between them.
01The broadcast console
The console is organised as ten tabs, each a distinct area of broadcast control: chat, analytics, overlays, scenes, media, effects, moderation, settings, monetisation and collaboration. In the codebase these map onto named components — a scene manager, a live chat panel with a message hook, an analytics panel, a stream health readout, a monetisation panel, a viewer interaction panel, and separate schedule and settings modules.
The subsystem specification describes the same console as three groups of decisions. Stream control covers stream settings, input source selection and scene transitions, with an AI stream optimiser assisting. Signal routing covers input channel definition, audio mix configuration and fallback sources, with a redundancy controller behind the fallbacks. Broadcast management covers destination selection, scheduling a broadcast window, and monitoring stream health on a real-time dashboard.
02The viewer side
Viewing runs through a hub that lists active streams and a per-broadcaster stream page. The player uses HLS for playback and ships with a quality selector, a seek bar, picture-in-picture, captions with their own settings panel, a reactions panel, a viewer count, keyboard shortcuts, a screenshot preview, and a separate mobile control set.
Chat is a first-class part of the viewing experience rather than a sidebar afterthought: messages, highlighting a message, and moderation actions each have their own path, and the broadcaster's moderation tab covers bans and timeouts.
03Endpoints and delivery
Six routes define the live surface: stream read and write, a stream existence check, chat messages, chat message highlighting, viewer tracking, and stream status. Note the architectural constraint — XOM builds as a Next.js static export with no server-side rendering, so server-side behaviour is expected to run in Firebase Cloud Functions, and the reachability of each route in the deployed build should be confirmed before it is documented publicly.
Delivery is specified in a separate subsystem, Hybrid Container, whose purpose is cross-platform content packaging, format adaptation and universal playback. It defines a content packaging engine with a format analyser, a platform compatibility matrix, a universal wrapper for container formats, a codec transcoder, transcoding quality profiles, an adaptive-bitrate configuration engine, a playback engine selector, and a rights-management wrapper for DRM.