MediaSFU React Native Expo
This guide gives you the public setup path for the MediaSFU React Native Expo package and points to generated API references when you need exact signatures or types.
Quick start
- Best for: Expo-managed mobile apps
- Package/artifact:
mediasfu-reactnative-expo - Install:
npm i mediasfu-reactnative-expo
Start in 60 seconds
- Install the package:
npm i mediasfu-reactnative-expo - Pick backend mode: MediaSFU Cloud or self-hosted MediaSFU Open.
- Follow the first setup section below for your framework.
Before you continue
- Best for: Expo-managed mobile apps
- If you use bare React Native CLI, prefer
/sdks/react-native. - New to MediaSFU? Start at /sdks to compare frameworks quickly.
What you can ship with this SDK
| Question | Direct answer |
|---|---|
| What is prebuilt? | Generic, Conference, Webinar, Broadcast, and Chat room components for Expo-managed projects. |
| How can I change the UI? | uiOverrides, custom cards, customComponent, or returnUI={false} for an app-owned Expo shell. |
| Can I use MediaSFU as the engine? | Use sourceParameters and exported media, participant, room, and stream helpers from your own Expo UI. |
| What can I learn from? | Starter integration, Expo configuration, custom UI examples, troubleshooting, and generated TypeDoc. |
Five-minute path
- Run the copy/paste starter unchanged.
- Pick the closest prebuilt room shape.
- If the product is still room-shaped, customize selected surfaces before replacing the full UI.
- If the product is an operator console, game, support workspace, or another app-owned experience, use the engine/headless path.
Compare every SDK and UI ownership level at /usage/capability-map.
Copy/paste starter
Install the package, then render the default room before adding overrides or headless behavior.
npm i mediasfu-reactnative-expo
import { MediasfuGeneric } from 'mediasfu-reactnative-expo';
export default function App() {
return (
<MediasfuGeneric
credentials={{
apiUserName: 'your-api-username',
apiKey: 'your-api-key',
}}
connectMediaSFU={true}
/>
);
}
For production, obtain room details through your secure backend proxy rather than shipping long-lived credentials in the app.
Do not skip this order
- Decide backend mode first: MediaSFU Cloud or self-hosted MediaSFU Open.
- Validate one successful create or join flow with the default room surface from this SDK.
- Only then customize the shell, cards, or room ownership model.
- Use the generated API reference when you need exact symbols or signatures, not as the first stop.
This order prevents most early confusion and keeps backend issues separate from UI customization work.
Choose your backend mode
| Mode | Best for | What you must provide |
|---|---|---|
| MediaSFU Cloud | Fastest onboarding, managed infrastructure, less operational work | Cloud credentials stored in secure runtime or build configuration. |
| MediaSFU Open / self-hosted | Private infrastructure, local control, custom deployment requirements | A self-hosted MediaSFU Open deployment plus the URL or config you pass into localLink or the equivalent connection setting. |
If you have not made this choice yet, make it before going deeper into customization or API reference material.
API reference
- Start with the portal overview at /api-reference.
- Use the MediaSFU React Native Expo entry on that page to open the staged TypeDoc site for this package at
/api/react-native-expo/.
Use the SDK guide for workflow guidance and the staged TypeDoc site for exact package details, generated symbols, and signatures.