-
Notifications
You must be signed in to change notification settings - Fork 4.5k
Update README.md #613
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Update README.md #613
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -1,183 +1,176 @@ | ||||||||||||||
|
|
||||||||||||||
| <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></h1> | ||||||||||||||
| <h1>🎬 OpenCut</h1> | ||||||||||||||
| <h3 style="margin-top: -10px;">A free, open-source video editor for web, desktop, and mobile.</h3> | ||||||||||||||
| </td> | ||||||||||||||
| </tr> | ||||||||||||||
| </table> | ||||||||||||||
|
|
||||||||||||||
| ## Why? | ||||||||||||||
| --- | ||||||||||||||
|
|
||||||||||||||
| ## ✨ Why OpenCut? | ||||||||||||||
|
|
||||||||||||||
| - 🔒 **Privacy first**: Your videos stay on your device | ||||||||||||||
| - 🆓 **Truly free**: No subscriptions, no watermarks, no paywalls | ||||||||||||||
| - 🎯 **Simple**: Easy-to-use timeline editor, inspired by CapCut | ||||||||||||||
| - 📊 **Analytics**: Powered by [Databuddy](https://www.databuddy.cc?utm_source=opencut), 100% anonymized & non-invasive | ||||||||||||||
| - 📰 **Blog**: Managed via [Marble](https://marblecms.com?utm_source=opencut), a headless CMS | ||||||||||||||
|
|
||||||||||||||
| --- | ||||||||||||||
|
|
||||||||||||||
| - **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 | ||||||||||||||
|
|
||||||||||||||
| ## Features | ||||||||||||||
| - Timeline-based editing | ||||||||||||||
| - Multi-track support | ||||||||||||||
| - Real-time preview | ||||||||||||||
| - No subscriptions or hidden fees | ||||||||||||||
| - Works across **Web**, **Desktop**, and **Mobile** | ||||||||||||||
|
|
||||||||||||||
| - Timeline-based editing | ||||||||||||||
| - Multi-track support | ||||||||||||||
| - Real-time preview | ||||||||||||||
| - No watermarks or subscriptions | ||||||||||||||
| - Analytics provided by [Databuddy](https://www.databuddy.cc?utm_source=opencut), 100% Anonymized & Non-invasive. | ||||||||||||||
| - Blog powered by [Marble](https://marblecms.com?utm_source=opencut), Headless CMS. | ||||||||||||||
| --- | ||||||||||||||
|
|
||||||||||||||
| ## Project Structure | ||||||||||||||
| ## 🛠️ Project Structure | ||||||||||||||
|
|
||||||||||||||
| - `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 | ||||||||||||||
| - `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 | ||||||||||||||
| --- | ||||||||||||||
|
|
||||||||||||||
| ### Prerequisites | ||||||||||||||
| ## ⚡ Getting Started | ||||||||||||||
|
|
||||||||||||||
| Before you begin, ensure you have the following installed on your system: | ||||||||||||||
| ### ✅ Prerequisites | ||||||||||||||
|
|
||||||||||||||
| - [Node.js](https://nodejs.org/en/) (v18 or later) | ||||||||||||||
| - [Bun](https://bun.sh/docs/installation) | ||||||||||||||
| (for `npm` alternative) | ||||||||||||||
| - [Docker](https://docs.docker.com/get-docker/) and [Docker Compose](https://docs.docker.com/compose/install/) | ||||||||||||||
| Make sure you have the following installed: | ||||||||||||||
|
|
||||||||||||||
| > **Note:** Docker is optional, but it's essential for running the local database and Redis services. If you're planning to run the frontend or want to contribute to frontend features, you can skip the Docker setup. If you have followed the steps below in [Setup](#setup), you're all set to go! | ||||||||||||||
| - [Node.js](https://nodejs.org/en/) (v18 or later) | ||||||||||||||
| - [Bun](https://bun.sh/docs/installation) (faster alternative to npm) | ||||||||||||||
| - [Docker](https://docs.docker.com/get-docker/) + [Docker Compose](https://docs.docker.com/compose/install/) *(optional for DB & Redis)* | ||||||||||||||
|
|
||||||||||||||
| --- | ||||||||||||||
|
|
||||||||||||||
| ### Setup | ||||||||||||||
| ### 🔧 Setup | ||||||||||||||
|
|
||||||||||||||
| 1. Fork the repository | ||||||||||||||
| 2. Clone your fork locally | ||||||||||||||
| 3. Navigate to the web app directory: `cd apps/web` | ||||||||||||||
| 4. Copy `.env.example` to `.env.local`: | ||||||||||||||
| 1. Fork the repository | ||||||||||||||
| 2. Clone your fork locally | ||||||||||||||
| 3. Go to the web app directory: | ||||||||||||||
|
|
||||||||||||||
| ```bash | ||||||||||||||
| # Unix/Linux/Mac | ||||||||||||||
| cp .env.example .env.local | ||||||||||||||
| cd apps/web | ||||||||||||||
|
|
||||||||||||||
| # Windows Command Prompt | ||||||||||||||
| copy .env.example .env.local | ||||||||||||||
| 4. Copy .env.example → .env.local | ||||||||||||||
|
|
||||||||||||||
| # Windows PowerShell | ||||||||||||||
| Copy-Item .env.example .env.local | ||||||||||||||
| ``` | ||||||||||||||
| # Linux/Mac | ||||||||||||||
| cp .env.example .env.local | ||||||||||||||
|
|
||||||||||||||
| 5. Install dependencies: `bun install` | ||||||||||||||
| 6. Start the development server: `bun dev` | ||||||||||||||
| # Windows CMD | ||||||||||||||
| copy .env.example .env.local | ||||||||||||||
|
|
||||||||||||||
| ## Development Setup | ||||||||||||||
| # PowerShell | ||||||||||||||
| Copy-Item .env.example .env.local | ||||||||||||||
|
|
||||||||||||||
| ### Local Development | ||||||||||||||
|
|
||||||||||||||
| 1. Start the database and Redis services: | ||||||||||||||
| 5. Install dependencies: | ||||||||||||||
|
|
||||||||||||||
| ```bash | ||||||||||||||
| # From project root | ||||||||||||||
| docker-compose up -d | ||||||||||||||
| ``` | ||||||||||||||
| bun install | ||||||||||||||
|
|
||||||||||||||
| 2. Navigate to the web app directory: | ||||||||||||||
|
|
||||||||||||||
| ```bash | ||||||||||||||
| cd apps/web | ||||||||||||||
| ``` | ||||||||||||||
| 6. Start the dev server: | ||||||||||||||
|
|
||||||||||||||
| 3. Copy `.env.example` to `.env.local`: | ||||||||||||||
| bun dev | ||||||||||||||
|
|
||||||||||||||
|
Comment on lines
86
to
88
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fix Bun command for starting the dev server
-6. Start the dev server:
-
-bun dev
+6. Start the dev server:
+
+bun run dev📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||
| ```bash | ||||||||||||||
| # Unix/Linux/Mac | ||||||||||||||
| cp .env.example .env.local | ||||||||||||||
|
|
||||||||||||||
| # Windows Command Prompt | ||||||||||||||
| copy .env.example .env.local | ||||||||||||||
|
|
||||||||||||||
| # Windows PowerShell | ||||||||||||||
| Copy-Item .env.example .env.local | ||||||||||||||
| ``` | ||||||||||||||
|
|
||||||||||||||
| 4. Configure required environment variables in `.env.local`: | ||||||||||||||
| --- | ||||||||||||||
|
|
||||||||||||||
| **Required Variables:** | ||||||||||||||
| 🖥️ Development Setup (with Docker) | ||||||||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The "Development Setup (with Docker)" section is missing a header markdown prefix (##) and has inconsistent formatting throughout. View Details📝 Patch Detailsdiff --git a/README.md b/README.md
index 43c1a74..e82190f 100644
--- a/README.md
+++ b/README.md
@@ -91,39 +91,43 @@ bun dev
---
-🖥️ Development Setup (with Docker)
+## 🖥️ Development Setup (with Docker)
1. Start DB & Redis
-docker-compose up -d
-
+ ```bash
+ docker-compose up -d
+ ```
2. Navigate into apps/web
-
3. Configure .env.local
-DATABASE_URL="postgresql://opencut:opencutthegoat@localhost:5432/opencut"
-BETTER_AUTH_SECRET="your-secret"
-BETTER_AUTH_URL="http://localhost:3000"
-
-UPSTASH_REDIS_REST_URL="http://localhost:8079"
-UPSTASH_REST_TOKEN="example_token"
+ ```env
+ DATABASE_URL="postgresql://opencut:opencutthegoat@localhost:5432/opencut"
+ BETTER_AUTH_SECRET="your-secret"
+ BETTER_AUTH_URL="http://localhost:3000"
-MARBLE_WORKSPACE_KEY="your-key"
-NEXT_PUBLIC_MARBLE_API_URL="https://api.marblecms.com"
+ UPSTASH_REDIS_REST_URL="http://localhost:8079"
+ UPSTASH_REST_TOKEN="example_token"
-NODE_ENV="development"
+ MARBLE_WORKSPACE_KEY="your-key"
+ NEXT_PUBLIC_MARBLE_API_URL="https://api.marblecms.com"
+ NODE_ENV="development"
+ ```
4. Run migrations
-bun run db:migrate
-
+ ```bash
+ bun run db:migrate
+ ```
5. Start the app
-bun run dev
+ ```bash
+ bun run dev
+ ```
@@ -173,4 +177,3 @@ fal.ai
📜 License
MIT LICENSE
-
AnalysisDocker setup section missing markdown header and has inconsistent formattingWhat fails: The "Development Setup (with Docker)" section at line 94 lacks proper markdown header formatting ( How to reproduce: # View the README.md structure
grep "^## " README.md # Shows all proper headers
grep "🖥️ Development Setup" README.md # Shows the one without ##Result: The Docker section appears as plain text instead of a proper header, breaking document structure and automatic table of contents generation. Commands and environment variables are displayed as plain text without syntax highlighting. Expected: Should use |
||||||||||||||
|
|
||||||||||||||
| ```bash | ||||||||||||||
| # Database (matches docker-compose.yaml) | ||||||||||||||
| DATABASE_URL="postgresql://opencut:opencutthegoat@localhost:5432/opencut" | ||||||||||||||
| 1. Start DB & Redis | ||||||||||||||
|
|
||||||||||||||
| # Generate a secure secret for Better Auth | ||||||||||||||
| BETTER_AUTH_SECRET="your-generated-secret-here" | ||||||||||||||
| BETTER_AUTH_URL="http://localhost:3000" | ||||||||||||||
| docker-compose up -d | ||||||||||||||
|
|
||||||||||||||
| # Redis (matches docker-compose.yaml) | ||||||||||||||
| UPSTASH_REDIS_REST_URL="http://localhost:8079" | ||||||||||||||
| UPSTASH_REDIS_REST_TOKEN="example_token" | ||||||||||||||
|
|
||||||||||||||
| # Marble Blog | ||||||||||||||
| MARBLE_WORKSPACE_KEY=cm6ytuq9x0000i803v0isidst # example organization key | ||||||||||||||
| NEXT_PUBLIC_MARBLE_API_URL=https://api.marblecms.com | ||||||||||||||
| 2. Navigate into apps/web | ||||||||||||||
|
|
||||||||||||||
| # Development | ||||||||||||||
| NODE_ENV="development" | ||||||||||||||
| ``` | ||||||||||||||
|
|
||||||||||||||
| **Generate BETTER_AUTH_SECRET:** | ||||||||||||||
| 3. Configure .env.local | ||||||||||||||
|
|
||||||||||||||
| ```bash | ||||||||||||||
| # Unix/Linux/Mac | ||||||||||||||
| openssl rand -base64 32 | ||||||||||||||
| DATABASE_URL="postgresql://opencut:opencutthegoat@localhost:5432/opencut" | ||||||||||||||
| BETTER_AUTH_SECRET="your-secret" | ||||||||||||||
| BETTER_AUTH_URL="http://localhost:3000" | ||||||||||||||
|
|
||||||||||||||
| # Windows PowerShell (simple method) | ||||||||||||||
| [System.Web.Security.Membership]::GeneratePassword(32, 0) | ||||||||||||||
| UPSTASH_REDIS_REST_URL="http://localhost:8079" | ||||||||||||||
| UPSTASH_REST_TOKEN="example_token" | ||||||||||||||
|
|
||||||||||||||
| # Cross-platform (using Node.js) | ||||||||||||||
| node -e "console.log(require('crypto').randomBytes(32).toString('base64'))" | ||||||||||||||
| MARBLE_WORKSPACE_KEY="your-key" | ||||||||||||||
| NEXT_PUBLIC_MARBLE_API_URL="https://api.marblecms.com" | ||||||||||||||
|
|
||||||||||||||
| # Or use an online generator: https://generate-secret.vercel.app/32 | ||||||||||||||
| ``` | ||||||||||||||
| NODE_ENV="development" | ||||||||||||||
|
|
||||||||||||||
| 5. Run database migrations: `bun run db:migrate` from (inside apps/web) | ||||||||||||||
| 6. Start the development server: `bun run dev` from (inside apps/web) | ||||||||||||||
|
|
||||||||||||||
| The application will be available at [http://localhost:3000](http://localhost:3000). | ||||||||||||||
| 4. Run migrations | ||||||||||||||
|
|
||||||||||||||
| ## Contributing | ||||||||||||||
| bun run db:migrate | ||||||||||||||
|
|
||||||||||||||
| 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. | ||||||||||||||
| 5. Start the app | ||||||||||||||
|
|
||||||||||||||
| **⚠️ Avoid for now:** Preview panel enhancements (fonts, stickers, effects) and export functionality - we're refactoring these with a new binary rendering approach. | ||||||||||||||
| bun run dev | ||||||||||||||
|
|
||||||||||||||
| See our [Contributing Guide](.github/CONTRIBUTING.md) for detailed setup instructions, development guidelines, and complete focus area guidance. | ||||||||||||||
|
|
||||||||||||||
| **Quick start for contributors:** | ||||||||||||||
|
|
||||||||||||||
| - Fork the repo and clone locally | ||||||||||||||
| - Follow the setup instructions in CONTRIBUTING.md | ||||||||||||||
| - Create a feature branch and submit a PR | ||||||||||||||
| 👉 App runs at: http://localhost:3000 | ||||||||||||||
|
|
||||||||||||||
| ## Sponsors | ||||||||||||||
|
|
||||||||||||||
| 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. | ||||||||||||||
| --- | ||||||||||||||
|
|
||||||||||||||
| <a href="https://vercel.com/oss"> | ||||||||||||||
| <img alt="Vercel OSS Program" src="https://vercel.com/oss/program-badge.svg" /> | ||||||||||||||
| </a> | ||||||||||||||
| 🤝 Contributing | ||||||||||||||
|
|
||||||||||||||
| We welcome all contributions! | ||||||||||||||
|
|
||||||||||||||
| Focus areas: | ||||||||||||||
|
|
||||||||||||||
| Timeline functionality | ||||||||||||||
|
|
||||||||||||||
| Project management improvements | ||||||||||||||
|
|
||||||||||||||
| Performance optimizations | ||||||||||||||
|
|
||||||||||||||
| UI/UX outside preview panel | ||||||||||||||
|
|
||||||||||||||
|
|
||||||||||||||
| ⚠️ Avoid for now: preview panel (fonts, stickers, effects, export). These are being refactored. | ||||||||||||||
|
|
||||||||||||||
| ➡️ See Contributing Guide for details. | ||||||||||||||
|
Comment on lines
+139
to
+152
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The Contributing section has broken list formatting where focus areas are not properly formatted as markdown list items. View Details📝 Patch Detailsdiff --git a/README.md b/README.md
index 43c1a74..f989153 100644
--- a/README.md
+++ b/README.md
@@ -138,13 +138,10 @@ We welcome all contributions!
Focus areas:
-Timeline functionality
-
-Project management improvements
-
-Performance optimizations
-
-UI/UX outside preview panel
+- Timeline functionality
+- Project management improvements
+- Performance optimizations
+- UI/UX outside preview panel
⚠️ Avoid for now: preview panel (fonts, stickers, effects, export). These are being refactored.
@@ -173,4 +170,3 @@ fal.ai
📜 License
MIT LICENSE
-
AnalysisInconsistent markdown formatting in Contributing sectionWhat fails: Focus areas in Contributing section (lines 141-147) are plain text instead of markdown list items, breaking visual consistency with other sections How to reproduce: View README.md Contributing section - focus areas appear as plain paragraphs instead of bulleted list Result: Inconsistent formatting where "Timeline functionality", "Project management improvements", "Performance optimizations", and "UI/UX outside preview panel" display as paragraphs rather than list items Expected: Should use |
||||||||||||||
|
|
||||||||||||||
| <a href="https://fal.ai"> | ||||||||||||||
| <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=" /> | ||||||||||||||
| </a> | ||||||||||||||
|
|
||||||||||||||
| --- | ||||||||||||||
|
|
||||||||||||||
| [](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2FOpenCut-app%2FOpenCut&project-name=opencut&repository-name=opencut) | ||||||||||||||
| 💎 Sponsors | ||||||||||||||
|
|
||||||||||||||
| Thanks to our amazing sponsors: | ||||||||||||||
|
|
||||||||||||||
| ## License | ||||||||||||||
| Vercel | ||||||||||||||
|
|
||||||||||||||
| [MIT LICENSE](LICENSE) | ||||||||||||||
| fal.ai | ||||||||||||||
|
|
||||||||||||||
|
|
||||||||||||||
| <a href="https://vercel.com/oss"> | ||||||||||||||
| <img alt="Vercel OSS Program" src="https://vercel.com/oss/program-badge.svg" /> | ||||||||||||||
| </a><a href="https://fal.ai"> | ||||||||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
The sponsor badge images are concatenated without spacing, causing them to display as a single merged element instead of two separate badges. View DetailsAnalysisSponsor badge HTML anchor tags concatenated without spacing causing visual mergingWhat fails: HTML anchor tags for Vercel and fal.ai sponsor badges on lines 168-169 are concatenated without whitespace, causing badges to render adjacent without proper visual spacing How to reproduce:
Result: Badges render as visually merged elements without separation between the Vercel and fal.ai badges Expected: Per MDN whitespace documentation, inline elements should have whitespace between them for proper visual separation - "any whitespace between adjacent inline or inline-block elements will result in spaces in the layout" |
||||||||||||||
| <img alt="Powered by fal.ai" src="https://img.shields.io/badge/Powered%20by-fal.ai-000000?style=flat" /> | ||||||||||||||
| </a> | ||||||||||||||
| --- | ||||||||||||||
|
|
||||||||||||||
|  | ||||||||||||||
| 📜 License | ||||||||||||||
|
|
||||||||||||||
| MIT LICENSE | ||||||||||||||
|
|
||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The setup instructions have broken markdown formatting that will cause the numbered list to render incorrectly and code blocks to not display properly.
View Details
📝 Patch Details
Analysis
Unclosed code block in README.md setup instructions causes markdown rendering failure
What fails: Setup section (lines 65-88) has unclosed ```bash code block that breaks numbered list formatting and renders all subsequent content as code
How to reproduce:
Result: Setup instructions render incorrectly - steps 4-6 appear inside a code block instead of as numbered list items with properly formatted command examples
Expected: Each step should be a numbered list item with commands in separate, properly closed code blocks per GitHub Flavored Markdown spec - unclosed fenced code blocks consume all content until document end