Files
dotfiles/dot_agents/skills/cloudflare/references/realtime-sfu/README.md
T
Prad Nukala 6406208b35 shell: fish functions -> ~/.local/bin executables + bash/zsh ports; manage ~/.agents
- 16 cross-shell utilities converted to sh/bash chezmoi executables:
  ai c2p cp-appid extract_agents fab gdc gh-sonr-org-migrate ghg-clone
  ghn gho git-summary launch_omp_livediff_overlay lc-elir mdcp mdp pj
  (ghg-clone not named ghg: unrelated cargo binary owns that name)
- cwd/history helpers stay per-shell: yy c cd clip-last + ghg/ghn/gho
  cd-wrappers in bash/functions/ and zsh/functions/, loaded by rc files
- fish keeps only shell-state functions; converted ones now hit PATH
- cp-appid ignore gating moved to .local/bin path
- dot_agents/skills: 82 skills materialized from dotstate storage so
  dot_claude skill symlinks resolve on fresh bootstrap; dotstate
  profile/symlinks.json released .agents/skills .bashrc .zshrc
2026-08-10 15:15:06 -04:00

3.0 KiB

Cloudflare Realtime SFU Reference

Expert guidance for building real-time audio/video/data applications using Cloudflare Realtime SFU (Selective Forwarding Unit).

Reading Order

Task Files ~Tokens
New project README → configuration ~1200
Implement publish/subscribe README → api ~1600
Add PartyTracks patterns (PartyTracks section) ~800
Build presence system patterns (DO section) ~800
Debug connection issues gotchas ~700
Scale to millions patterns (Cascading section) ~600
Add simulcast patterns (Advanced section) ~500
Configure TURN configuration (TURN section) ~400

In This Reference

  • configuration.md - Setup, deployment, environment variables, Wrangler config
  • api.md - Sessions, tracks, endpoints, request/response patterns
  • patterns.md - Architecture patterns, use cases, integration examples
  • gotchas.md - Common issues, debugging, performance, security

Quick Start

Cloudflare Realtime SFU: WebRTC infrastructure on global network (310+ cities). Anycast routing, no regional constraints, pub/sub model.

Core concepts:

  • Sessions: WebRTC PeerConnection to Cloudflare edge
  • Tracks: Audio/video/data channels you publish or subscribe to
  • No rooms: Build presence layer yourself via track sharing (see patterns.md)

Mental model: Your client establishes one WebRTC session, publishes tracks (audio/video), shares track IDs via your backend, others subscribe to your tracks using track IDs + your session ID.

Choose Your Approach

Approach When to Use Complexity
PartyTracks Production apps with device switching, React Low - Observable-based, handles reconnections
Raw API Custom requirements, non-browser, learning Medium - Full control, manual WebRTC lifecycle
RealtimeKit End-to-end SDK with UI components Lowest - Managed state, React hooks

Recommendation: Start with PartyTracks for most production applications. See patterns.md for PartyTracks examples.

SFU vs RealtimeKit

  • Realtime SFU: WebRTC infrastructure (this reference). Build your own signaling, presence, UI.
  • RealtimeKit: SDK layer on top of SFU. Includes React hooks, state management, UI components. Part of Cloudflare AI platform.

Use SFU directly when you need custom signaling or non-React framework. Use RealtimeKit for faster development with React.

Setup

Dashboard: https://dash.cloudflare.com/?to=/:account/calls

Get CALLS_APP_ID and CALLS_APP_SECRET from dashboard, then see configuration.md for deployment.

See Also