Contributing to Remotion
Issues and pull requests of all sorts are welcome!
For bigger projects, please coordinate with Jonny Burger (jonny@remotion.dev, Discord: Jonny Burger#1111) to make sure your changes get merged.
Please note that since we charge for Remotion when companies are using it, this is a commercial project.
By sending pull requests, you agree that we can use your code changes in a commercial context.
Furthermore, also note that you cannot redistribute this project. Please see LICENSE.md for what's allowed and what's not.
This project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
Setup
pnpm as the package manager for development in this repository. We recommend using Corepack so you get the same version of pnpm as we have. shcorepack enable
shcorepack enable
If you don't have corepack, install pnpm manually:
shnpm i -g pnpm@7.7.1
shnpm i -g pnpm@7.7.1
Prefix with sudo if necessary.
shgit clone https://github.com/remotion-dev/remotion.git && cd remotion
shgit clone https://github.com/remotion-dev/remotion.git && cd remotion
shpnpm i
shpnpm i
shpnpm build
shpnpm build
shpnpm watch
shpnpm watch
Testing your changes
You can start the Testbed using
shcd packages/examplepnpm start
shcd packages/examplepnpm start
You can render a test video using
shcd packages/examplepnpm render
shcd packages/examplepnpm render
You can run tests using
shpnpm test
shpnpm test
in either a subpackage to run tests for that package or in the root to run all tests.
Running the @remotion/player testbed
You can test changes to @remotion/player by starting the Player testbed:
shcd packages/player-examplepnpm start
shcd packages/player-examplepnpm start
For information about testing, please consult TESTING.md. Issues and pull requests of all sorts are welcome!
Running documentation
You can run the Docusaurus server that powers our docs using:
shcd packages/docspnpm start
shcd packages/docspnpm start
Troubleshooting
If your pnpm build throws errors, oftentimes it is because of caching issues. You can resolve many of these errors by running
tspnpm run clean
tspnpm run clean
in the root directory. Make sure to beforehand kill any pnpm watch commands, as those might regenerate files as you clean them!
Developing Rust parts
To develop the Rust parts of Remotion, see the README in packages/renderer/README.md