home / skills / liandyao / remotion / remotion-best-practices

remotion-best-practices skill

/.opencode/skills/remotion-best-practices

This skill helps you implement Remotion best practices across animations, assets, compositions, and timing for high-quality video projects.

npx playbooks add skill liandyao/remotion --skill remotion-best-practices

Review the files below or copy the command above to add this skill to your agents.

Files (34)
SKILL.md
3.5 KB
---
name: remotion-best-practices
description: Best practices for Remotion - Video creation in React
metadata:
  tags: remotion, video, react, animation, composition
---

## When to use

Use this skills whenever you are dealing with Remotion code to obtain the domain-specific knowledge.

## How to use

Read individual rule files for detailed explanations and code examples:

- [rules/3d.md](rules/3d.md) - 3D content in Remotion using Three.js and React Three Fiber
- [rules/animations.md](rules/animations.md) - Fundamental animation skills for Remotion
- [rules/assets.md](rules/assets.md) - Importing images, videos, audio, and fonts into Remotion
- [rules/audio.md](rules/audio.md) - Using audio and sound in Remotion - importing, trimming, volume, speed, pitch
- [rules/calculate-metadata.md](rules/calculate-metadata.md) - Dynamically set composition duration, dimensions, and props
- [rules/can-decode.md](rules/can-decode.md) - Check if a video can be decoded by the browser using Mediabunny
- [rules/charts.md](rules/charts.md) - Chart and data visualization patterns for Remotion
- [rules/compositions.md](rules/compositions.md) - Defining compositions, stills, folders, default props and dynamic metadata
- [rules/display-captions.md](rules/display-captions.md) - Displaying captions in Remotion with TikTok-style pages and word highlighting
- [rules/extract-frames.md](rules/extract-frames.md) - Extract frames from videos at specific timestamps using Mediabunny
- [rules/fonts.md](rules/fonts.md) - Loading Google Fonts and local fonts in Remotion
- [rules/get-audio-duration.md](rules/get-audio-duration.md) - Getting the duration of an audio file in seconds with Mediabunny
- [rules/get-video-dimensions.md](rules/get-video-dimensions.md) - Getting the width and height of a video file with Mediabunny
- [rules/get-video-duration.md](rules/get-video-duration.md) - Getting the duration of a video file in seconds with Mediabunny
- [rules/gifs.md](rules/gifs.md) - Displaying GIFs synchronized with Remotion's timeline
- [rules/images.md](rules/images.md) - Embedding images in Remotion using the Img component
- [rules/import-srt-captions.md](rules/import-srt-captions.md) - Importing .srt subtitle files into Remotion using @remotion/captions
- [rules/lottie.md](rules/lottie.md) - Embedding Lottie animations in Remotion
- [rules/measuring-dom-nodes.md](rules/measuring-dom-nodes.md) - Measuring DOM element dimensions in Remotion
- [rules/measuring-text.md](rules/measuring-text.md) - Measuring text dimensions, fitting text to containers, and checking overflow
- [rules/sequencing.md](rules/sequencing.md) - Sequencing patterns for Remotion - delay, trim, limit duration of items
- [rules/tailwind.md](rules/tailwind.md) - Using TailwindCSS in Remotion
- [rules/text-animations.md](rules/text-animations.md) - Typography and text animation patterns for Remotion
- [rules/timing.md](rules/timing.md) - Interpolation curves in Remotion - linear, easing, spring animations
- [rules/transcribe-captions.md](rules/transcribe-captions.md) - Transcribing audio to generate captions in Remotion
- [rules/transitions.md](rules/transitions.md) - Scene transition patterns for Remotion
- [rules/trimming.md](rules/trimming.md) - Trimming patterns for Remotion - cut the beginning or end of animations
- [rules/videos.md](rules/videos.md) - Embedding videos in Remotion - trimming, volume, speed, looping, pitch
- [rules/parameters.md](rules/parameters.md) - Make a video parametrizable by adding a Zod schema
- [rules/maps.md](rules/maps.md) - Add a map using Mapbox and animate it

Overview

This skill captures best practices for building videos with Remotion using React and TypeScript. It collects focused guidance on animation, assets, captions, audio, performance, and integrations like Three.js, Lottie, and Mapbox. The content is practical and example-driven to help you produce reliable, maintainable Remotion projects. It targets both beginners and experienced Remotion users who want consistent patterns.

How this skill works

The skill groups guidance into rule files that address concrete areas: assets, sequencing, timing, media metadata, fonts, captions, and platform integrations. Each rule explains the problem, recommended approach, and code patterns or utilities to use (e.g., Mediabunny helpers, @remotion/captions, Zod schemas). Use the specific rule for step-by-step examples and the recommended APIs to implement the behavior in your compositions.

When to use it

  • When creating or refactoring Remotion compositions to follow consistent patterns.
  • When you need reliable ways to load, measure, and synchronize media (images, video, audio, fonts).
  • When adding complex features like 3D scenes, animated maps, Lottie, or charts.
  • When implementing captions, transcriptions, or timed text highlighting.
  • When optimizing render performance, trimming clips, or calculating dynamic metadata.

Best practices

  • Centralize asset handling: load fonts, images, and audio through dedicated utilities and validate durations/dimensions before rendering.
  • Use sequencing and trimming patterns to keep clips predictable and avoid out-of-range frames.
  • Derive composition metadata programmatically when durations or dimensions depend on input files.
  • Prefer interpolation and easing helpers for smooth timing; test at multiple frame rates.
  • Measure text and DOM nodes to prevent overflow and ensure consistent layout across resolutions.

Example use cases

  • Create a templated social video that swaps images, captions, and background music based on JSON props.
  • Animate a Mapbox-driven map sequence showing an animated route and zoom with synchronized voiceover.
  • Build a data-driven chart video where animation timing adapts to dataset length and narration.
  • Render a 3D scene using React Three Fiber inside a Remotion composition for dynamic intros.
  • Produce captioned clips by transcribing audio and rendering TikTok-style caption pages with highlighting.

FAQ

How do I reliably get video or audio duration before rendering?

Use the provided Mediabunny helpers to decode files and read metadata; calculate composition duration from those values to avoid timing mismatches.

Can I use Tailwind or other CSS frameworks inside Remotion?

Yes. Integrate Tailwind into your bundler config and scope styles to components; measure rendered output for consistent spacing across frame sizes.