Intro to Stream and Accepting UGC: Building VidBin

Overview of Cloudflare Stream and walkthrough of building an app on Pages and Workers to accept user generated content (UGC) easily. Let’s build a “PasteBin but for video” together, without needing any video expertise!

Cloudflare sponsored THAT Conference Texas 2024 which gave me an opportunity to talk about Stream. As I was working with the event team to figure out how we might demo the product, we thought about a potential proof of concept app. I settled on making a “PasteBin” but for video.

Pieces of VidBin

In this presetation, I walk through Stream at a high level, then break down VidBin into six “steps” to show common use-cases, questions, and patterns we see as folks start building video into their app.

The app (frontend and server components both) are built with Cloudflare Pages’s new support for Next.js called Next on Pages.

Check out VidBin to take it for a spin or see how it’s built at


Stream UGC 101: Building VidBin on Google Slides


My first stab at a new talk. Will re-record with a lot more sleep, much less coffee, and some refinements based on the experience today!


VidBin was heavily influenced by an internal demo called “Paste.Video” built by two colleagues, Ryan Schachte and Scott Miller, with beta testing and frontend advice from Kevin Kipp. Apal Shah’s post WebRTC — Switch Cameras using Javascript getUserMedia was super helpful when I was trying to figure out how to build the flip camera button.

Thanks also to THAT Conference; Evan Griffith for photos, moral support, and beta testing; and to our Cloudflare group at the conference (Dawn, Sabrina, Peter, Nathan, Kristian, and Emilio) for a great couple days with lots of good conversations. And in spirit, thanks to my old friends in green at Four Kitchens who got me speaking a lot back in the day. Today was my first talk since DrupalCon 2019 — and although I am on team orange now, I was a Web Chef when I learned I like hosting talks.