An automated video pipeline, generated entirely in code
Producing vertical videos without ever opening an editing suite: each video is a React component, rendered by a pipeline that also handles voice, subtitles, quality control and publishing.
- Client
- Personal project : R&D
- Period
- 2025 – present
- Sector
- Automation / Media
Design & development
79
video compositions in code
6 stages
automated end to end
0
editing software used
The starting problem
Regular video production always hits the same wall: manual editing does not scale. Every video demands hours of repetitive work, timing subtitles, keeping the format consistent, exporting, publishing. The result: production stops as soon as time runs short, and visual consistency drifts from one video to the next.
The approach
Treat video as software. Each video becomes a React component (via Remotion): the content is code, therefore versionable, reusable and generable in batches. Around it, a command-line pipeline chains every step that adds no creative value.
What I built
- Videos rendered in React/TypeScript (Remotion) in vertical 1080×1920 at 30 fps
- A reusable component library: transitions, framing, per-series colour systems
- Voice-over generated by speech synthesis, then subtitles auto-aligned (Whisper)
- A 6-stage CLI pipeline: catalogue → render → quality check → captions → publish → log
- Two interchangeable publishing routes: browser automation (Playwright) or official API
- Persistent catalogue state so processing resumes without starting over
- An automatic quality-control stage before anything is published
The results
- 79 video compositions driven as code, versioned and reproducible
- Visual consistency guaranteed by construction: the design system is shared code, not an editing habit
- Time now goes into writing, not formatting tasks
- Schedulable publishing, with no machine running at broadcast time
- A design change propagates across a whole series in one go
Tech stack
- React
- TypeScript
- Remotion
- Node.js
- Whisper
- Speech synthesis
- Playwright
- Tailwind CSS