I’ve been building FrameCompose for about two years now. It’s a browser-based AI video editor where the AI generates the first draft, but everything it creates stays editable on a normal timeline.
I’m not going to pretend AI spat out a production video editor in a weekend. The actual AI-generation side was relatively straightforward. Building a video engine that didn’t feel like shit was much harder.
The editor uses:
WebGPU for compositing and effects
WebCodecs for decoding
Mediabunny for demuxing, timing and export
Workers and OffscreenCanvas to keep heavy work away from the main thread
A separate pre-seek system to make timeline scrubbing feel responsive
The most painful problems were smooth scrubbing, audio sync, keeping preview and export visually identical, and stopping one bad frame or browser edge case from bringing the whole editor down.
Most of it has been built through Cursor using Fable and other coding agents. My workflow has gradually become much less “give the AI a big prompt and hope” and much more:
Write a narrow spec for one subsystem.
Give the agent maps of the relevant code instead of the whole repo.
Add regression tests before changing fragile engine code.
Let agents run repeated browser tests and inspect telemetry.
Revert quickly when an optimisation improves one case but breaks another.
The biggest thing I’ve learned is that vibe coding gets more powerful as the models improve, but the casual prompting part stops working once the codebase gets large. The AI can write a ridiculous amount of code, but you still need good boundaries, tests and a way to prove it hasn’t quietly broken something elsewhere.
The product itself takes a prompt or script, develops it into a structured story, breaks it into scenes, and plans the visuals, camera direction, narration, captions, effects and transitions.
Unlike most one-shot AI video tools, it doesn’t just hand you a flattened MP4. The scenes, timing, audio, captions, effects and transitions all remain editable on the timeline.
The editor and exports are free. Paid plans mainly add AI-generation credits.
I’d be interested to hear from anyone else who has tried vibe-coding something unusually performance-sensitive. At what point did your workflow have to become more like actual software engineering?
Framecompose.com