SpacesTek Final is a complete, multi-framework reference for building social audio rooms, video spaces, and WebRTC communities with MediaSFU. It pairs an application-owned interface with MediaSFU room orchestration, media production, remote playback, screen sharing, participant controls, and a secure backend boundary.
Quick start · Backend proxy · MediaSFU documentation · API Sandbox
- Create and join MediaSFU rooms without exposing privileged API credentials.
- Produce microphone, camera, and screen-share media.
- Consume remote video and mount every remote audio renderer.
- Build a custom room surface while the SDK manages the real-time lifecycle.
- Resolve the main media surface as screen share, remote camera, then local camera.
- Connect profiles, spaces, host controls, and participant state to one shared Node.js service.
- Compare the same product flow across five SDKs.
| Framework | App | Notes |
|---|---|---|
| React | mediasfu_reactjs | Browser MediaStream rendering and a custom headless room |
| Angular | mediasfu_angular | Angular service-based headless state and audio/video surfaces |
| React Native | mediasfu_react_native | Bare native mobile application |
| Expo | mediasfu_react_native_expo | Expo development build; WebRTC does not run in Expo Go |
| Flutter | mediasfu_flutter | Flutter room lifecycle and custom media widgets |
| Backend | backend | Space data and the secure create/join proxy |
Start with QUICKSTART.md, then open the README inside your chosen client.
SpacesTek client
├─ profiles, spaces, roles, and application UI
├─ headless media surface
│ ├─ selected screen/camera video
│ └─ every remote audio renderer
└─ create/join adapter (contains no privileged MediaSFU key)
│
▼
SpacesTek backend
├─ authenticates and authorizes your application user
├─ validates and limits the room request
└─ adds MediaSFU credentials from server-only environment variables
│
▼
MediaSFU Cloud or your MediaSFU Open server
The MediaSFU SDK remains mounted as the room engine. It produces local media, consumes participant media, exposes controls, and publishes current room state; SpacesTek decides what the user sees.
MediaSFU Cloud is the managed service. Obtain API access through MediaSFU, explore room request shapes in the API Sandbox, and keep the credentials on your backend.
MediaSFU Open is a media server that you deploy, run, and operate yourself. Installing SpacesTek does not start it. After deploying it, configure the SDK or backend with its reachable address. See MediaSFU Open.
Entering API details directly in an SDK UI can be useful for a private local experiment. A shared or production application should proxy both room creation and joining through its backend. Read the secure backend proxy guide.
- Mount the SDK room engine without its packaged interface.
- Handle every parameter publication and explicit media-change notification.
- Re-read the latest parameters with the pure
getCurrentParams()where the SDK exposes it. Do not use the republishinggetUpdatedAllParams()as a render-time getter. - Render the selected screen share or camera stream in your product UI.
- Mount every returned audio component independently of video visibility.
- Invoke SDK actions for microphone, camera, screen share, and teardown.
For choosing between the prebuilt room, UI overrides, custom components, and headless mode, see the MediaSFU Build Style Guide.
The React live-room test notes document two independent browser participants connected through the repository's secure backend proxy. It verifies room creation, joining, video production, and remote video consumption with visibly labeled synthetic input. Audible remote audio and screen sharing were not measured in that run.
Read CONTRIBUTING.md. This project is licensed under the MIT License.




