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.example
to.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 dev
Populate .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 test
Submitting 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.