Starter Projects
Choose a starting point by the kind of help you need:
- Starter projects are public repositories you can clone and run. They include a product-shaped application and, where a room is involved, a backend boundary for room authority.
- SDK examples are package-specific quick starts and native references. Evidence is listed per platform; one folder or package does not establish runtime parity for the others.
- Tutorials are guided implementations in this documentation. They explain the decisions and link to the matching package examples.
- Product patterns are architecture guidance for familiar calls, agents, VOIP, classrooms, broadcast, and social spaces. They are not substitutes for SDK operation evidence.
- Showcases are live demonstrations. A showcase without a repository is intentionally not presented as a runnable starter.
Find a runnable repository
| Project | Best for | Platforms and evidence | Repository | Build this |
|---|---|---|---|---|
| Familiar Calls | Click-to-call and two-person conversations | React and browser WHIP/WHEP locally exercised; other ports are separately bounded | View source | Build this |
| Live Auction | Live shopping, timed lots, and bidder roles | React room and bid journey locally exercised; other platform entries are documented independently | View source | Build this |
| Watch Together | Program video, conversation floor, and HLS audience | React WHIP/floor/HLS path locally exercised; native adapters remain separately bounded | View source | Build this |
| Agents | Voice/vision agents and human handoff | React and React Native room shells exercised; provider and device behavior remains application-specific | View source | Build this |
| VOIP | SIP/PSTN bridges and operator calling | Application composition and secure proxy documented; this catalog does not claim a carrier call | View source | Build this |
| SpacesTek Initial | Profiles, spaces, roles, and product-learning flow | Use it to learn the application journey; it does not include a maintained MediaSFU room integration | View source | Build this |
| SpacesTek Final | Secure social-space rooms and custom media surfaces | Includes separate React, Angular, React Native, Expo, and Flutter room references; test the platform you ship | View source | Build this |
| SpacesTek Advanced | Headless UI, moderation, admission, and custom controls | Includes separate platform implementations; test media, devices, recovery, and cleanup on every target | View source | Build this |
| Standalone MediaSFU widgets | Vanilla web, React composition, or semantic headless controls | @mediasfu/widgets@0.1.0 is published; production authentication and shell delivery were observed for all six elements | View source | Build this |
| SDK quick starts | Secure create/join and package-specific room baselines | Status is recorded independently for React, Angular, Vue, React Native, Expo, Flutter, Kotlin, Swift, and Unity | View source | Build this |
| Verified native examples | Android, Apple, Kotlin, Flutter, React Native, Expo, and Unity package boundaries | Choose the platform-specific example and validate it on its own target; one working platform does not guarantee another | View source | Build this |
Showcases without a runnable starter
These maintained product-pattern pages are useful architecture references and live demonstrations. They are not listed as starter projects because no public runnable repository is maintained for the exact surface.
| Showcase | What it demonstrates | Pattern |
|---|---|---|
| Broadcast control room | Preview, program, contributor invitation, and operator takeover | Read the pattern |
| Interactive classroom | Teacher projection, learner admission, polls, boards, and breakouts | Read the pattern |
| Hybrid stage and audience | Realtime stage separated from broadcast/HLS audience playback | Read the pattern |
Choose an integration mode
Use a standalone repository when you want an end-to-end product composition and are comfortable owning its application shell and backend. Use a package-specific SDK quick start when you need direct control of the room lifecycle on one platform. Use a product pattern when you are deciding roles, media identity, operator actions, or stage/audience boundaries before choosing an SDK.
For the released widgets package, choose a standalone element when you want a
ready-made surface, @mediasfu/widgets/react when the host owns React
composition, or @mediasfu/widgets/headless when the host owns the markup and
accessibility controls. Prefer a modular widget subpath import when you need
one surface; do not load the full CDN or root bundle for a single element.
Every room starter should obtain room data through an authenticated backend. Browser code may receive a scoped widget or session grant for the intended room, but durable MediaSFU credentials remain behind that backend. MediaSFU Cloud is the managed service. MediaSFU Open is the media server your organization runs on its own infrastructure, not another hosted MediaSFU endpoint.
Build and source links
The links above are intentionally paired: Build this takes you to a canonical guide or pattern, and View source takes you to the runnable public repository. For package-specific operations, continue to the SDK catalog and tutorial catalog; for product composition, use Product patterns.