OpenCut is a free, open-source video editor designed as a privacy-first alternative to proprietary tools like CapCut. It targets creators who want full control over their media without paywalls, watermarks, or cloud uploads. Built with TypeScript and Next.js, it runs natively on web, desktop, and mobile — processing all video data locally for maximum privacy.
The project leverages a monorepo structure with Bun, Docker, and Rust-based WASM modules for high-performance video rendering. It integrates Databuddy for anonymized analytics and Marble CMS for its blog, and supports self-hosting via Docker Compose with Redis and PostgreSQL backends.
What You Get
- Timeline-based editing - A professional-grade timeline interface for cutting, trimming, and arranging video and audio clips with precise frame-level control.
- Multi-track support - Layer video, audio, text, and overlays on separate tracks for complex compositions without external plugins.
- Real-time preview - Live rendering of edits with low latency, enabling immediate feedback during trimming, transitions, and effects application.
- No watermarks or subscriptions - All features are completely free with no hidden paywalls, watermarks, or mandatory account creation.
- Local processing only - All video files are processed on your device; no uploads to cloud servers, ensuring complete privacy and data ownership.
- Databuddy analytics - Non-invasive, anonymized usage analytics to guide development without tracking user content or behavior.
Common Use Cases
- Running a YouTube Shorts channel - A content creator uses OpenCut to edit vertical videos with text overlays and transitions without paying for CapCut’s premium features.
- Educational video production - A teacher creates classroom tutorials using OpenCut’s timeline editor, keeping student footage private and offline.
- Independent filmmaker editing on a budget - A filmmaker edits 4K footage on a laptop using OpenCut’s desktop app, avoiding subscription fees and proprietary formats.
- Privacy-conscious social media manager - A marketer edits Instagram Reels and TikTok clips without uploading sensitive brand assets to cloud-based editors.
Under The Hood
Architecture
- Monorepo structure coordinated via Turbo, with clearly bounded packages for web, tools, and Rust WASM modules
- Separation of low-level audio processing in Rust WASM from React-based UI state management using context providers for dependency injection
- Backend services decoupled through Docker Compose with environment-driven configuration for consistent deployment across environments
- Next.js App Router leverages server components and client hydration to maintain a clean API-client boundary
- Asset and font handling abstracted through specialized types and build-time sprite generation to eliminate runtime overhead
Tech Stack
- Next.js with TypeScript and Tailwind CSS forming the frontend foundation, supported by Biome for consistent code style
- Rust WebAssembly module integrated via Cargo workspace for performance-critical audio operations
- PostgreSQL and Redis as core data stores, with serverless-redis-http enabling Redis access in serverless contexts
- Turbo orchestrates builds and tests across subprojects with precise dependency tracking and environment injection
- Docker Compose manages the full stack with health checks and network isolation, deploying via Dockerfile with cloud service configuration
- Bun serves as the unified package manager and test runner, paired with Zod, BetterAuth, and Drizzle ORM for type-safe data handling
Code Quality
- Extensive test coverage across domains including audio processing, timeline operations, and data migrations
- Domain-specific test files mirror architectural layers, validating edge cases and state transformations with precision
- Migration tests use fixtures to ensure backward compatibility, idempotency, and safe state evolution
- Consistent TypeScript interfaces and exact object matching enforce type safety and predictable behavior
- Defensive programming in migrations prevents failures through explicit validation of inputs and version compatibility
What Makes It Unique
- Real-time, property-path-based keyframe editing with live preview enables pixel-precise animation control without full re-renders
- Animation state is managed as a typed, path-aware system where properties function as editable channels
- Incremental, versioned storage migrations with explicit transformers preserve project integrity across schema changes
- Authentication flows are seamlessly integrated via BetterAuth with Next.js API routes, minimizing boilerplate
- The timeline is implemented as a mutable, undoable state machine with preview/commit phases, enabling non-destructive editing uncommon in web video tools