remotion
Skill68 starsChanged 24 days agoMITView on GitHub
Remotion video creation in React - dynamic concept catalog for video briefs, cold audience optimization, and technical best practices
37 other projects use a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- podo/design-agent-skillstheir own version, first seen Nov 8, 2026
- soilmass/motion-design-agenttheir own version, first seen Nov 8, 2026
- OpenMontageInc/OpenMontagetheir own version, first seen Nov 8, 2026
- digitalsamba/claude-code-video-toolkittheir own version, first seen Nov 8, 2026
- calesthio/OpenMontagetheir own version, first seen Nov 8, 2026
- delorenj/skillstheir own version, first seen Nov 7, 2026
Used with
Projects with it also use aeon-update, auto-workflow and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
aaronjmarsSkillaeon-update
Pull framework updates from the upstream Aeon repo into this instance - 3-way merges canon's new commits into a PR, never clobbering operator config.
Also in 4 projects that use this
aaronjmarsSkillauto-workflow
Two-mode aeon.yml workflow builder - analyze inspects URLs and emits a tiered, signal-verified skill-enablement plan plus an aeon.yml diff; enable flips slugs to enabled:true and opens a PR.
Also in 4 projects that use this
- +10 more from aaronjmars
Other versions37 projects use a version of this.
Word for word · 0
None found.
Edited · 1
- TheBeardedBearSAS/claude-craft★ 10816% same
Wrote their own version · 36
- calesthio/OpenMontage★ 78ksame name
- OpenMontageInc/OpenMontage★ 78ksame name
- vercel-labs/json-render★ 19ksame name
- digitalsamba/claude-code-video-toolkit★ 2.5ksame name
- aaronjmars/aeon★ 789same name
- aeonfun/aeon★ 789same name
- dracohu2025-cloud/draco-skills-collection★ 227same name
- diodeme/Gold-Band★ 164same name
- podo/design-agent-skills★ 32same name
- eigent-ai/agent-skills★ 27same name
26 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository33 other files it gives its agents.
- ad-creativeSkill
- agent-skill-builderSkill
- ai-content-generationSkill
- ai-humanizerSkill
- case-study-builderSkill
- clay-gtm-outboundSkill
- competitive-intelligenceSkill
- copy-anatomySkill
- customer-segmentsSkill
- domain-healthSkill
- experimentationSkill
- icp-personaSkill
- landing-pageSkill
- lifecycle-marketing-campaignsSkill
- marketing-advantagesSkill
- marketing-product-ideasSkill
- n8n-automationSkill
- obsidian-opsSkill
- outbound-engineSkill
- performance-marketingSkill
- portfolio-positioningSkill
- press-releaseSkill
- product-launch-gtmSkill
- product-marketing-metricsSkill
- product-messagingSkill
- product-onboarding-activationSkill
- product-positioningSkill
- prospect-scraperSkill
- saas-landing-pagesSkill
- seo-auditSkill
- skill-to-promptSkill
- storytelling-frameworkSkill
- vibe-codingSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
14 rules. 0 are common, 12 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 29 edited versions we read keep these.
12
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 11
Use this skill when:
- Distinctive: line 21
When creating a new Remotion video, follow this 8-step process.
- Distinctive: line 27
Before any creative work, identify the brand.
- Distinctive: line 51
After locking the creative brief, analyze it to select the best video concepts for this specific use case.
- Distinctive: line 67
If the concept naturally front-loads a result or data point (metric-counter, animated-infographic, before-after), it is inherently stronger …
- Distinctive: line 95
No brand identification in scene 1 (save brand card for scene 2 or later)
- Distinctive: line 96
Hook pattern restrictions for cold audiences: Use pattern-interrupt, result-first, or loss-aversion.
- Distinctive: line 97
Concept flexibility: If no concept in the catalog fits the brief well for a cold audience, create a hybrid or adapt an existing concept.
- Distinctive: line 110
Default FPS: 30. Only use 60 if smooth motion is critical.
- Distinctive: line 168
Source of truth: If matching an existing design, reference the source file.
- Very specific: line 180
Always use a centralized timing constant (const T = { ...
- Distinctive: line 186
Write code against locked decisions.
- Distinctive: line 196
Read individual rule files for API details and code examples.
- Very specific: line 261
All animation driven by
useCurrentFrame(): No CSS transitions, no Tailwind animate-* or transition-* classes, no React Three Fiber …
“Common” is measured: kept by at least 6 in 10 of the 29 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
When to Use
Use this skill when:
- Creating a new Remotion video from scratch
- Generating video brief variants for a content asset
- Modifying an existing Remotion composition
- Debugging Remotion animation or rendering issues
- Working with any Remotion-specific APIs or components
- Showing a real website, tool or product UI in a video (use rules/site-ui-from-code.md)
Video Creation Process
When creating a new Remotion video, follow this 8-step process. Step 2 selects 3-5 concepts from the catalog based on the brief and cold audience optimization. Steps 4 and 5 are approval gates. Do not write code until both are approved.
For the full process document with templates and decision matrices, read references/video-creation-process.md.
Step 0: Brand Identification
Before any creative work, identify the brand. Ask the user: "What brand is this video for?"
If the brand is MIA, use the MIA theme below. No further brand questions needed.
If the brand is not listed, ask the user to provide a brand website URL or brand guidelines. Extract: background color, primary accent, secondary accent, text colors, font family, and theme (light/dark). If no guidelines exist, ask for at minimum: primary color, background color, and font preference.
Step 1: Creative Brief
Gather and lock before any creative work:
Purpose: [Why this video exists]
Audience: [Who is watching]
Core message: [One sentence]
Content type: [blog-post, case-study, webinar, podcast, lead-magnet, product-update, tool-launch, industry-report, event-recap, client-testimonial, playbook, template, ai-demo, custom-gpt]
Channels: [Where it will be distributed]
CTA: [What the viewer should do next]
Source assets: [Files, components, or URLs to reference]
Tone: [Descriptive words for the feel]
Brand: [Brand name from Step 0]Step 2: Concept Selection (3-5 Recommended Concepts)
After locking the creative brief, analyze it to select the best video concepts for this specific use case. Do not present a fixed set of variants. Draw from the concept catalog in references/concept-catalog.md.
The catalog contains 18 primary concepts, 8 visual style modifiers, and 5 cold audience hook patterns. Read it before generating recommendations.
Selection Process
- Score concepts against the brief. For each concept in the catalog, evaluate:
- Does the concept's "Best For" match the content type?
- Can the core message land in 15-30 seconds with this structure?
- Does the concept work at the target duration and dimensions?
- Does the brief provide the data/visuals this concept needs?
- Apply the cold audience filter. For each scored concept, evaluate:
- Can a viewer with ZERO prior context understand the value in the first 3 seconds?
- Does the concept create scroll-stopping visual motion in the opening beat?
- Does the concept avoid requiring prior knowledge of the brand, product, or problem space?
- If the concept naturally front-loads a result or data point (metric-counter, animated-infographic, before-after), it is inherently stronger for cold audiences than narrative concepts that need setup time.
- Select a hook pattern. For each recommended concept, pair it with a hook pattern from the catalog:
- Content with data → result-first
- Product launches and tools → pattern-interrupt
- Thought leadership and education → curiosity-gap
- Trust-building content → social-proof-hook
- Competitive and pricing content → loss-aversion
- Present 3-5 recommended concepts as one-page briefs. For each:
- Concept name (from the catalog) and one-sentence description
- Why it fits this brief (1-2 sentences referencing the specific content and audience)
- Recommended hook pattern and opening beat description
- Scene-by-scene table (from the catalog template, customized for this content)
- Optional visual style modifier if one enhances the concept
- Rank the recommendations. Mark the top recommendation and explain why.
- User selects one (or a hybrid of two). Lock the selected concept before proceeding to Step 3.
Cold Audience Optimization Rules
These rules apply to all concept recommendations and override content-type defaults when they conflict:
- Default assumption: cold audience. Unless the brief explicitly states the audience is warm (retargeting, existing users, newsletter subscribers), assume zero brand awareness.
- First scene requirements for cold audiences:
- A visual pattern interrupt (motion, color contrast, or scale change)
- Text that names a problem or result the viewer recognizes WITHOUT knowing the brand
- No brand identification in scene 1 (save brand card for scene 2 or later)
- Hook pattern restrictions for cold audiences: Use pattern-interrupt, result-first, or loss-aversion. Avoid curiosity-gap unless the stat/claim is universally relatable without brand context.
- Concept flexibility: If no concept in the catalog fits the brief well for a cold audience, create a hybrid or adapt an existing concept. The catalog is a starting library, not a constraint.
Step 3: Format and Specs
Resolve from the brief and selected variant using the format decision matrix:
| Channel | Dimensions | Duration |
| LinkedIn/Instagram feed | 1080x1080 | 15-30s |
| Website/presentation | 1920x1080 | 15-60s |
| Reels/TikTok/Stories | 1080x1920 | 15-60s |
| Email (GIF) | 600x600 or 800x450 | 5-10s |
Default FPS: 30. Only use 60 if smooth motion is critical.
Dimensions: [width]x[height]
Duration: [X] seconds ([X * fps] frames)
FPS: 30
Composition ID: [PascalCase]
Loop: [yes/no]
Output formats: [mp4, gif, webm]
Selected concept: [concept-id from catalog, or hybrid]Step 4: Scene Breakdown (APPROVAL GATE)
Define every scene before writing code. Use the selected variant's scene template as the starting structure, then customize for the specific content.
Present the scene table for approval.
Scene table format:
| # | Name | Time | Copy | Animation | Purpose |
| 1 | Hook | 0-3s | Exact text | Motion description | Why it exists |
Timing guidelines:
| Duration | Scene Count | Avg Per Scene |
| 10s | 3-4 | 2.5-3.3s |
| 15s | 4-6 | 2.5-3.75s |
| 30s | 8-12 | 2.5-3.75s |
| 60s | 12-20 | 3-5s |
Lock copy, timing, and narrative structure before proceeding.
Step 5: Visual Design (APPROVAL GATE)
Lock before implementation:
Color palette (minimum required roles):
- Background, Primary accent, Secondary accent
- Text primary, Text secondary, Text tertiary
- Border/divider
Brand theme preset (MIA only, skip color questions):
| Brand | Background | Primary Accent | Secondary Accent | Text Primary | Text Muted | Font | Theme |
| MIA | #F7F4FA / #1c1422 (dark) | #F1DE71 (Yellow) | #7184F1 (Purple) | #1c1422 / #f7f4fa (dark) | rgba(28,20,34,0.62) | system-ui, -apple-system, Segoe UI | Light |
MIA accent palette: Blue #71C4F1, Purple #7184F1, Pink #F171C4, Green #71F19E
Custom brands: Colors come from the product's own screens or the brand kit, never from guesses. Define them from the brand website or guidelines provided in Step 0. Fill the same roles: background, primary accent, secondary accent, text primary, text muted, font, theme.
Typography: Font family, weight hierarchy, sizes at target resolution.
Animation style: Spring (bouncy/smooth/snappy), linear, or ease-based. Pick a dominant style.
Source of truth: If matching an existing design, reference the source file.
Step 6: Architecture Decision
Agent resolves this based on scene complexity:
| Condition | Approach |
| Under 15 scenes | Single file |
| 15+ scenes or reusable parts | Multi-file with scenes/ directory |
| Shared elements across scenes | Persistent layer with opacity envelope |
Always use a centralized timing constant (const T = { ... }).
When a scene shows a real site, tool or product UI, build it from the site's own code, never redrawn by hand. Follow rules/site-ui-from-code.md: import the components for a React product, or capture and rebuild a plain HTML site with the site motion kit. Every result on screen must be a real output.
Step 7: Implementation
Write code against locked decisions. All animation must follow Remotion rules (see Technical Reference below).
Step 8: Output Documentation
Generate a reference doc covering: specs, selected variant, preview/render commands, scene breakdown, color palette, timing config, architecture notes, iteration guide.
Technical Reference
Read individual rule files for API details and code examples.
Core Animation and Timing
- rules/animations.md - Animation fundamentals. All motion via
useCurrentFrame(). No CSS transitions - rules/timing.md -
interpolate(),spring(), easing functions, spring configs - rules/sequencing.md -
<Sequence>and<Series>for timing, delay, and duration control - rules/trimming.md - Trim beginnings (negative
from) and ends (durationInFrames) - rules/transitions.md -
<TransitionSeries>with fade, slide, wipe, flip, clockWipe
Media
- rules/assets.md -
staticFile()for public folder assets - rules/videos.md -
<Video>with trimming, volume, speed, looping, pitch - rules/audio.md -
<Audio>with trimming, volume, speed, pitch - rules/images.md -
<Img>component (ensures load before render) - rules/gifs.md -
<AnimatedImage>for GIF/APNG/AVIF/WebP - rules/fonts.md - Google Fonts via
@remotion/google-fonts, local fonts via@remotion/fonts
Text and Captions
- rules/text-animations.md - Typewriter, word highlighting patterns
- rules/measuring-text.md -
measureText(),fitText(),fillTextBox() - rules/display-captions.md - TikTok-style captions, word-by-word highlighting
- rules/import-srt-captions.md - Parse
.srtfiles withparseSrt() - rules/transcribe-captions.md - Whisper.cpp, Whisper Web, OpenAI API
Composition and Metadata
- rules/compositions.md -
<Composition>,<Still>,<Folder>,defaultProps - rules/calculate-metadata.md - Dynamic duration, dimensions, and props
Advanced
- rules/3d.md -
<ThreeCanvas>with React Three Fiber - rules/charts.md - SVG/D3.js charts animated via
useCurrentFrame() - rules/lottie.md -
<Lottie>component with@remotion/lottie - rules/tailwind.md - TailwindCSS (no
transition-*oranimate-*classes) - rules/site-ui-from-code.md - Real site and tool UI built from the site's own HTML and CSS, with real outputs (site motion kit)
Media Utilities (Mediabunny)
- rules/extract-frames.md - Extract video frames at timestamps
- rules/can-decode.md - Check video/audio decodability
- rules/get-video-duration.md - Video duration in seconds
- rules/get-video-dimensions.md - Video width and height
- rules/get-audio-duration.md - Audio duration in seconds
Layout
- rules/measuring-dom-nodes.md -
useCurrentScale()for accurate measurements
References
- references/concept-catalog.md - Concept catalog with 18 primary concepts, 8 visual style modifiers, 5 cold audience hook patterns, selection criteria, and content-type affinity matrix
- references/video-creation-process.md - Full process document with templates, decision matrices, and detailed guidance
Hard Rules
These apply to all Remotion code. Violations will produce incorrect output.
- All animation driven by
useCurrentFrame(). No CSS transitions, no Tailwindanimate-*ortransition-*classes, no React Three FiberuseFrame() - Use Remotion components (
<Img>,<Video>,<Audio>) not native HTML elements - Use
staticFile()for all assets in thepublic/folder - Time in seconds: multiply by
fpsfromuseVideoConfig()to get frames - No third-party animation libraries driving motion (disable their animations, use
useCurrentFrame()instead) - Every concept must be self-explanatory. A viewer scrolling with zero context should understand the value from the video alone. No scene should depend on external knowledge. Copy must carry the full message independently. Always assume a cold audience unless the brief says otherwise.
Production Rules
These govern any voiced or reference-matched video. Follow the full launch-video and recording-edit workflow if one is provided.
- Voice track first. Record or generate the voice before building scenes: Google Cloud Text-to-Speech Studio voices, paid ElevenLabs, or a recording of the presenter. Scene timing follows the voice, not the other way round.
- Word-timed captions from Whisper. Transcribe the voice track to a
words.json(see rules/transcribe-captions.md and rules/display-captions.md) and time every caption word by word. The caption style copies the reference video. These safety rules always apply on top: never place captions over a face, and keep the bottom fifth of a 9:16 frame empty. - Music ducked under voice. Music sits well under the voice and drops further whenever the voice speaks.
- Sound effects on cuts. Each hard cut and key on-screen change gets a sound effect.
- No fade transitions unless the reference uses them. Match the reference's cut and transition style.
- Loudness about -16 LUFS for the final mix.
- Colors from the product screens or the brand kit. This is a hard rule. Never invent a palette.
- Style template pattern. Measure a reference once (cut rhythm, caption look, motion, sound placement) and write it as a style spec. Turn that spec into a reusable composition with the values as props, so the next video in the same style is a new script and new screens in the same composition.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

