summaryrefslogtreecommitdiff
path: root/apps/web/package.json
diff options
context:
space:
mode:
authorcashmere <cashmere@autistici.org>2026-07-30 18:17:45 +0200
committercashmere <cashmere@autistici.org>2026-07-30 18:18:15 +0200
commited02ba872c02eafed45f406c68d389d0a1112a4e (patch)
tree40530d77cfe306621915f067c66531cb9e783a4d /apps/web/package.json
parente837e7504379e100ff3b56282577ec67bb88bec9 (diff)
downloadopencut-ed02ba872c02eafed45f406c68d389d0a1112a4e.tar.gz
feat: Electron desktop app, native ffmpeg export, fully static web
- apps/desktop: Electron shell serving the static web build over a privileged opencut:// protocol; exports stream frames over IPC to a bundled ffmpeg (libx264/libvpx-vp9, BT.709 tagged) with backpressure. electron-builder packaging: AppImage, deb, rpm. - apps/web: dead backend deleted (better-auth, drizzle/pg, upstash, botid, freesound proxy, blog, rss, env validation); next build emits a zero-env static export; /editor/[project_id] -> /editor?project=. - Native exporter mirrors SceneExporter; activates when the preload bridge is present; web keeps the mediabunny path. - Docker self-hosting now builds and serves the static export via nginx. - Release workflow: v* tags publish static web tarball + Linux packages. - Changelog 0.4.0; README/AGENTS/CONTRIBUTING/roadmap updated. - GPUI/Rust rewrite parked on branch rust-rewrite.
Diffstat (limited to 'apps/web/package.json')
-rw-r--r--apps/web/package.json28
1 files changed, 2 insertions, 26 deletions
diff --git a/apps/web/package.json b/apps/web/package.json
index 816dfe01..d8b4f333 100644
--- a/apps/web/package.json
+++ b/apps/web/package.json
@@ -7,22 +7,15 @@
"dev": "next dev --turbopack",
"build": "next build",
"start": "next start",
- "preview": "opennextjs-cloudflare build && opennextjs-cloudflare preview",
- "deploy": "opennextjs-cloudflare build && opennextjs-cloudflare deploy",
"lint": "eslint src --ext .ts,.tsx",
"lint:fix": "eslint src --ext .ts,.tsx --fix",
- "format": "prettier src --write",
- "db:generate": "drizzle-kit generate",
- "db:migrate": "drizzle-kit migrate",
- "db:push:local": "cross-env NODE_ENV=development drizzle-kit push",
- "db:push:prod": "cross-env NODE_ENV=production drizzle-kit push"
+ "format": "prettier src --write"
},
"dependencies": {
"@hello-pangea/dnd": "^18.0.1",
"@hugeicons/core-free-icons": "^3.3.0",
"@hugeicons/react": "^1.1.6",
"@huggingface/transformers": "^3.8.1",
- "@opennextjs/cloudflare": "^1.18.0",
"@radix-ui/react-accordion": "^1.2.12",
"@radix-ui/react-checkbox": "^1.3.3",
"@radix-ui/react-dialog": "^1.1.15",
@@ -33,18 +26,12 @@
"@radix-ui/react-slot": "^1.2.4",
"@radix-ui/react-tooltip": "^1.2.8",
"@types/culori": "^4.0.1",
- "@upstash/ratelimit": "^2.0.6",
- "@upstash/redis": "^1.35.4",
- "better-auth": "^1.2.7",
- "botid": "^1.5.11",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"cmdk": "^1.0.0",
"culori": "^4.0.2",
- "drizzle-orm": "^0.44.2",
"embla-carousel-react": "^8.5.1",
"eventemitter3": "^5.0.1",
- "feed": "^5.1.0",
"fflate": "^0.8.3",
"input-otp": "^1.4.1",
"lucide-react": "^0.562.0",
@@ -54,8 +41,6 @@
"next": "16.1.3",
"next-themes": "^0.4.4",
"opencut-wasm": "^0.2.10",
- "pg": "^8.16.2",
- "postgres": "^3.4.5",
"radix-ui": "^1.4.3",
"react": "^19.0.0",
"react-day-picker": "^8.10.1",
@@ -65,11 +50,7 @@
"react-markdown": "^10.1.0",
"react-resizable-panels": "^2.1.7",
"react-window": "^2.2.7",
- "rehype-autolink-headings": "^7.1.0",
"rehype-parse": "^9.0.1",
- "rehype-sanitize": "^6.0.0",
- "rehype-slug": "^6.0.0",
- "rehype-stringify": "^10.0.1",
"sonner": "^1.7.1",
"soundtouchjs": "^0.3.0",
"tailwind-merge": "^3.5.0",
@@ -88,16 +69,11 @@
"@tailwindcss/typography": "^0.5.19",
"@types/bun": "latest",
"@types/node": "^24.2.1",
- "@types/pg": "^8.15.4",
"@types/react": "^19",
"@types/react-dom": "^19",
- "cross-env": "^7.0.3",
- "dotenv": "^16.5.0",
- "drizzle-kit": "^0.31.4",
"postcss": "^8",
"sharp": "^0.34.5",
"tailwindcss": "^4.2.1",
- "typescript": "^5.8.3",
- "wrangler": "^4.77.0"
+ "typescript": "^5.8.3"
}
}