Building Drop-In Animated Captions for Remotion
Every Remotion video project needs captions, but the work is usually split across transcription, timing cleanup, visual styling, and component wiring. I wanted a single package that removed the repetitive setup and let me focus on the actual video.
What I built
- A drop-in caption component that can render timed subtitles with minimal configuration.
- Support for multiple speech-to-text providers so the package works in different budgets and deployment setups.
- A preset and style system for karaoke, highlight, typewriter, and other presentation patterns.
- CLI utilities and format exports so the same caption data can move between editing and rendering workflows.
Technical decisions
- Kept the public API close to Remotion's caption ecosystem so the package feels native instead of bolted on.
- Used TypeScript heavily to make caption data, timing, and component options safer to compose.
- Separated transcription, caption transformation, and rendering concerns so individual pieces can evolve independently.
Why this project matters
- It shows product thinking around developer experience, not just component implementation.
- It demonstrates familiarity with programmatic video tooling, packaging, and practical open-source ergonomics.
- It is the kind of project that can save other teams real build time, which is a strong hiring signal.
Links
- GitHub: https://github.com/neutral-Stage/remotion-captioneer
- Live URL: https://neutral-stage.github.io/remotion-captioneer/
- Repository topics: animation, captions, karaoke, open-source, programmatic-video, react, remotion, subtitles
- Primary language: TypeScript
Takeaway
This project reflects the kind of work I enjoy most: shipping practical software, tightening the developer or user workflow, and documenting the technical decisions clearly enough that another engineer can pick it up and keep moving.