2025-06-26 22:40:25 +05:30
<table width="100%">
<tr>
<td align="left" width="120">
<img src="apps/web/public/logo.png" alt="OpenCut Logo" width="100" />
</td>
<td align="right">
<h1>OpenCut <span style="font-size: 0.7em; font-weight: normal;">(prev AppCut)</span></h1>
2025-07-02 01:39:32 +02:00
<h3 style="margin-top: -10px;">A free, open-source video editor for web, desktop, and mobile.</h3>
2025-06-26 22:40:25 +05:30
</td>
</tr>
</table>
2025-06-22 10:02:50 +02:00
2025-06-22 22:07:06 +02:00
## Why?
2025-06-22 10:02:50 +02:00
2025-06-22 22:07:06 +02:00
- **Privacy**: Your videos stay on your device
- **Free features**: Every basic feature of CapCut is paywalled now
- **Simple**: People want editors that are easy to use - CapCut proved that
## Features
- Timeline-based editing
- Multi-track support
- Real-time preview
- No watermarks or subscriptions
2025-06-24 22:40:19 +03:00
- Analytics provided by [Databuddy ](https://www.databuddy.cc?utm_source=opencut ), 100% Anonymized & Non-invasive.
2025-06-22 22:07:06 +02:00
2025-06-23 15:33:06 +07:00
## Project Structure
2025-06-22 22:07:06 +02:00
2025-06-23 15:33:06 +07:00
- `apps/web/` – Main Next.js web application
- `src/components/` – UI and editor components
- `src/hooks/` – Custom React hooks
- `src/lib/` – Utility and API logic
- `src/stores/` – State management (Zustand, etc.)
- `src/types/` – TypeScript types
## Getting Started
2025-06-23 20:59:31 +00:00
### Prerequisites
Before you begin, ensure you have the following installed on your system:
- [Bun ](https://bun.sh/docs/installation )
- [Docker ](https://docs.docker.com/get-docker/ ) and [Docker Compose ](https://docs.docker.com/compose/install/ )
- [Node.js ](https://nodejs.org/en/ ) (for `npm` alternative)
### Setup
2025-07-12 17:05:53 +05:30
1. Fork the repository
2. Clone your fork locally
3. Navigate to the web app directory: `cd apps/web`
4. Install dependencies: `bun install`
2025-07-16 13:15:41 +02:00
5. Start the development server: `bun dev`
2025-06-23 20:59:31 +00:00
2025-07-12 17:05:53 +05:30
## Development Setup
2025-07-01 19:26:42 +02:00
2025-07-12 17:05:53 +05:30
### Prerequisites
2025-06-23 20:59:31 +00:00
2025-07-12 17:05:53 +05:30
- Node.js 18+
- Bun (latest version)
- Docker (for local database)
2025-07-01 19:26:42 +02:00
2025-07-12 17:05:53 +05:30
### Local Development
2025-06-25 14:28:56 +08:00
2025-07-12 17:05:53 +05:30
1. Start the database and Redis services:
2025-07-01 19:26:42 +02:00
2025-07-12 17:05:53 +05:30
```bash
# From project root
docker-compose up -d
` ``
2025-06-25 14:28:56 +08:00
2025-07-12 17:05:53 +05:30
2. Navigate to the web app directory:
2025-07-01 19:26:42 +02:00
2025-07-12 17:05:53 +05:30
` ``bash
cd apps/web
` ``
2025-07-01 19:26:42 +02:00
2025-07-12 17:05:53 +05:30
3. Copy ` .env.example` to ` .env.local`:
2025-06-23 20:59:31 +00:00
2025-07-12 17:05:53 +05:30
` ``bash
# Unix/Linux/Mac
cp .env.example .env.local
2025-07-01 19:26:42 +02:00
2025-07-12 17:05:53 +05:30
# Windows Command Prompt
copy .env.example .env.local
2025-06-23 20:59:31 +00:00
2025-07-12 17:05:53 +05:30
# Windows PowerShell
Copy-Item .env.example .env.local
` ``
2025-06-23 20:59:31 +00:00
2025-07-12 17:05:53 +05:30
4. Configure required environment variables in ` .env.local`:
2025-07-01 19:26:42 +02:00
2025-07-12 17:05:53 +05:30
**Required Variables:**
2025-06-23 20:59:31 +00:00
2025-07-12 17:05:53 +05:30
` ``bash
# Database (matches docker-compose.yaml)
DATABASE_URL="postgresql://opencut:opencutthegoat@localhost:5432/opencut"
2025-06-23 20:59:31 +00:00
2025-07-12 17:05:53 +05:30
# Generate a secure secret for Better Auth
BETTER_AUTH_SECRET="your-generated-secret-here"
BETTER_AUTH_URL="http://localhost:3000"
2025-07-01 19:26:42 +02:00
2025-07-12 17:05:53 +05:30
# Redis (matches docker-compose.yaml)
UPSTASH_REDIS_REST_URL="http://localhost:8079"
UPSTASH_REDIS_REST_TOKEN="example_token"
2025-06-23 20:59:31 +00:00
2025-07-12 17:05:53 +05:30
# Development
NODE_ENV="development"
` ``
**Generate BETTER_AUTH_SECRET:**
` ``bash
# Unix/Linux/Mac
openssl rand -base64 32
# Windows PowerShell (simple method)
[System.Web.Security.Membership]::GeneratePassword(32, 0)
# Cross-platform (using Node.js)
node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"
# Or use an online generator: https://generate-secret.vercel.app/32
` ``
5. Run database migrations: ` bun run db:migrate` from (inside apps/web)
6. Start the development server: ` bun run dev` from (inside apps/web)
2025-06-23 20:59:31 +00:00
2025-07-02 01:39:32 +02:00
The application will be available at [http://localhost:3000 ](http://localhost:3000 ).
2025-06-22 22:07:06 +02:00
## Contributing
2025-06-22 15:23:11 +02:00
2025-07-17 11:51:20 +02:00
We welcome contributions! While we're actively developing and refactoring certain areas, there are plenty of opportunities to contribute effectively.
2025-07-01 19:26:42 +02:00
2025-07-17 11:51:20 +02:00
** 🎯 Focus areas:** Timeline functionality, project management, performance, bug fixes, and UI improvements outside the preview panel.
2025-07-01 19:26:42 +02:00
2025-07-17 11:51:20 +02:00
** ⚠️ 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 ](.github/CONTRIBUTING.md ) for detailed setup instructions, development guidelines, and complete focus area guidance.
2025-06-24 02:09:43 +02:00
2025-07-02 01:39:32 +02:00
**Quick start for contributors:**
2025-06-24 02:09:43 +02:00
- Fork the repo and clone locally
- Follow the setup instructions in CONTRIBUTING.md
- Create a feature branch and submit a PR
2025-07-05 02:57:41 +02:00
## Sponsors
Thanks to [Vercel ](https://vercel.com?utm_source=github-opencut&utm_campaign=oss ) for their support of open-source software.
2025-07-14 23:53:33 +02:00
<a href="https://vercel.com/oss">
<img alt="Vercel OSS Program" src="https://vercel.com/oss/program-badge.svg" />
</a>
2025-07-05 02:57:41 +02:00
[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2FOpenCut-app%2FOpenCut&project-name=opencut&repository-name=opencut)
2025-06-22 15:23:11 +02:00
## License
2025-06-24 05:06:21 +08:00
[MIT LICENSE ](LICENSE )
2025-07-11 15:59:56 +02:00
---
2025-07-11 22:18:32 +02:00
