JSON is the New MP4: Building a Video-First SaaS
October 2, 2026 · By VideoFlowDiscover why treating video as structured data is the key to scaling video-first SaaS. Learn how VideoFlow's portable VideoJSON replaces fragile binary pipelines.
JSON is the New MP4: Building a Video-First SaaS
For years, developers building video-centric applications have been forced into a "binary-first" mindset. We treat videos as heavy, opaque blobs that live in S3 buckets, opaque to our version control systems and nearly impossible to manipulate without a heavy-duty server and a string-concatenated FFmpeg command.
But as we move into the era of hyper-personalized content and AI-driven automation, the old way isn't just slow—it's a bottleneck. At VideoFlow, we believe that JSON is the New MP4. By treating video as structured data rather than a binary final product, we unlock a level of speed, portability, and maintainability that was previously impossible.
The Portability Paradox
In a traditional pipeline, if you want to preview a video in a React app, export it in a high-quality format for a customer, and render a batch of 1,000 personalized variants for an email campaign, you're usually looking at three completely different tech stacks. You might use a canvas library for the preview, a proprietary API for the user export, and a custom FFmpeg cluster for the batch jobs.
VideoFlow solves this with a decoupled architecture. When you author a video using the VideoFlow Core builder API, you aren't rendering a file; you're compiling a VideoJSON document.

This single JSON document is the source of truth. It can be rendered identically across our three official renderers:
- @videoflow/renderer-browser: In-tab MP4 export via WebCodecs. Zero server cost.
- @videoflow/renderer-server: Headless Chromium on Node.js for high-throughput batch rendering. By default, it encodes without an FFmpeg dependency.
- @videoflow/renderer-dom: Frame-accurate, 60fps live preview for interactive editors.
Building with the VideoFlow Builder API
Because your video is just code, it's trivial to integrate into your existing TypeScript environment. You get type safety, autocompletion, and the ability to reuse components across different video projects.
Consider how easily you can build a dynamic, animated title card that reacts to user data:
import VideoFlow from '@videoflow/core';
const $ = new VideoFlow({ width: 1920, height: 1080, fps: 30 });
// Constructing a scene is as simple as adding layers
const title = $.addText({
text: `Welcome back, User!`,
fontSize: 6,
color: '#FF5A1F',
position: [0.5, 0.4],
});
// Cinematic motion is built-in
title.fadeIn('500ms');
title.animate(
{ scale: 1 },
{ scale: 1.1 },
{ duration: '3s', easing: 'easeOut', wait: false }
);
$.wait('3s');
title.fadeOut('500ms');
const videoJson = await $.compile();
This snippet doesn't just describe a visual; it describes a flow. You can store this videoJson in a database, diff it against previous versions, or even let an LLM agent modify it on the fly. As we explored in our guide on the Multi-Language Video Stack, this portability is the foundation of a truly modern video pipeline.
Why Your Video Pipeline Should Be Diffable
When video is binary, code reviews are impossible. You can't "diff" an MP4 to see what changed between two iterations. When video is JSON, your motion graphics become part of your source code.

By adopting a JSON-first approach, you gain:
- Version Control: Track every change to your video templates in Git.
- Instant Previews: Use the Playground to test your JSON without waiting for a 5-minute render.
- Agentic Workflows: LLMs are great at emitting JSON but struggle with binary manipulation. By giving an agent the ability to write VideoJSON, you enable autonomous video creation pipelines.
How VideoFlow Handles This
VideoFlow is designed from the ground up to support this "JSON-is-the-New-MP4" philosophy.
- @videoflow/core: The heart of the toolkit. It's an Apache-2.0 licensed library that handles the heavy lifting of timing, property interpolation, and compilation to VideoJSON.
- Resolution Agnostic: Because we use normalized coordinates (
[0.5, 0.5]) andemunits (1% of project width), the same JSON document can render a 720p social clip and a 4K hero video without a single line of code changing. - Cinematic Primitives: We bundle 27 transition presets and 42 GLSL effects directly into the core. You don't have to build a 'blurResolve' or 'glitchResolve' from scratch; they are native properties of the toolkit.
Whether you are building a SaaS dashboard with personalized recaps, an automated content factory for social media, or an embeddable video editor for your users, treating video as data is the only way to scale.
Get Started
Ready to ditch the fragile FFmpeg scripts and start building video-first?
Explore our comprehensive documentation to understand the core concepts, or jump straight into the Playground to see VideoJSON in action.
If you're ready to integrate VideoFlow into your product, check out the source on GitHub and join the community of developers redefining what it means to create video in 2026.