packages/docs/docs/contributing/index.mdx
Issues and pull requests of all sorts are welcome!
For bigger projects, please coordinate with Jonny Burger (<a href="mailto:[email protected]">[email protected]</a>, <a href="https://remotion.dev/discord">Discord</a>: <code>@jonnyburger</code>) 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.
<Step>1</Step> Remotion uses Bun v1.3.3 as the package manager for development in this repository. The version must be at least 1.3.3.
curl -fsSL https://bun.com/install | bash -s "bun-v1.3.3"
<Step>2</Step> Clone the Remotion repository:
git clone --depth=1 https://github.com/remotion-dev/remotion.git && cd remotion
:::note
The full Git history of Remotion is large. To save time and disk space, we recommend adding --depth=1 to only clone the most recent main branch.
:::
<Step>3</Step> Install all dependencies:
bun i
<Step>4</Step> Build the project initially:
bun run build
<Step>5</Step> Rebuild whenever a file changes:
bun run watch
<Step>6</Step> You can start making changes!
Before using Bun, we used pnpm as the package manager. If you are coming from pnpm, you need to wipe all node_modules folders first before you run bun i.
bun run cleanall
You can start the Testbed using
cd packages/example
bun run dev
You can render a test video using
cd packages/example
bunx remotion render
You can run tests using
bun run test
in either a subpackage to run tests for that package or in the root to run all tests.
@remotion/player testbedYou can test changes to @remotion/player by starting the Player testbed:
cd packages/player-example
bun run dev
For information about testing Remotion components, please consult the Testing Remotion components page. Issues and pull requests of all sorts are welcome!
You can run the Docusaurus server that powers our docs using:
cd packages/docs
bun run start
You can test changes to the CLI by moving to packages/example directory and using bunx to execute the CLI:
cd packages/example
# Example - Get available compositions
bunx remotion compositions
# Example - Render command
bunx remotion render ten-frame-tester --output ../../out/video.mp4
In packages/example, there is a runlambda.sh script that will rebuild the code for the Lambda function, remove any deployed Lambda functions, deploy a new one and render a video.
You need to put you AWS credentials in a .env file of the packages/example directory.
cd packages/example
sh ./runlambda.sh
:::note This will delete any Lambda functions in your account! :::
In packages/example, there is a runcloudrun.sh script that will rebuild the code for the Cloud Run function, remove any deployed Cloud Run services, deploy a new one and render a video.
You need to put you GCP credentials in a .env file of the packages/example directory.
cd packages/example
sh ./runcloudrun.sh
:::note This will delete any Cloud Run services in your account! :::
If your bun run build throws errors, oftentimes it is because of caching issues. You can resolve many of these errors by running
bun run clean
in the root directory. Make sure to beforehand kill any bun run watch commands, as those might regenerate files as you clean them!
To develop new transition presentations, see here.
To develop the Rust parts of Remotion, see here.