DEV Community

Cover image for I'm Building a Video Platform Alone. Here's the Stack That Makes It Possible.
ARITRA SARKAR
ARITRA SARKAR

Posted on

I'm Building a Video Platform Alone. Here's the Stack That Makes It Possible.

Video infrastructure has a reputation for needing a funded team — ballooning storage costs, transcoding pipelines, uploads that die at 90%.

A few years ago that reputation was earned. It isn't anymore.

Here's the actual stack running SeamLift, what each piece solves, and what I deliberately didn't use.

Storage — Cloudflare R2

The silent killer in video isn't storage, it's egress. Every view means bandwidth leaving your bucket. On S3, that bill scales with your success — a horrible incentive to build on.

R2 charges zero egress. You pay to store the file, not to have it watched.

Why not S3? Egress.
Why not Backblaze or Wasabi? I didn't run an exhaustive bake-off — I already trust Cloudflare and run other things there, so consolidating beat chasing a marginally cheaper bucket.

Transcoding — Modal

Uploads arrive in every codec imaginable and need normalizing with FFmpeg. That's heavy, bursty compute: a lot of CPU for ninety seconds, then nothing. Running a 24/7 server for that is waste.

Modal spins up a container on demand, runs the job, and disappears. I pay for the seconds I actually transcode.

Why not Lambda? The 15-minute and payload ceilings bite on large files.
Why not a dedicated video service? Modal got me shipping faster. Cost optimization is a problem I've earned the right to have later.

Uploads — The TUS Protocol

Video files are big and real-world networks are flaky. A 2GB upload that dies at 90% on hotel wifi is a rage-quit. TUS makes uploads resumable — a dropped connection picks up where it left off instead of starting over.

For a tool editors use to send large files, that's not a nice-to-have. It's the product.

Why not S3 multipart? It can be made resumable too. I went with TUS because it's an open protocol built for exactly this, with mature client libraries, and it isn't welded to one storage vendor.

Hosting — Vercel + Railway

Frontend on Vercel: easiest path, and free at my current scale.

Backend on Railway because, in my opinion, it scales with usage instead of charging a fixed slab of compute and RAM whether I use it or not.

Why Not Just Buy a Managed Video API?

Mux, Cloudflare Stream, and api.video are all genuinely good options — the obvious "just buy it" path for a solo founder.

I chose to assemble primitives instead, for two reasons: cost, and because I wanted to actually understand and own the thing I'm building on.

The Takeaway

None of these are exotic. That's the point.

One person can now build what genuinely needed a team five years ago, because the hard parts are managed primitives you can rent by the second.

The job isn't building the hard infrastructure anymore. It's knowing which piece solves which problem — and wiring them together well.

Top comments (0)