A programmatic video generation system built with Remotion (React-based video rendering) and directed with Claude Code. It turns a text quote and a category label into a branded, vertical (1080×1920) Instagram Reel — rendered as an MP4, not edited by hand frame by frame.
This repo documents the actual system: the brand configuration, the two React components that make up the video, the automation script for batch rendering, and the constraints file that keeps Claude's output on-brand every time.
Most "faceless content" video tools are either fully manual (cut in CapCut/Premiere one at a time) or a black-box SaaS template. This project sits in between: a small, code-defined video component, driven by data, that renders consistent branded output on demand — with an AI coding agent doing the implementation work under a fixed set of design rules.
- Input: a category label + a quote (or one row from a CSV of many)
- Output: a branded vertical MP4, ready to post
- Control layer:
CLAUDE.md— a constraints file that stops the AI agent from drifting off-brand (wrong fonts, too many colors, generic copy, wrong logo casing)
remotion-video-editor-automation-generator/
├── .github/
│ └── workflows/render.yml # CI check on push (build validation)
├── src/
│ ├── config/
│ │ └── branding.ts # Color palette + typography tokens
│ ├── components/
│ │ ├── Wordmark.tsx # Logo component (locked casing/color rules)
│ │ └── QuoteComposition.tsx # The actual video template
│ ├── Root.tsx # Registers the composition with Remotion
│ └── index.ts # Entry point
├── data/
│ └── quotes-sample.csv # Example dataset for batch rendering
├── scripts/
│ └── render-batch.ts # Automation script: CSV row → MP4
├── package.json
├── CLAUDE.md # Brand + voice constraints for the AI agent
├── sample-input.md # One example input, annotated
├── sample-output.md # What the rendered output looks like
└── README.md
For anyone who wants to see it run without touching code.
Prerequisites
- Install Node.js (LTS version).
- Install Visual Studio Code (or any editor) to view the files.
Steps
- Open a terminal (PowerShell on Windows, Terminal on Mac) and move into the project folder:
cd remotion-video-editor-automation-generator npm install - Start the Remotion Studio preview:
This opens a live preview at
npm run dev
http://localhost:3000, where you can see the video composition update in real time. - To direct changes through Claude Code instead of editing manually, run in a second terminal:
Then give it a plain-English instruction, e.g.:
npx claude
"Change the quote to 'Strategy before tactics.' and confirm it still respects the one-accent-color rule."
- Export the finished video as an MP4:
The file lands in the
npx remotion render QuoteReel out/my-reel.mp4
out/folder.
Install
git clone https://github.com/zSofisticated/remotion-video-editor-automation-generator
cd remotion-video-editor-automation-generator
npm installLocal preview across your network (useful for checking on mobile)
npm run dev -- --hostBatch-rendering from a dataset
scripts/render-batch.ts reads data/quotes-sample.csv and renders one MP4 per row — this is the automation layer that replaces manually opening a template per post:
npx tsx scripts/render-batch.tsSingle render with custom props via CLI
npx remotion render QuoteReel out/production-reel.mp4 --props='{"category":"INSIGHT","quote":"Data before opinion."}'I use this as the rendering layer behind a faceless, systemized content pipeline. The point isn't the video effect — it's that a locked set of brand rules (CLAUDE.md + branding.ts) means every output is on-brand by construction, whether I generate one video or a hundred, and whether I typed the props myself or an AI agent did.
Remotion · React · TypeScript · Claude Code · Node.js