Motion
A video here is structured, editable scene data — not one fragile render. The same idea as a verified diff, applied to video.
Why that matters
A scene is revised by id. Fixing the third scene leaves the other nine byte-identical, so a small change does not risk everything you already approved. The project is JSON: scenes, elements, positions, sizes, animation timing — readable, diffable, and reviewable like anything else you commit.
How a video gets made
- Scaffold the project and pick the aspect — vertical for shorts, horizontal, or square.
- Write scenes. Elements are structured components: titles, captions, callouts, charts with real data, browser and device frames, cursors — plus a hand-drawn set (sketch arrows, circles, underlines, highlights, checkmarks) that draw themselves on with real animation timing.
- Verify. This is the part most tools skip.
- Preview in a scrubbable HTML player with a captions toggle and a safe-area guide.
- Export to MP4 — H.264 and AAC at the project's resolution and frame rate, captions and brand burned in.
Verification
Motion's video verifies the way Build's code verifies. The checker catches off-safe-area and off-canvas elements, empty text, animation timing that overflows its scene, broken references, missing assets, and bad durations.
It also catches text that will not fit its box even at the smallest readable size. The renderer already wraps and shrinks text to fit, so this only fires when no font size works — which means it is a real problem, not a warning you learn to ignore. The fix is a shorter string, a bigger box, or splitting it across elements.
Treat an error like a broken build: fix the scene, re-verify, and only then tell anyone the video is done.
Captions, voice-over and brand
- Captions are generated from each scene's narration and stay editable data with an SRT sidecar — never burned into the render until export. You can import an existing SRT instead.
- Voice-over: attach a clip and the scene's duration snaps to its real measured length, so visuals fit the narration rather than the other way round.
- Brand kit: colours, font, caption styling and a watermark, applied only where a scene has not set its own — so branding recolours a video without changing its message.
Export needs FFmpeg. Everything up to and including the live preview does not.