Skip to content

Commit 446e68e

Browse files
committed
chore: monorepo setup and web foundation
1 parent 3f2d5cf commit 446e68e

76 files changed

Lines changed: 3444 additions & 2621 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/CONTRIBUTING.md

Lines changed: 0 additions & 198 deletions
This file was deleted.

.gitignore

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,5 @@
1-
node_modules/
1+
node_modules/
2+
.turbo/
3+
.env
4+
.env.*
5+
!.env.example

README.md

Lines changed: 17 additions & 145 deletions
Original file line numberDiff line numberDiff line change
@@ -1,167 +1,39 @@
11
<table width="100%">
22
<tr>
33
<td align="left" width="120">
4-
<img src="apps/web/public/logos/opencut/icon.svg" alt="OpenCut Logo" width="100" />
4+
<img src="https://assets.opencut.app/branding/symbol.svg" alt="OpenCut Logo" width="100" />
55
</td>
66
<td align="right">
77
<h1>OpenCut</h1>
8-
<h3 style="margin-top: -10px;">A free, open-source video editor for web, desktop, and mobile.</h3>
8+
<h3 style="margin-top: -10px;">A free and open source video editor for web, desktop, and mobile.</h3>
99
</td>
1010
</tr>
1111
</table>
1212

13-
## Sponsors
14-
15-
Thanks to [Vercel](https://vercel.com?utm_source=github-opencut&utm_campaign=oss) and [fal.ai](https://fal.ai?utm_source=github-opencut&utm_campaign=oss) for their support of open-source software.
16-
17-
<a href="https://vercel.com/oss">
18-
<img alt="Vercel OSS Program" src="https://vercel.com/oss/program-badge.svg" />
19-
</a>
20-
21-
<a href="https://fal.ai">
22-
<img alt="Powered by fal.ai" src="https://img.shields.io/badge/Powered%20by-fal.ai-000000?style=flat&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEyIDJMMTMuMDkgOC4yNkwyMCAxMEwxMy4wOSAxNS43NEwxMiAyMkwxMC45MSAxNS43NEw0IDEwTDEwLjkxIDguMjZMMTIgMloiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo=" />
23-
</a>
24-
25-
## Why?
26-
27-
- **Privacy**: Your videos stay on your device
28-
- **Free features**: Most basic CapCut features are now paywalled
29-
- **Simple**: People want editors that are easy to use - CapCut proved that
30-
31-
## Project Structure
32-
33-
- `apps/web/`: Next.js web application
34-
- `apps/desktop/`: Native desktop app built with GPUI (in progress)
35-
- `rust/`: Platform-agnostic core: GPU compositor, effects, masks, and WASM bindings. We're actively migrating business logic here from TypeScript.
36-
- `docs/`: Architecture and subsystem documentation
37-
38-
## Getting Started
39-
40-
### Prerequisites
41-
42-
- [Bun](https://bun.sh/docs/installation)
43-
- [Docker](https://docs.docker.com/get-docker/) and [Docker Compose](https://docs.docker.com/compose/install/)
44-
45-
> **Note:** 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.
46-
47-
### Setup
48-
49-
1. Fork and clone the repository
50-
51-
2. Copy the environment file:
52-
53-
```bash
54-
# Unix/Linux/Mac
55-
cp apps/web/.env.example apps/web/.env.local
56-
57-
# Windows PowerShell
58-
Copy-Item apps/web/.env.example apps/web/.env.local
59-
```
60-
61-
3. Start the database and Redis:
62-
63-
```bash
64-
docker compose up -d db redis serverless-redis-http
65-
```
66-
67-
4. Install dependencies and start the dev server:
68-
69-
```bash
70-
bun install
71-
bun dev:web
72-
```
73-
74-
The application will be available at [http://localhost:3000](http://localhost:3000).
75-
76-
The `.env.example` has sensible defaults that match the Docker Compose config — it should work out of the box.
77-
78-
### Desktop setup
13+
[![Discord](https://img.shields.io/discord/1386309140057690133?label=Discord&logo=discord&logoColor=fff&color=5865F2&style=flat)](https://discord.gg/zmR9N35cjK)
14+
[![X](https://img.shields.io/badge/follow-%40opencutapp-000?logo=x&logoColor=fff&style=flat)](https://x.com/opencutapp)
15+
[![License: MIT](https://img.shields.io/badge/license-MIT-green?style=flat)](LICENSE)
7916

80-
Desktop is opt-in. If you're only working on the web app, skip this entirely.
17+
## Status
8118

82-
If you want to get ready for `apps/desktop`, see [`apps/desktop/README.md`](apps/desktop/README.md). It's a two-step setup: Rust toolchain first, then desktop native dependencies.
19+
**OpenCut is being rewritten from the ground up.** What's coming:
8320

84-
### Local WASM development
21+
- An Editor API as the shared foundation
22+
- First-class third party plugins (made possible by a plugin-first architecture)
23+
- Desktop, mobile, and browser from one codebase (Rust core)
24+
- MCP support
25+
- A scripting tab directly in the editor
8526

86-
Only needed if you're editing `rust/wasm` and want the web app to use your local build instead of the published package.
87-
88-
**Prerequisites** — install these once before anything else:
89-
90-
```bash
91-
# Rust toolchain
92-
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
93-
94-
# build the WASM package
95-
cargo install wasm-pack
96-
97-
# reruns the build on file changes, used by bun dev:wasm
98-
cargo install cargo-watch
99-
```
100-
101-
1. Build the package once from the repo root:
102-
103-
```bash
104-
bun run build:wasm
105-
```
106-
107-
2. Register the generated package for linking:
108-
109-
```bash
110-
cd rust/wasm/pkg
111-
bun link
112-
```
113-
114-
3. Link `apps/web` to the local package:
115-
116-
```bash
117-
cd apps/web
118-
bun link opencut-wasm
119-
```
120-
121-
4. Rebuild on changes while you work:
122-
123-
```bash
124-
bun dev:wasm
125-
```
126-
127-
To switch `apps/web` back to the published package, run:
128-
129-
```bash
130-
cd apps/web
131-
bun add opencut-wasm
132-
```
133-
134-
### Self-Hosting with Docker
135-
136-
To run everything (including a production build of the app) in Docker:
137-
138-
```bash
139-
docker compose up -d
140-
```
141-
142-
The app will be available at [http://localhost:3100](http://localhost:3100).
27+
You can still find the previous version at [opencut-app/opencut-classic](https://github.com/opencut-app/opencut-classic), which is the one to reach for today. [opencut.app](https://opencut.app) still runs the classic version; the rewrite will live at [new.opencut.app](https://new.opencut.app) until it's ready to take over.
14328

14429
## Contributing
14530

146-
We welcome contributions! While we're actively developing and refactoring certain areas, there are plenty of opportunities to contribute effectively.
31+
We're not set up to take outside contributions yet while the architecture is being designed. If you want to follow along, ask questions, or just hang out, [join the Discord](https://discord.gg/zmR9N35cjK) or [open an issue](https://github.com/opencut-app/opencut/issues).
14732

148-
**🎯 Focus areas:** Timeline functionality, project management, performance, bug fixes, and UI improvements outside the preview panel.
149-
150-
**⚠️ Avoid for now:** Preview panel enhancements (fonts, stickers, effects) and export functionality - we're refactoring these with a new binary rendering approach.
151-
152-
See our [Contributing Guide](.github/CONTRIBUTING.md) for detailed setup instructions, development guidelines, and complete focus area guidance.
153-
154-
**Quick start for contributors:**
33+
## Sponsors
15534

156-
- Fork the repo and clone locally
157-
- Follow the setup instructions in CONTRIBUTING.md
158-
- Working on `apps/desktop`? See [`apps/desktop/README.md`](apps/desktop/README.md) for setup
159-
- Create a feature branch and submit a PR
35+
[fal.ai](https://fal.ai?utm_source=github-opencut&utm_campaign=oss) supports OpenCut and open-source software.
16036

16137
## License
16238

163-
[MIT LICENSE](LICENSE)
164-
165-
---
166-
167-
![Star History Chart](https://api.star-history.com/svg?repos=opencut-app/opencut&type=Date)
39+
[MIT](LICENSE)

0 commit comments

Comments
 (0)