Home

Work / 2025

ezStream

Stream to YouTube and Twitch from the browser.

A video calling and live-streaming platform. Join a room, call the others in it peer to peer, and broadcast the room to YouTube or Twitch without installing anything.

Role
Solo: design and build
When
2025
Stack
Next.js, TypeScript, WebRTC, Socket.IO, FFmpeg, Redux, Node.js, MongoDB
Note
Hosted on Render’s free tier, so the first visit can take a minute to wake it.
Links
An ezStream room: share screen, change room, and stream settings for an RTMP URL and stream key.
01

Rooms, peer to peer

Everyone in a room connects to everyone else directly over WebRTC, with Socket.IO carrying the signalling that sets the calls up. Rooms hold several people at once.

~4 slatency in multi-participant rooms.

02

Out to YouTube and Twitch

Paste a platform’s RTMP URL and stream key into the room, and FFmpeg on the server transcodes the stream and pushes it out over RTMP, with the bitrate, frame rate and resolution you choose.

03

Alive in a background tab

Browsers throttle inactive tabs, and that froze the canvas the stream is drawn on whenever you switched away. I fixed the throttling, so the broadcast keeps running in the background.

04

The rest of the stack

A Next.js front end in TypeScript with Redux and Framer Motion, and Node.js services for signalling and streaming, with JWT sign-in and sessions in MongoDB. It is deployed on Render.

ezStream’s home page: Stream directly from your browser.