diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
deleted file mode 100644
index 85cc4b2..0000000
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-name: Bug report
-about: Create a report to help us improve
-title: '[BUG] '
-labels: bug
-assignees: ''
----
-
-**Describe the bug**
-A clear and concise description of what the bug is.
-
-**To Reproduce**
-Steps to reproduce the behavior:
-1. Go to '...'
-2. Click on '....'
-3. Scroll down to '....'
-4. See error
-
-**Expected behavior**
-A clear and concise description of what you expected to happen.
-
-**Screenshots**
-If applicable, add screenshots to help explain your problem.
-
-**Desktop (please complete the following information):**
- - OS: [e.g. iOS]
- - Browser [e.g. chrome, safari]
- - Version [e.g. 22]
-
-**Additional context**
-Add any other context about the problem here.
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
new file mode 100644
index 0000000..c9684d1
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -0,0 +1,70 @@
+name: Bug report
+description: Create a report to help us improve
+title: '[BUG] '
+labels: bug
+body:
+ - type: input
+ id: Platform
+ attributes:
+ label: Platform
+ description: Please enter the platform on which you encountered the bug.
+ placeholder: e.g. Windows 11, Ubuntu 14.04
+ validations:
+ required: true
+ - type: input
+ id: Browser
+ attributes:
+ label: Browser
+ description: Please enter the browser on which you encountered the bug.
+ placeholder: e.g. Chrome 137, Firefox 137, Safari 17
+ validations:
+ required: true
+ - type: textarea
+ id: current-behavior
+ attributes:
+ label: Current Behavior
+ description: A concise description of what you're experiencing.
+ validations:
+ required: true
+ - type: textarea
+ id: expected-behavior
+ attributes:
+ label: Expected Behavior
+ description: A concise description of what you expected to happen.
+ validations:
+ required: false
+ - type: dropdown
+ id: recurrence-probability
+ attributes:
+ label: Recurrence Probability
+ description: How often does this bug occur?
+ options:
+ - Always
+ - Usually
+ - Sometimes
+ - Seldom
+ default: 0
+ validations:
+ required: true
+ - type: textarea
+ id: steps-to-reproduce
+ attributes:
+ label: Steps To Reproduce
+ description: Steps to reproduce the behavior.
+ placeholder: |
+ 1. Go to '...'
+ 2. Click on '....'
+ 3. Scroll down to '....'
+ 4. See error
+ validations:
+ required: true
+ - type: textarea
+ id: additional-context
+ attributes:
+ label: Anything else?
+ description: |
+ Links? References? Anything that will give us more context about the issue you are encountering!
+
+ Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
+ validations:
+ required: false
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
deleted file mode 100644
index 1d528f2..0000000
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ /dev/null
@@ -1,19 +0,0 @@
----
-name: Feature request
-about: Suggest an idea for this project
-title: '[FEATURE] '
-labels: enhancement
-assignees: ''
----
-
-**Is your feature request related to a problem? Please describe.**
-A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
-
-**Describe the solution you'd like**
-A clear and concise description of what you want to happen.
-
-**Describe alternatives you've considered**
-A clear and concise description of any alternative solutions or features you've considered.
-
-**Additional context**
-Add any other context or screenshots about the feature request here.
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml
new file mode 100644
index 0000000..49a00eb
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.yml
@@ -0,0 +1,42 @@
+name: Feature request
+description: Suggest an idea for OpenCut
+title: '[FEATURE] '
+labels: enhancement
+body:
+ - type: markdown
+ attributes:
+ value: Please make sure that no duplicated issues has already been delivered.
+ - type: textarea
+ id: problem
+ attributes:
+ label: Problem
+ placeholder: Is your feature request related to a problem? Please describe.
+ description: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
+ validations:
+ required: true
+ - type: textarea
+ id: solution
+ attributes:
+ label: Solution
+ placeholder: Describe the solution you'd like.
+ description: A clear and concise description of what you want to happen.
+ validations:
+ required: true
+ - type: textarea
+ id: alternative
+ attributes:
+ label: Alternative
+ placeholder: Describe alternatives you've considered.
+ description: A clear and concise description of any alternative solutions or features you've considered.
+ validations:
+ required: true
+ - type: textarea
+ id: additional-context
+ attributes:
+ label: Anything else?
+ description: |
+ Links? References? Anything that will give us more context about the issue you are encountering!
+
+ Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
+ validations:
+ required: false
\ No newline at end of file
diff --git a/.github/workflows/bun-ci.yml b/.github/workflows/bun-ci.yml
index 4df6212..34b6d51 100644
--- a/.github/workflows/bun-ci.yml
+++ b/.github/workflows/bun-ci.yml
@@ -31,13 +31,13 @@ jobs:
- name: Install Bun
uses: oven-sh/setup-bun@735343b667d3e6f658f44d0eca948eb6282f2b76
with:
- bun-version: 1.2.2
+ bun-version: 1.2.17
- name: Cache Bun modules
uses: actions/cache@v4
with:
path: ~/.bun/install/cache
- key: ${{ runner.os }}-bun-${{ hashFiles('apps/web/bun.lock') }}
+ key: ${{ runner.os }}-bun-1.2.17-${{ hashFiles('apps/web/bun.lock') }}
- name: Install dependencies
working-directory: apps/web
diff --git a/.gitignore b/.gitignore
index fe0f362..7864700 100644
--- a/.gitignore
+++ b/.gitignore
@@ -27,4 +27,8 @@ node_modules
.cursorignore
.turbo
-*.env
\ No newline at end of file
+*.env
+
+# cursor
+
+.cursor/
\ No newline at end of file
diff --git a/README.md b/README.md
index 615dbcd..ca821e6 100644
--- a/README.md
+++ b/README.md
@@ -59,7 +59,16 @@ Before you begin, ensure you have the following installed on your system:
Navigate into the web app's directory and create a `.env` file from the example:
```bash
cd apps/web
- cp .env.example .env
+
+
+ # Unix/Linux/Mac
+ cp .env.example .env.local
+
+ # Windows Command Prompt
+ copy .env.example .env.local
+
+ # Windows PowerShell
+ Copy-Item .env.example .env.local
```
*The default values in the `.env` file should work for local development.*
@@ -94,13 +103,13 @@ Before you begin, ensure you have the following installed on your system:
The application will be available at [http://localhost:3000](http://localhost:3000).
-=======
+---
## Contributing
Visit [CONTRIBUTING.md](.github/CONTRIBUTING.md)
-=======
+---
We welcome contributions! Please see our [Contributing Guide](.github/CONTRIBUTING.md) for detailed setup instructions and development guidelines.
Quick start for contributors:
diff --git a/apps/web/Dockerfile b/apps/web/Dockerfile
index 8b13ce3..46eeb10 100644
--- a/apps/web/Dockerfile
+++ b/apps/web/Dockerfile
@@ -19,7 +19,8 @@ COPY apps/web/ apps/web/
COPY packages/db/ packages/db/
COPY packages/auth/ packages/auth/
-ENV NEXT_TELEMETRY_DISABLED=1
+ENV NODE_ENV production
+ENV NEXT_TELEMETRY_DISABLED 1
WORKDIR /app/apps/web
RUN bun run build
@@ -28,7 +29,8 @@ RUN bun run build
FROM base AS runner
WORKDIR /app
-ENV NEXT_TELEMETRY_DISABLED=1
+ENV NODE_ENV production
+ENV NEXT_TELEMETRY_DISABLED 1
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs
diff --git a/apps/web/public/browserconfig.xml b/apps/web/public/browserconfig.xml
new file mode 100644
index 0000000..39060b2
--- /dev/null
+++ b/apps/web/public/browserconfig.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+ #ffffff
+
+
+
\ No newline at end of file
diff --git a/apps/web/public/favicon.ico b/apps/web/public/favicon.ico
new file mode 100644
index 0000000..9b2cba8
Binary files /dev/null and b/apps/web/public/favicon.ico differ
diff --git a/apps/web/public/frame.svg b/apps/web/public/frame.svg
new file mode 100644
index 0000000..4dac68e
--- /dev/null
+++ b/apps/web/public/frame.svg
@@ -0,0 +1,10 @@
+
diff --git a/apps/web/public/icons/android-icon-144x144.png b/apps/web/public/icons/android-icon-144x144.png
new file mode 100644
index 0000000..7320ece
Binary files /dev/null and b/apps/web/public/icons/android-icon-144x144.png differ
diff --git a/apps/web/public/icons/android-icon-192x192.png b/apps/web/public/icons/android-icon-192x192.png
new file mode 100644
index 0000000..f534f42
Binary files /dev/null and b/apps/web/public/icons/android-icon-192x192.png differ
diff --git a/apps/web/public/icons/android-icon-36x36.png b/apps/web/public/icons/android-icon-36x36.png
new file mode 100644
index 0000000..6b8db02
Binary files /dev/null and b/apps/web/public/icons/android-icon-36x36.png differ
diff --git a/apps/web/public/icons/android-icon-48x48.png b/apps/web/public/icons/android-icon-48x48.png
new file mode 100644
index 0000000..30a68fa
Binary files /dev/null and b/apps/web/public/icons/android-icon-48x48.png differ
diff --git a/apps/web/public/icons/android-icon-72x72.png b/apps/web/public/icons/android-icon-72x72.png
new file mode 100644
index 0000000..e4019c8
Binary files /dev/null and b/apps/web/public/icons/android-icon-72x72.png differ
diff --git a/apps/web/public/icons/android-icon-96x96.png b/apps/web/public/icons/android-icon-96x96.png
new file mode 100644
index 0000000..85591ab
Binary files /dev/null and b/apps/web/public/icons/android-icon-96x96.png differ
diff --git a/apps/web/public/icons/apple-icon-114x114.png b/apps/web/public/icons/apple-icon-114x114.png
new file mode 100644
index 0000000..c776e3f
Binary files /dev/null and b/apps/web/public/icons/apple-icon-114x114.png differ
diff --git a/apps/web/public/icons/apple-icon-120x120.png b/apps/web/public/icons/apple-icon-120x120.png
new file mode 100644
index 0000000..76604df
Binary files /dev/null and b/apps/web/public/icons/apple-icon-120x120.png differ
diff --git a/apps/web/public/icons/apple-icon-144x144.png b/apps/web/public/icons/apple-icon-144x144.png
new file mode 100644
index 0000000..7320ece
Binary files /dev/null and b/apps/web/public/icons/apple-icon-144x144.png differ
diff --git a/apps/web/public/icons/apple-icon-152x152.png b/apps/web/public/icons/apple-icon-152x152.png
new file mode 100644
index 0000000..eb5ef0d
Binary files /dev/null and b/apps/web/public/icons/apple-icon-152x152.png differ
diff --git a/apps/web/public/icons/apple-icon-180x180.png b/apps/web/public/icons/apple-icon-180x180.png
new file mode 100644
index 0000000..b90e62f
Binary files /dev/null and b/apps/web/public/icons/apple-icon-180x180.png differ
diff --git a/apps/web/public/icons/apple-icon-57x57.png b/apps/web/public/icons/apple-icon-57x57.png
new file mode 100644
index 0000000..7cfb2e5
Binary files /dev/null and b/apps/web/public/icons/apple-icon-57x57.png differ
diff --git a/apps/web/public/icons/apple-icon-60x60.png b/apps/web/public/icons/apple-icon-60x60.png
new file mode 100644
index 0000000..1d90a37
Binary files /dev/null and b/apps/web/public/icons/apple-icon-60x60.png differ
diff --git a/apps/web/public/icons/apple-icon-72x72.png b/apps/web/public/icons/apple-icon-72x72.png
new file mode 100644
index 0000000..e4019c8
Binary files /dev/null and b/apps/web/public/icons/apple-icon-72x72.png differ
diff --git a/apps/web/public/icons/apple-icon-76x76.png b/apps/web/public/icons/apple-icon-76x76.png
new file mode 100644
index 0000000..34575f4
Binary files /dev/null and b/apps/web/public/icons/apple-icon-76x76.png differ
diff --git a/apps/web/public/icons/favicon-16x16.png b/apps/web/public/icons/favicon-16x16.png
new file mode 100644
index 0000000..96db3a2
Binary files /dev/null and b/apps/web/public/icons/favicon-16x16.png differ
diff --git a/apps/web/public/icons/favicon-32x32.png b/apps/web/public/icons/favicon-32x32.png
new file mode 100644
index 0000000..f8f589d
Binary files /dev/null and b/apps/web/public/icons/favicon-32x32.png differ
diff --git a/apps/web/public/icons/favicon-96x96.png b/apps/web/public/icons/favicon-96x96.png
new file mode 100644
index 0000000..85591ab
Binary files /dev/null and b/apps/web/public/icons/favicon-96x96.png differ
diff --git a/apps/web/public/icons/ms-icon-144x144.png b/apps/web/public/icons/ms-icon-144x144.png
new file mode 100644
index 0000000..7320ece
Binary files /dev/null and b/apps/web/public/icons/ms-icon-144x144.png differ
diff --git a/apps/web/public/icons/ms-icon-150x150.png b/apps/web/public/icons/ms-icon-150x150.png
new file mode 100644
index 0000000..248ef48
Binary files /dev/null and b/apps/web/public/icons/ms-icon-150x150.png differ
diff --git a/apps/web/public/icons/ms-icon-310x310.png b/apps/web/public/icons/ms-icon-310x310.png
new file mode 100644
index 0000000..950a3d6
Binary files /dev/null and b/apps/web/public/icons/ms-icon-310x310.png differ
diff --git a/apps/web/public/icons/ms-icon-70x70.png b/apps/web/public/icons/ms-icon-70x70.png
new file mode 100644
index 0000000..7b9c269
Binary files /dev/null and b/apps/web/public/icons/ms-icon-70x70.png differ
diff --git a/apps/web/public/landing-page-bg.png b/apps/web/public/landing-page-bg.png
new file mode 100644
index 0000000..4f87394
Binary files /dev/null and b/apps/web/public/landing-page-bg.png differ
diff --git a/apps/web/public/logo.svg b/apps/web/public/logo.svg
new file mode 100644
index 0000000..f4079a5
--- /dev/null
+++ b/apps/web/public/logo.svg
@@ -0,0 +1,10 @@
+
diff --git a/apps/web/public/manifest.json b/apps/web/public/manifest.json
new file mode 100644
index 0000000..fcbfad5
--- /dev/null
+++ b/apps/web/public/manifest.json
@@ -0,0 +1,44 @@
+{
+ "name": "OpenCut",
+ "description": "A simple but powerful video editor that gets the job done. In your browser.",
+ "display": "standalone",
+ "start_url": "/",
+ "icons": [
+ {
+ "src": "/icons/android-icon-36x36.png",
+ "sizes": "36x36",
+ "type": "image\/png",
+ "density": "0.75"
+ },
+ {
+ "src": "/icons/android-icon-48x48.png",
+ "sizes": "48x48",
+ "type": "image\/png",
+ "density": "1.0"
+ },
+ {
+ "src": "/icons/android-icon-72x72.png",
+ "sizes": "72x72",
+ "type": "image\/png",
+ "density": "1.5"
+ },
+ {
+ "src": "/icons/android-icon-96x96.png",
+ "sizes": "96x96",
+ "type": "image\/png",
+ "density": "2.0"
+ },
+ {
+ "src": "/icons/android-icon-144x144.png",
+ "sizes": "144x144",
+ "type": "image\/png",
+ "density": "3.0"
+ },
+ {
+ "src": "/icons/android-icon-192x192.png",
+ "sizes": "192x192",
+ "type": "image\/png",
+ "density": "4.0"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/apps/web/src/app/contributors/page.tsx b/apps/web/src/app/contributors/page.tsx
index f5fa075..67957c3 100644
--- a/apps/web/src/app/contributors/page.tsx
+++ b/apps/web/src/app/contributors/page.tsx
@@ -6,6 +6,7 @@ import { Button } from "@/components/ui/button";
import { ExternalLink } from "lucide-react";
import Link from "next/link";
import { GithubIcon } from "@/components/icons";
+import { Badge } from "@/components/ui/badge";
export const metadata: Metadata = {
title: "Contributors - OpenCut",
@@ -49,7 +50,7 @@ async function getContributors(): Promise {
const contributors = await response.json();
const filteredContributors = contributors.filter(
- (contributor: any) => contributor.type === "User"
+ (contributor: Contributor) => contributor.type === "User"
);
return filteredContributors;
@@ -61,8 +62,8 @@ async function getContributors(): Promise {
export default async function ContributorsPage() {
const contributors = await getContributors();
- const topContributor = contributors[0];
- const otherContributors = contributors.slice(1);
+ const topContributors = contributors.slice(0, 2);
+ const otherContributors = contributors.slice(2);
return (
@@ -77,10 +78,10 @@ export default async function ContributorsPage() {
-
+
Open Source
-
+
Contributors
@@ -105,54 +106,59 @@ export default async function ContributorsPage() {