LevelChatLevelChat
Use cases/Creator platforms
Creator platforms

One-to-many broadcasts with viewer chat.

Fan out a single host to 25,000 concurrent viewers on the self-serve Broadcast Scale tier — with low-latency chat, optional viewer-to-cohost promotion, and WHIP ingest for OBS Studio.

A creator desk with a microphone and warm desk lamp positioned in front of a sunlit window.

The problem

Creator platforms need to fan out a single host to thousands of viewers, with low-latency chat and a smooth viewer ↔ co-host promotion when needed. Per-minute pricing on traditional video infra makes the unit economics ugly the moment a creator has more than a few hundred viewers.

How LevelChat fits

Use the Broadcast tier to publish via WHIP (OBS Studio 30+) or @levelchat/web. Up to 25,000 concurrent viewers per room on the self-serve Broadcast Scale tier; Enterprise reserves edge capacity for larger drops. Viewer-hours are a separate meter from participant-minutes, so a 50-viewer creator does not pay meeting-shaped rates.

What we use under the hood

  • Cascade SFU with LL-HLS/CMAF fallback at the long tailDocs
  • WHIP ingest from OBS / any RTMP-replacement encoderDocs
  • Per-viewer-hour billing — separate meter from meetingsDocs
  • Real-time chat alongside the video streamDocs

Reference architecture

OBS Studio 30+ ──WHIP──▶ LevelChat ingest
                              │
                              ▼
                       Cascade SFU mesh
                              │
        ┌─────────────────────┼─────────────────────┐
        ▼                     ▼                     ▼
   Regional SFU          Regional SFU          LL-HLS / CMAF edge
   (≤5k viewers)         (≤5k viewers)         (5k+ viewers)
        │                     │                     │
        └──────── viewer browsers (your app) ───────┘

Integration snippet

Real code against published packages — no phantom imports.

app/watch/[stream]/page.tsx
'use client';
import { LevelChat } from '@levelchat/web';
import { useEffect, useRef, useState } from 'react';

export default function Watch({ token, role }: { token: string; role: 'viewer' | 'broadcaster' }) {
  const videoRef = useRef<HTMLVideoElement>(null);
  const [count, setCount] = useState(0);

  useEffect(() => {
    const client = new LevelChat();
    const cleanup = (async () => {
      const stream = await client.joinLive({ token, role });
      stream.room.on('participant-joined', () => setCount(stream.room.participants.length));
      if (role === 'broadcaster') {
        await stream.publishCamera();
        await stream.publishMic();
      } else {
        const remote = stream.room.participants.find((p) => p.role === 'broadcaster');
        if (remote && videoRef.current) {
          videoRef.current.srcObject = remote.videoTrack?.mediaStream ?? null;
        }
      }
      return () => stream.leave();
    })();
    return () => { cleanup.then((fn) => fn?.()); };
  }, [token, role]);

  return (
    <div>
      <video ref={videoRef} autoPlay playsInline />
      <div>{count} viewers</div>
    </div>
  );
}

Common questions for this vertical

  • What is the actual viewer cap?

    Self-serve Broadcast Scale tier ships up to 25,000 concurrent viewers per room. The Broadcast Enterprise tier (contact sales) reserves edge capacity above that with multi-CDN fan-out and a per-event capacity reservation.

  • Can a viewer be promoted to co-host mid-stream?

    Today the supported pattern is: mint a fresh broadcaster token server-side, hand it to the viewer, have them disconnect-and-rejoin as broadcaster (round-trip ~1 second). True in-session role promotion without a reconnect is on the W9.4 roadmap (Preview).

  • How does pricing compare to YouTube Live?

    YouTube Live is free to broadcast but you give up control of the watch surface (ads, recommendations, monetisation share). LevelChat keeps you inside your product. Per-viewer-hour rates are published per tier on /pricing; the calculator gives an exact estimate for your audience size.

Building something in this space?
We answer architecture questions on the same day. Sketch what you're working on and we'll send back a one-page LevelChat fit-check.
Creator platforms — One-to-many broadcasts with viewer chat · LevelChat