Fried Stream
prototypeWebRTC system
Overview
Fried Stream is a minimal WebRTC streaming setup with a WebSocket signaling server, room creation, and a host-controlled viewer approval flow. No third-party streaming infrastructure.
Why I built it
I wanted to understand WebRTC signaling from scratch rather than using a managed service. This was a learning project that became a real working prototype.
Technical highlights
- –Custom WebSocket signaling server in Node.js handling offer/answer/ICE exchange
- –Room-based session management with host approval queue
- –Adaptive bitrate handling via RTCPeerConnection stats API
- –STUN-only setup for direct peer connections on local networks
Hardest engineering problem
ICE candidate negotiation across different NAT configurations is nondeterministic. Getting reliable connections required careful candidate gathering and trickle ICE timing.
What I learned
WebRTC is well-specified but the browser implementations have edge cases. Testing requires real network conditions, not just localhost.
Stack
JavaScriptWebRTCWebSockets