A Claude Code skill for building product/SaaS ad videos entirely in code โ with frame-precise music beat-sync, synthesized SFX, and a visual-QC loop.
ืกืงืื ื-Claude Code ืืื ืืืช ืกืจืืื ื ืคืจืกืืืช ืืกืื ืืจื ืื ืืืื โ ืืงืื, ืืื ืขืืจื ืืืืื.
ืฉืืืช ืขืืืื ืฉืืื โ ืืจืืื ื-Skill ื-Claude Code โ ืืื ืืืช ืกืจืืื ืคืจืกืืืช ืืงืฆืืขื ืืืืจื ืืงืื (Remotion + React), ืืื ืืคืชืื ืขืืจื ืืืืื ืืฃ ืคืขื.
ืืกืงืื ื ืื ื ืืืืงืง ืืืืจื 19 ืืจืกืืืช ืฉื ืคืจืกืืืช SaaS ืืืืชืืช ืืืืจื 77 ืฉื ืืืช, ืืืื:
- ๐ต ืกื ืืจืื ืืืืืงื ืืืื ืืืืืง ืืคืจืืื (ืืืืื BPM, ืื ืืืช ืคืชืื ืื-DNA ืฉื ืืืจืืง, ืงืืื ืืืืฆืื ืฉื ืกืฆื ืืช)
- ๐ ืืคืงืื ืกืืื ื ืืกืื ืชืืื ื-numpy (ืืงืืื, ืคืืค, ืืืฉ, ืงืืืง, ืืฉืืืช-ืืืฉ) โ ืืื ืงืืฆืื ืืืฆืื ืืื
- ๐๏ธ ืืืฆืื ืืงืืขืื โ ืื ืกืฆื ื ืื ืืงืืืค ืขืฆืืื ืืจืฉืชืืช
- ๐ QC ืืืืืืื โ ืืืืืช ืื ืชืืงืื ืขื ืคืจืืืืื ืืจืื ืืจืื, ืื ืื ืืืช
- ๐ ืชืจืืื ืืืืงืืืืฆืื โ ืืชื
LANGืืืื ืฉืืืคื ืืช ืื ืืกืจืืื ืืฉืคื ืืืจืช: ืืงืกื, ืืืืข, ืกืื ื, ืืืืคืื RTLโLTR (ืืืื ืชืจืืื ืฆืืืืื ืืืกื ืืคื ืื) โ ืืื ืืืขืช ืืกื ืืจืื ืืืื
ืืฉืืื ืืื ืืกืืืช ืืืืชื โ ืืฆืืขืื, ืืคืื ืืื ืืืืืื ืื ืงืื, ืื ืืืง ืืืฉืืื. ืขืืื ืืื ืืืฆืจ.
A complete methodology โ packaged as a Claude Code skill โ for producing premium ad videos entirely in code (Remotion + React). No video editor, ever.
Battle-tested across 19 feedback iterations on a real 77-second SaaS ad. The video is a React composition: every frame is deterministic, every client note is a one-line edit plus a re-render, and music sync is exact because timing lives in numbers, not on a timeline.
skill/
โโโ SKILL.md # the 6-phase workflow + non-negotiables + QC method
โโโ references/
โ โโโ beat-sync.md # full music-sync recipe (BPM detect โ build intro โ quantize)
โ โโโ remotion-patterns.md # component patterns: TypedTitle, SplitTitle, KPI counters,
โ โ # screen stacks, camera flyovers, cursor+click, SFX arrays
โ โโโ localization.md # translate to another language: LANG switch, RTLโLTR flip,
โ # currency/idiom, translating embedded UI screenshots
โโโ scripts/
โโโ beat_sync.py # detect BPM + beat grid, suggest quantized scene durations
โโโ build_soundtrack.py # assemble a beat-synced soundtrack from any groove track
Copy the skill into your project's (or global) skills directory:
# clone
git clone https://github.com/Alon17-12/remotion-ad-video-skill.git
# install into a project
mkdir -p .claude/skills
cp -r remotion-ad-video-skill/skill .claude/skills/remotion-ad-video
# โ or globally for all projects โ
cp -r remotion-ad-video-skill/skill ~/.claude/skills/remotion-ad-videoThat's it. Next time you ask Claude Code "let's make a product ad video" or "sync this video to the beat", the skill activates automatically.
- Claude Code
- Remotion 4 (
npx create-video) - Python 3 with
numpy+scipy(for the audio scripts) โ nolibrosaneeded ffmpeg(the audio scripts point at theimageio-ffmpegbinary; adjust the path in the scripts)
- Ideas before pixels โ deliver 50 frame ideas grouped by category; the client picks.
- Scene skeleton โ one file per scene, a
SCENESarray, per-scene segment exports. - The feedback loop โ timestamped notes โ one-line edit โ re-render โ prove it on frames โ open the file.
- Music (after picture locks) โ the client generates a groove (Suno etc.); you build the trailer intro from the track's own drop, then quantize every scene to the beat grid.
- Lock โ brand font on headings, fade aligned to a musical phrase, refresh all segments.
- Localize (optional) โ one
LANGswitch flips the whole film to another language: native idiom + currency + dates, RTLโLTR layout (logical CSS, mirrored chat bubbles, flipped chevrons โ but charts still rise leftโright), and the embedded UI screenshots re-shot in the target language. Durations stay frozen, so the beat-sync is untouched.
- RTL growth charts still rise leftโright (a right-to-left line reads as decline).
- Client copy is sacred โ apply it character-for-character; flag suspected typos, never silently rewrite.
- Brand names stay in their canonical script.
- No invented data in KPI/demo scenes for a real brand.
- Soft, synthesized, few SFX โ loud stock risers get rejected.
- Everything lands on the beat grid once music exists โ compute, don't eyeball (a 3-frame miss โ 100ms is audible).
- One visual language โ pick 1-2 motifs, model them as shared components, repeat everywhere.
Kick off a project:
I want to create a SaaS ad in Remotion for my product: [description]. Vibe: technological, premium, [brand colors]. Open a folder I'll upload materials into (screenshots, logo, mascots) โ and give me 50 frame ideas grouped into categories: hook, product-demo, data, features, closer.
Beat-sync an existing render:
Take the track I uploaded. Detect the BPM and the drop, sample one hit from it and build a three-boom intro that lands exactly on the three hook screens, then quantize every scene duration to the beat grid and align the ending to a full musical phrase with a fade-out.
Translate an existing ad to another language:
Translate the whole ad to English. Don't fork the project โ route every string through a single
LANGswitch so I can flip back to the original anytime. Adapt the copy to natural English (idiom, not word-for-word), switch the currency to$, localize dates and demo names, and flip the layout RTLโLTR (sidebars, chat bubbles, chevrons โ but keep charts rising leftโright). Translate the embedded UI screenshots too, and keep every scene duration identical so the music stays in sync.
Suno prompt (paste into the Style box):
Upbeat tech house / synth-pop instrumental, 120 BPM, modern SaaS commercial energy. Punchy four-on-the-floor kick, tight snappy percussion, deep clean bass groove. Bright plucky synth arpeggios, warm analog chords. Builds steadily, short dreamy breakdown in the last third, final euphoric lift. Polished, premium Apple-commercial feel. Clean mix, steady constant tempo, no vocals, no fade-in.
Built with Claude Code, Remotion, and Suno.
Created by Alon Gabay ยท shared freely for the community.
MIT โ use it, fork it, ship ads with it.