Build live applications where people, AI systems, and devices communicate in real time over Cloudflare's global network ↗︎.


RealtimeKit
Add audio or video calls to your app
Use prebuilt meeting UI and SDKs for web and mobile. Add managed recording or transcription if your app needs it.
Explore RealtimeKitRealtime SFU
Build custom WebRTC applications
Use the Realtime SFU API to control which endpoints publish or receive audio, video, and data. Your application handles signaling and permissions.
Explore Realtime SFUIn-app meetings
Add audio or video calls to your web or mobile app with prebuilt screens and controls.
View guideVirtual classrooms
Set instructor and student permissions, then split a class into breakout rooms. Record or transcribe sessions when needed.
View guideLive events
Add reactions, chat, and polls to a live event.
View guideEmbedded devices
Send audio and telemetry from an ESP32 to browsers, with controls for one authorized operator. Use the same design for robot gateways.
View guideCloud gaming
Stream a game from a Container to browsers, then send keyboard and pointer input back over DataChannels.
View guideAI audio pipelines
Transcribe microphone audio with Workers AI, then send generated speech to browsers through WebSocket media adapters.
View guideCloudflare TURN
Relay WebRTC traffic through Cloudflare when a NAT or firewall prevents a direct connection.
WebSocket adapter
In beta. Send PCM audio in either direction between Realtime SFU and a WebSocket service, or send JPEG video to the service.
DataChannels
Exchange chat, sensor updates, and control events between WebRTC endpoints.
If you are new to WebRTC ↗︎ and want to add audio or video meetings to your app, use RealtimeKit. It includes web and mobile SDKs with prebuilt UI. Cloudflare handles signaling and media routing, and you can add managed recording or transcription.
If you have WebRTC experience and need control over what each endpoint publishes or receives, use Realtime SFU. Your application handles signaling, permissions, session state, and track discovery. Cloudflare runs the SFU and forwards media to subscribers.
A TURN server relays traffic when a NAT or firewall prevents two WebRTC endpoints from connecting directly. If a direct connection works, TURN stays out of the path.
RealtimeKit configures Cloudflare TURN for you. Realtime SFU includes access to the same service. You can also use Cloudflare TURN with your own SFU or peer-to-peer application by generating TURN credentials.
Cloudflare TURN uses Anycast ↗︎, so you do not have to deploy regional TURN servers or load balancers.
Use RealtimeKit webinars when attendees join as participants. They might speak, appear on camera, or move into breakout rooms.
Use Stream Live when a small group of presenters broadcasts and the audience mainly watches. For example, a webinar with a few presenters and a large watch-only audience should use Stream Live.
Get started with RealtimeKit
Create your first meeting and add RealtimeKit to your app.
Get started with Realtime SFU
Create an application, open an SFU session, and publish a media track.