Skip to main content

Product patterns for live rooms

MediaSFU can sit behind very different products: a private call, a salesroom, a shared player, a production desk, a classroom, or a stage with a large audience. These reference patterns show where your application owns the experience and where MediaSFU supplies realtime room media.

Choose a pattern

PatternBest forPrimary experience
Familiar chat callTwo people who already think in contacts and callsAn invite-led private call
Live auction and shoppingTimed lots, bidders, and a host consoleOrdered bidding beside live media
Watch togetherA program with optional conversationWHIP input with WebRTC or HLS output
Voice and vision agentsRealtime assistants with operator oversightOrdered playback, media input, and human handoff
SIP and PSTN callingBrowser or mobile operators handling telephone callsAudio-first calling, agent control, and human takeover
SpacesTek progressionSocial rooms with listeners, speakers, and moderatorsA staged path from product concepts to secure headless rooms
Broadcast control roomProducers choosing a source for airPreview, program, and contributors
Interactive classroomModerated learning and Q&APolls, board, queues, and breakout groups
Hybrid stage and audienceA few active speakers plus many viewersWebRTC stage with synced HLS

The six showcase pages are product blueprints, not cross-SDK promises or production backends. Each page names the authority boundary, media identity, failure recovery, cleanup, and the platform evidence that is actually available. Start with the product boundary, then select the SDK package and room operation guide for the platform you ship.

Use the Starter Projects catalog when you want runnable code. Product patterns explain architecture; the catalog separates public repositories, live showcases, tutorials, and SDK examples and records platform evidence independently.

The standalone references are available as MediaSFU familiar calls, MediaSFU Live Auction, and MediaSFU Watch Together repositories. They are implementation references; the Projecte pages above remain the canonical product guidance.

The ownership boundary

Your app owns names, roles, invitations, product state, layout, and recovery copy. Your backend should create and join rooms, authorize roles, protect credentials, and confirm cleanup. MediaSFU owns room transports, tracks, participants, and realtime media events.

Across these patterns, a good media surface follows four rules:

  • Make screen share the primary surface when it is active; otherwise prefer an identified remote camera and then the local camera.
  • Keep a secondary camera or participant visible as a mini card or rail.
  • Mirror only a local camera preview. Show screens with contain so slides and code remain readable.
  • Mount remote audio independently from visible video. A participant can be audible while their camera is off or while another source is on stage.

Catalog records

Broadcast control room

Producer-led contributor room with preview sources, a selected program surface, named guest invitations, and explicit end. The pattern is useful for rehearsals and custom control desks. It does not by itself provide HLS egress, recording, moderation, sign-in, or persistence; those belong in your application and backend design.

Interactive classroom

Teacher/moderator plus learners, with queued speakers, polls, shared board, breakout groups, and learner-specific room views. MediaSFU supplies realtime room media while the application owns classroom state and moderation. A participant invitation should bind both role and assigned display name.

Hybrid stage and audience

A small WebRTC speaker stage can stay conversational while a passive audience receives a program over HLS. Keep the stage floor and audience playback as two deliberate surfaces: the audience should not accidentally receive contributor audio or room controls. Use a backend-owned audience grant and a bounded playback policy.

Before release

Use an authenticated backend for reusable MediaSFU credentials, test a real host and a separate participant, verify camera, microphone, screen share, and remote audio on the target platform, and confirm that both the application state and upstream room are cleaned up after leave and end. A successful build does not prove live media behavior.