Shortfilmed
A Scalable Streaming Platform for Short Films
MediaTech / Video InfrastructureI. The Challenge
Independent filmmakers lacked a dedicated, affordable, and performant platform to showcase short films. Mainstream streaming services imposed high barriers, while DIY setups struggled with large-file delivery, device compatibility, and cost. The challenge: deliver a Netflix-style UX with enterprise-grade streaming and a clear path to subscriptions without heavy ops overhead.
II. The Solution & Architecture
Built an end-to-end pipeline where a Node.js ingest script runs FFmpeg to transcode films and generate HLS segments. The script uploads segments and playlists via the Supabase JS SDK to Supabase Storage, while metadata lands in PostgreSQL. The Next.js 14 frontend streams with HLS.jsand presents Netflix-style discovery (carousels, drawers, search). Next step (SE POV): add Supabase Auth + Stripe for tiered subscriptions and per-title purchases.
System Architecture
III. Technology Stack
Frontend & Framework
- Next.js 14 (App Router)
- React 18 + Suspense
- Tailwind CSS
- Zustand (Global + Drawer stores)
Video Pipeline
- Node.js Ingest Script
- FFmpeg (HLS segmenting)
- HLS.js Player
- Plyr + React Player
Backend & Data
- Supabase (PostgreSQL)
- Supabase Storage (assets)
- Supabase JS SDK
- RLS (planned with Auth)
Infrastructure
- Netlify Hosting
- Optional S3 archive/export
- next-sitemap + SEO
- Ezoic / Ads (monetization)
IV. Results & Impact
Reliable streaming delivery using HLS segments on Supabase Storage
Video processed & served via adaptive bitrate streaming for POC
Lower editorial overhead via metadata ingestion & automation
Auth + subscriptions designed for tiered access & PPV expansion
Key Learnings
- •Decoupling ingest (Node) from delivery (Next.js) prevents UI stalls and simplifies scaling.
- •HLS (with multiple renditions) dramatically improves playback across variable bandwidths.
- •Supabase Storage + Postgres keeps assets/metadata in one platform, reducing glue code.
- •Designing early for Auth + Billing avoids rework when adding subscriptions/TVOD later.
