Been running an experiment on our agency site: every animation on it is a Remotion composition embedded with @remotion/player, and Claude Code wrote all 16 of them. Everything sits in one pnpm/Turborepo monorepo on Vercel, the Next.js app, the scenes, an internal image API we use for blog images, plus the agent’s instruction files.
Honestly, getting Remotion code out of an agent was pretty easy. Keeping 16 scenes looking like they came from the same site was not. Early on, we had wild discrepencies e.g found font sizes between 14 and 19px for the same role, spacing anywhere from 2 to 22px, connectors that arced in one scene and ran dead straight in the next. Pointing it at the docs didn’t help, it still hallucinated design standardization and I was initially unimpressed.
However, we actually got it working using Matt Pococks’ Grill with docs
- It helped us to create a component kit, so the rules live in code.
Panel,Connector,Badge, tokens for type/spacing/tint, easing roles (enter/exit/move/sweep) so scene code never names a raw curve - A skill file that only loads when the task touches scene work. The trigger has to be written like a tripwire, if you don’t name “quick easing tweak” explicitly the agent decides that isn’t scene work and hand-rolls a curve
- ADRs recording which design debates are closed. Without those, a future session will cheerfully re-add drop shadows because they “add depth”
Also: delete bad primitives, don’t deprecate them. We removed the old bézier connector from the codebase entirely, because if an API exists the agent will use it.
The monorepo matters more (powered by Turborepo of course) than I expected. A scene touches the composition, two registrations, an embed mapping and the MDX page hosting it. In one repo that’s one agent session and one PR it can verify end to end. Numbers from git history: before the kit + skill, a scene took 4 to 9 commits over 3 to 7 days… Afterwards, six scenes shipped in a single day each, roughly ten minutes of agent time per scene.
Downsides, because there are some: a scene eats close to a full context window per session, and taste is still entirely on you. It built our bad ideas just as well as our good ones (we tried textless skeleton panels early on, looked terrible, had to catch it and pivot to real text ourselves).
Wrote it up properly with the git history table and skill excerpts:
Curious if anybody else has effectively outsourced an entire aspect of their site to “vibe coding” and if it’s been successful?