---
name: remotion-best-practices
description: Router for all Remotion skills
version: 4.0.519
---
## Preserve user changes
Users may make edits in the code outside of the conversation.
If you detect a surprising change made in the meanwhile, don't overwrite it, assume it was intentional or ask for confirmation.
## Creating a video
If the user asks to make, create, or build a new video or composition, load [Create a new Remotion video](./remotion-create/REFERENCE.md), whether or not a Remotion project already exists.
## New project setup
If no Remotion project currently exists, load [Create a new Remotion project](./remotion-create/REFERENCE.md)
## React Markup Best Practices
If you are writing Remotion React Markup, load [Remotion Markup Best Practices](./remotion-markup/REFERENCE.md)
## Maps
For static maps, animated routes and markers, geographic explainers, Mapbox, MapLibre, MapTiler, GeoJSON, or 3D geographic flyovers, load [Remotion Maps](./remotion-maps/REFERENCE.md).
## Multimedia
For achieving multimedia tasks in the browser, such as trimming, cropping videos, or getting metadata from them, load [Remotion Multimedia](./remotion-multimedia/REFERENCE.md)
## Improving Interactivity
By structuring the Remotion markup well, we can allow users to interactively change things in the Studio and write back to code. If relevant: [Interactivity Best Practices](./remotion-interactivity/REFERENCE.md)
## Rendering
For advanced rendering beyond simple `npx remotion render`, see: [Rendering Best Practices](./remotion-render/REFERENCE.md)
## Opening Remotion Studio
When creating or editing a video, start Studio and open its preview as soon as the project can run, before building the composition. Keep it open while you work so the user can see changes and steer.
To launch a project in Remotion Studio, open its exact local URL, or configure Studio CLI flags, load [Remotion Studio](./remotion-studio/REFERENCE.md).
## Captions
When working with Captions, load [Remotion Captions](./remotion-captions/REFERENCE.md).
## Creating a SaaS, automation or application
Use the [Remotion SaaS skill](./remotion-saas/REFERENCE.md) for knowledge about Remotion-powered SaaS apps, such as `<Player>`, rendering on Lambda, Vercel, Cloudflare, via Express.js, client-side rendering, or for finding the right SaaS template.
## Looking up Remotion APIs and documentation
To find and read current Remotion documentation, load [Remotion Docs](./remotion-docs/REFERENCE.md).
## Upgrading
To upgrade Remotion, related packages, compatible Mediabunny packages, and installed Remotion Agent Skills, load [Remotion Upgrade](./remotion-upgrade/REFERENCE.md).
## Codex troubleshooting
When running inside Codex, first try starting the Remotion Studio without opening the system browser:
```bash
npx remotion studio --no-open
```
Open the exact printed URL in the Codex in-app browser and verify that Studio loads. Once a composition exists, verify that its video preview loads. If you cannot open it there, run Studio without `--no-open`.
Only if that fails with file watcher limits such as `EMFILE: too many open files, watch`, retry with polling and without opening a browser from Codex:
```bash
npx remotion studio --no-open --webpack-poll 1000
```
After retrying, open the exact printed URL in the Codex in-app browser and verify that Studio loads. Once a composition exists, verify that its video preview loads. If you cannot open it there, retry without `--no-open`.
If Studio still fails to start from Codex, ask the user to start it manually from their macOS Terminal and then continue using the already-running Studio. Sandbox errors while launching Chromium from Codex are likely caused by the Codex/macOS sandbox rather than the Remotion project.