Back to Projects
In development
DemoPrivate
Next.jsReactTypeScriptFFmpegCloudflare R2SQLitepnpm monorepo2026Video Studio
Private monorepo for a web video studio: Next.js UI on Vercel and heavy jobs (FFmpeg, optional ASR, vertical crop) on a local worker. Product focus is Automate — talking head → short and long/podcast → clips — before a full NLE. The Recursos library is R2-only in the editor; a local folder is the sync source. APIs require a Bearer token; the Vercel demo is the UI shell (the worker does not run in the cloud).
Project Screenshots

1 / 6
What I learned
- Split serverless UI from a local FFmpeg worker without pretending Vercel does the render
- Invest in Automate packs (A/C) and freeze other editor scope until that path is green
- Ship an R2-only media library in the editor with sync from a local folder
- Tighten trust: Bearer on /api/*, local bind, MIME-allowlisted uploads
Technical Details
- •pnpm monorepo: apps/web (Next.js), apps/worker (FFmpeg/ASR), packages/db (SQLite)
- •Cloudflare R2 for the Recursos library (LIBRARY_SOURCE=r2)
- •Automate A (talking head) and C (long → clips) with hermetic smokes
- •APIs with Authorization Bearer; STUDIO_API_TOKEN
- •UI demo: https://video-studio-nu.vercel.app — worker only on the local host




