README.md
</td>
<td align="right">
<h1>OpenCut</h1>
<h3 style="margin-top: -10px;">A free, open-source video editor for web, desktop, and mobile.</h3>
</td>
Thanks to Vercel and fal.ai for their support of open-source software.
<a href="https://vercel.com/oss"> </a> <a href="https://fal.ai"> </a>apps/web/: Next.js web applicationapps/desktop/: Native desktop app built with GPUI (in progress)rust/: Platform-agnostic core: GPU compositor, effects, masks, and WASM bindings. We're actively migrating business logic here from TypeScript.docs/: Architecture and subsystem documentationNote: Docker is optional but recommended for running the local database and Redis. If you only want to work on frontend features, you can skip it.
Fork and clone the repository
Copy the environment file:
# Unix/Linux/Mac
cp apps/web/.env.example apps/web/.env.local
# Windows PowerShell
Copy-Item apps/web/.env.example apps/web/.env.local
Start the database and Redis:
docker compose up -d db redis serverless-redis-http
Install dependencies and start the dev server:
bun install
bun dev:web
The application will be available at http://localhost:3000.
The .env.example has sensible defaults that match the Docker Compose config — it should work out of the box.
Desktop is opt-in. If you're only working on the web app, skip this entirely.
If you want to get ready for apps/desktop, see apps/desktop/README.md. It's a two-step setup: Rust toolchain first, then desktop native dependencies.
Only needed if you're editing rust/wasm and want the web app to use your local build instead of the published package.
Build the package once from the repo root:
bun run build:wasm
Register the generated package for linking:
cd rust/wasm/pkg
bun link
Link apps/web to the local package:
cd apps/web
bun link opencut-wasm
Rebuild on changes while you work:
bun dev:wasm
To switch apps/web back to the published package, run:
cd apps/web
bun add opencut-wasm
To run everything (including a production build of the app) in Docker:
docker compose up -d
The app will be available at http://localhost:3100.
We welcome contributions! While we're actively developing and refactoring certain areas, there are plenty of opportunities to contribute effectively.
🎯 Focus areas: Timeline functionality, project management, performance, bug fixes, and UI improvements outside the preview panel.
⚠️ Avoid for now: Preview panel enhancements (fonts, stickers, effects) and export functionality - we're refactoring these with a new binary rendering approach.
See our Contributing Guide for detailed setup instructions, development guidelines, and complete focus area guidance.
Quick start for contributors:
apps/desktop? See apps/desktop/README.md for setup