OpenCut - Free Open Source Video Editor

OpenCut
A free, open-source video editor for web, desktop, and mobile.
Why OpenCut? 🎯
- Privacy First 🔒 - Your videos stay on your device
- Completely Free 💰 - Every basic feature of CapCut is paywalled now
- User-Friendly ✨ - People want editors that are easy to use - CapCut proved that
- No Watermarks 🚫 - Professional results without branding
✨ Features
- Timeline-based editing - Professional multi-track timeline
- Multi-track support - Audio, video, and overlay tracks
- Real-time preview - See changes instantly
- No subscriptions - One-time setup, lifetime use
- Cross-platform - Web, desktop, and mobile support
🏗️ Architecture
graph TD
A[OpenCut Editor] --> B[Web App]
A --> C[Desktop App]
A --> D[Mobile App]
B --> E[Next.js Frontend]
B --> F[Timeline Canvas]
B --> G[Preview Panel]
E --> H[Zustand Stores]
H --> H1[Editor State]
H --> H2[Timeline State]
H --> H3[Media State]
H --> H4[Playback State]
F --> I[Multi-track Timeline]
I --> I1[Video Tracks]
I --> I2[Audio Tracks]
I --> I3[Overlay Tracks]
G --> J[Real-time Preview]
J --> K[DOM Rendering]
J --> L[Binary Rendering Future]
M[Storage System] --> N[IndexedDB]
M --> O[OPFS File System]
N --> P[Projects & Settings]
O --> Q[Media Files]
R[Processing] --> S[FFmpeg.js]
R --> T[Background Removal]
R --> U[Transcription]
🚀 Getting Started
Prerequisites
Quick Setup
# 1. Fork and clone the repository
git clone https://github.com/YOUR_USERNAME/OpenCut.git
cd OpenCut
# 2. Navigate to web app
cd apps/web
# 3. Copy environment variables
cp .env.example .env.local
# 4. Install dependencies
bun install
# 5. Start development server
bun devEnvironment Variables
# Database (matches docker-compose.yaml)
DATABASE_URL="postgresql://opencut:opencutthegoat@localhost:5432/opencut"
# Authentication
BETTER_AUTH_SECRET="your-generated-secret-here"
BETTER_AUTH_URL="http://localhost:3000"
# Redis
UPSTASH_REDIS_REST_URL="http://localhost:8079"
UPSTASH_REDIS_REST_TOKEN="example_token"Docker Development
# Start database and Redis services
docker-compose up -d
# Run database migrations
bun run db:migrate
# Start development server
bun run dev📁 Project Structure
apps/
├── web/ # Main Next.js application
├── desktop/ # Tauri desktop app
├── bg-remover/ # Python background removal
└── transcription/ # Audio transcription service
src/
├── components/ # React components
├── stores/ # Zustand state management
├── hooks/ # Custom React hooks
├── lib/ # Utilities and services
└── types/ # TypeScript definitions🎬 Video Editing Workflow
sequenceDiagram
participant User
participant Timeline
participant Preview
participant Storage
participant FFmpeg
User->>+Timeline: Import Media
Timeline->>+Storage: Store in OPFS
Storage-->>-Timeline: File Reference
User->>+Timeline: Add to Track
Timeline->>+Preview: Update Preview
Preview-->>-User: Real-time Feedback
User->>+Timeline: Apply Effects
Timeline->>+Preview: Render Changes
Preview-->>-User: Updated Preview
User->>+Timeline: Export Video
Timeline->>+FFmpeg: Process Timeline
FFmpeg->>+Storage: Generate Output
Storage-->>-User: Download Ready
🤝 Contributing
We welcome contributions! Focus areas include:
✅ Recommended Areas:
- Timeline functionality improvements
- Project management features
- Performance optimizations
- Bug fixes and UI improvements
- Documentation and testing
⚠️ Avoid for Now:
- Preview panel enhancements (undergoing refactor)
- Export functionality changes
- Preview rendering optimizations
Quick Start for Contributors
# 1. Fork and clone
git clone https://github.com/YOUR_USERNAME/OpenCut.git
# 2. Create feature branch
git checkout -b feature/your-feature-name
# 3. Follow setup in CONTRIBUTING.md
# 4. Make changes and test
# 5. Submit pull request🏢 Sponsors
Thanks to our sponsors for supporting open-source software:
📚 Resources
- GitHub Repository
- Getting Started Guide
- Development Setup
- Contributing Guide
- Security Policy
- Code of Conduct
📄 License
MIT License - Free for commercial and personal use.