VideoFlow vs. Remotion — the open-source alternative.
Remotion is a proprietary commercial product that authors videos as custom React components. VideoFlow is Apache-2.0 open source and authors videos as portable JSON via a fluent builder. Both render MP4s; only one of them lets you read the source — and store the scene anywhere data can live.
| VideoFlow | Remotion | |
|---|---|---|
| Licensing & cost | ||
| License | Apache-2.0, fully open source | Proprietary commercial |
| Cost for 4+ person teams | Core + renderers: free. Optional editor: paid. | Required commercial license |
| Open source contributions | Yes | No |
| Authoring model | ||
| Scene representation | Portable JSON — store in DB, S3, Git, anywhere | React component tree — must live in source files |
| Builder | Fluent JS/TS builder ($.addText, $.group, $.parallel) | JSX with <Sequence>, <AbsoluteFill>, useCurrentFrame() |
| Sequencing | Flow control: $.wait, $.parallel, $.group | Manual frame math with <Sequence from={n}> |
| Animations | Per-property keyframes + easings via .animate(from, to) | interpolate(frame, [in, out], [a, b]) — DIY |
| LLM / agent friendly | Yes — emit JSON from any model | Limited — must generate valid React + bundle |
| Multi-language authoring | Any language that can write JSON (Python, Go, Rust…) | JavaScript / TypeScript only |
| Built-in cinematic features | ||
| Transition presets | 27 built-in (fade, zoom, blur, glitch, 3D rotate, light sweep, scrambleDecode, typewriter, …) | None bundled — write your own with interpolate() |
| GLSL / shader effects | 42 built-in (bloom, glow, frosted glass, VHS, color grade, light rays, …) | None bundled — third-party shader libs only |
| Layer groups | ✓ $.group() composites a sub-tree as one | Manual via nested components |
| Built-in blend modes | ✓ 16 modes on every visual layer | Manual via CSS |
| Rendering | ||
| Browser rendering to MP4 | ✓ first-class via WebCodecs | Limited — preview via @remotion/player; full MP4 export typically server-side |
| Server rendering | ✓ headless Chromium, no ffmpeg required by default | ✓ Chromium-based, ffmpeg required |
| Live preview | ✓ DomRenderer at 60 fps | ✓ Remotion Player |
| Same JSON across all renderers | ✓ | n/a — single React app per scene |
| Ecosystem & lock-in | ||
| Stack lock-in | None — core is vanilla TS | React + Remotion conventions |
| Built-in editor component | ✓ @videoflow/react-video-editor | ✓ Remotion Studio (paid) |
| Bring-your-own renderer | Three official + open spec — write your own | Bundled renderer only |
| Vendor lock-in | None | Switching = rewriting all scenes |
Four reasons the model is different.
Open source as a baseline
Every VideoFlow package except the optional editor is Apache-2.0. Not a teaser tier — the real thing.
JSON, not React
Scenes are data. Generate them from any language. Store them in your database. Diff them in Git. Hand them to an LLM.
Cinematic out of the box
27 transitions and 42 GLSL effects ship by default. Stop writing interpolate() loops for fades.
Composable, not all-in-one
Use the builder without the editor. Use the editor without your own renderer. Pick only what you need.
Frequently asked.
Is VideoFlow a fork of Remotion?
No. VideoFlow is an independent project with a JSON-first model — scenes are portable data, not React components.
Why choose VideoFlow?
Three reasons: portability — every video is plain JSON you can store, version, diff, and generate from any language or LLM, with zero vendor lock-in. Cinematic features — 27 transition presets and 42 GLSL effects ship in the box, no DIY interpolate() loops. And openness — the core and all three renderers are Apache-2.0, not a teaser tier.
Can I migrate from Remotion to VideoFlow?
The core concepts (compositions, props, timeline) map cleanly. A formal migration guide is in progress.
Does VideoFlow need Next.js?
No. The core runs in plain Node and in browsers with zero framework lock-in.