Skip to main content

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

ProjectBest forPlatforms and evidenceRepositoryBuild this
Familiar CallsClick-to-call and two-person conversationsReact and browser WHIP/WHEP locally exercised; other ports are separately boundedView sourceBuild this
Live AuctionLive shopping, timed lots, and bidder rolesReact room and bid journey locally exercised; other platform entries are documented independentlyView sourceBuild this
Watch TogetherProgram video, conversation floor, and HLS audienceReact WHIP/floor/HLS path locally exercised; native adapters remain separately boundedView sourceBuild this
AgentsVoice/vision agents and human handoffReact and React Native room shells exercised; provider and device behavior remains application-specificView sourceBuild this
VOIPSIP/PSTN bridges and operator callingApplication composition and secure proxy documented; this catalog does not claim a carrier callView sourceBuild this
SpacesTek InitialProfiles, spaces, roles, and product-learning flowUse it to learn the application journey; it does not include a maintained MediaSFU room integrationView sourceBuild this
SpacesTek FinalSecure social-space rooms and custom media surfacesIncludes separate React, Angular, React Native, Expo, and Flutter room references; test the platform you shipView sourceBuild this
SpacesTek AdvancedHeadless UI, moderation, admission, and custom controlsIncludes separate platform implementations; test media, devices, recovery, and cleanup on every targetView sourceBuild this
Standalone MediaSFU widgetsVanilla web, React composition, or semantic headless controls@mediasfu/widgets@0.1.0 is published; production authentication and shell delivery were observed for all six elementsView sourceBuild this
SDK quick startsSecure create/join and package-specific room baselinesStatus is recorded independently for React, Angular, Vue, React Native, Expo, Flutter, Kotlin, Swift, and UnityView sourceBuild this
Verified native examplesAndroid, Apple, Kotlin, Flutter, React Native, Expo, and Unity package boundariesChoose the platform-specific example and validate it on its own target; one working platform does not guarantee anotherView sourceBuild 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.

ShowcaseWhat it demonstratesPattern
Broadcast control roomPreview, program, contributor invitation, and operator takeoverRead the pattern
Interactive classroomTeacher projection, learner admission, polls, boards, and breakoutsRead the pattern
Hybrid stage and audienceRealtime stage separated from broadcast/HLS audience playbackRead 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.

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.