What You Can Build
Use this page for the five-minute answer to three questions: what MediaSFU already provides, how much of it you can replace, and which SDK best fits the application you are building.
Start with the product, not the API
| I want to build... | Fastest starting point | Customize when... |
|---|---|---|
| Team video calls, classes, or workshops | A prebuilt Generic or Conference room | Apply targeted overrides for branding, cards, controls, or selected modals. |
| A webinar or virtual event | A prebuilt Webinar room | Replace host, panelist, or audience surfaces only where your workflow differs. |
| A creator broadcast or livestream | A prebuilt Broadcast room | Move to a custom host dashboard when production controls no longer fit a room layout. |
| Support, consultation, or chat-first collaboration | A Chat room or compact custom call screen | Use headless mode when the main product is a CRM, inbox, or agent workspace. |
| An operator, AI agent, or moderation console | A headless UI SDK integration | Keep MediaSFU state and actions underneath your app-owned workspace. |
| A game, simulation, or 3D social experience | Unity SDK | Let Unity own the scene and use MediaSFU for room and media orchestration. |
| A new framework integration or runtime shell | mediasfu-shared | Build the framework adapter and every visible surface yourself. |
What is prebuilt
The full UI SDKs provide room entry and in-room experiences rather than only raw WebRTC primitives. Depending on the SDK, room type, backend, and account configuration, the supplied workflows include camera and microphone controls, screen sharing, participants, chat, recording controls, polls, breakout rooms, whiteboard, moderation, and supporting modals.
Start with the closest room shape:
| Room shape | Use it for |
|---|---|
| Generic | The safest first integration while requirements are still changing. |
| Conference | Multi-speaker meetings, classes, workshops, and team collaboration. |
| Webinar | Host-led events with presenters, panelists, and an audience. |
| Broadcast | One-to-many live experiences and creator workflows. |
| Chat | Messaging-led or low-bandwidth collaboration with optional media. |
Feature availability is not identical on every target. Confirm specialized features such as real-time translation, virtual backgrounds, whiteboard capture, and platform screen sharing in the selected SDK guide and on the real devices you plan to support.
Choose how much UI to own
| Level | Keep from MediaSFU | You own | Best when |
|---|---|---|---|
| Prebuilt room | Room UI and runtime | App navigation around the room | You need a working product quickly. |
| Targeted overrides | Room workflow and most UI | Selected cards, controls, menus, modals, and styling | The product is still recognizably a room. |
| Custom workspace | Runtime plus room state/actions | The primary room workspace | Your layout differs substantially but SDK orchestration is still useful. |
| Headless engine | Runtime, state, and action helpers | Every visible surface | The product is a console, game UI, CRM, or another app-owned experience. |
| Shared core | Framework-neutral primitives | Framework adapter, orchestration, and all UI | You are building a new SDK or need lower-level control. |
Do not begin at the lowest level by default. Validate one prebuilt create/join flow, then move down this table only as product requirements demand it.
SDK capability map
| SDK | Fastest prebuilt path | Targeted customization | App-owned or engine path | Best learning resources |
|---|---|---|---|---|
| ReactJS | Generic, Conference, Webinar, Broadcast, Chat, and modern room surfaces | uiOverrides, custom cards and modals | customComponent, returnUI={false}, sourceParameters | Storybook, guide stories, examples, TypeDoc |
| Angular | Angular room wrappers for the five room shapes | Inputs, templates/directives, uiOverrides | Custom/headless workspace and live helper bundle | Live UI gallery, cookbook, TypeDoc |
| React Native | Native components for the five room shapes | uiOverrides and custom cards | customComponent, returnUI={false}, sourceParameters | Native setup, custom UI examples, TypeDoc |
| Expo | Expo components for the five room shapes | uiOverrides and custom cards | customComponent, returnUI={false}, sourceParameters | Expo setup, custom UI examples, TypeDoc |
| Vue | Vue components for the five room shapes | uiOverrides and custom cards | customComponent, returnUI={false}, sourceParameters | Examples, sandbox links, TypeDoc |
| Flutter | Six room widgets including ModernMediasfuGeneric | MediasfuUICustomOverrides | customComponent, returnUI: false, MediasfuParameters | Demo mode, examples, sandbox, Dartdoc |
| Kotlin | Compose wrappers for the five room shapes | Compose component replacement | returnUI = false, onParametersUpdate, customComponent | Compose examples, Dokka/KDoc |
| Swift | Hosted room controller | App-owned setup and bridge-triggered controls | Native app shell around the hosted room and media bridge | Apple SDK README and USAGE.md |
| Unity | Room/client orchestration inside your scene | Your Unity scene is the customization layer | MediaSfuClient plus an attached media backend | Starter, media attachment example, API contract |
| Shared | None | Not applicable | Framework-neutral socket, transport, room, state, and utility primitives | Minimal setup and TypeDoc |
The shortest successful adoption path
- Choose the SDK that matches your existing application.
- Choose Cloud or self-hosted MediaSFU Open.
- Run the SDK's copy/paste starter without customization.
- Pick the closest prebuilt room shape.
- Move to overrides, a custom workspace, or headless mode only when the product requires it.
- Use the generated API reference only for exact signatures and exported types.
Continue with Quickstart for installation, UI overrides for selected surface changes, Custom component replacement for a new workspace, or Headless mode for an app-owned interface.