Contributing
Contributing to OpenCut
Thank you for your interest in contributing to OpenCut! This document provides guidelines and instructions for contributing.
Getting Started
Prerequisites
- Node.js (v18 or later)
- Bun (preferred package manager)
- Docker and Docker Compose for optional services
Note: Docker is optional but required for running the local database and Redis services. If you are only working on the frontend you can skip Docker.
Setup
- Fork the repository
- Clone your fork locally
- Navigate to the web app directory:
cd apps/web - Copy
.env.exampleto.env.local - Install dependencies:
bun install - Start the development server:
bun run dev
If you see an error like Unsupported URL Type "workspace:*" when running npm install, upgrade npm to v9+ or use Bun/PNPM.
Where to Focus
Great areas: timeline and project management improvements, performance tuning, bug fixes, accessibility, documentation, and tests.
Avoid for now: preview rendering, export pipeline internals, and major preview UI overhauls (a binary renderer is being developed).
Unsure? Ask in Discord or open an issue.
Local development
# Start database + Redis services
docker-compose up -d
# Apply migrations from apps/web
bun run db:migrate
# Run the app
bun run devPopulate .env.local with the values documented in the getting started guide.
Quality checks
bun run lint
bun run typecheck
bunx biome format --write .
bun run testSubmitting changes
- Create a topic branch:
git checkout -b feature/your-feature - Make changes and add tests where relevant
- Run linting/formatting checks
- Commit with a descriptive message and open a pull request
Please follow the Code of Conduct and keep discussions respectful.