Skip to content
CAI
Software that uses CAICheck a score

OpenCut-app/OpenCut

47.7

Weak · 28 September 2026

7.8k

lines of production code

TypeScript

with Rust

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

OpenCut is a cross-platform video editing application featuring a Rust core and supporting web, desktop, and mobile interfaces. The system comprises a desktop client built with the GPUI framework, a web application utilizing TanStack Start and Cloudflare Workers, and a backend API service also deployed on Cloudflare Workers. It manages media processing through FFmpeg and handles asset storage via R2 buckets.

Features

Initial web application routing and styling foundation

The web application now includes a basic routing structure using TanStack Router, featuring a home page at '/' displaying a 'hello world!' message and a stubbed editor route at '/editor' that shows a 'Coming soon.' placeholder. The root layout configures the document shell with OpenCut branding, favicon, Google Fonts (Playfair Display and Inter), and Tailwind CSS styling, including support for dark mode and shadcn UI theme variables.

apps/web/src/routes · high confidence

Introduce Elysia-based API for Cloudflare Workers

The API application has been scaffolded as a new Elysia server designed to run on Cloudflare Workers. It includes basic health check endpoints at / and /health, along with an /echo endpoint for request validation. The setup is configured via Wrangler and includes a moon.yml build definition for managing development, build, and deployment tasks.

apps/api · high confidence

Introduce OpenCut Desktop application shell

The desktop application is now available, built with the GPUI framework. It launches with a main window that follows the system's light or dark appearance using semantic color themes. The interface is scaffolded with a layout containing Browser, Preview, Inspector, and Timeline panels, along with foundational UI components like buttons, badges, and resizable panels.

apps/desktop · high confidence

Behavioural changes

Project rebrand to OpenCut and monorepo tooling overhaul

The project has been rebranded from AppCut to OpenCut, with the README updated to reflect a ground-up rewrite featuring a Rust core, Editor API, and cross-platform support (web, desktop, mobile). The repository structure has shifted to a monorepo managed by Moon, utilizing Proto for tool versioning (pinning Moon 2.3.3, Bun 1.3.11, Rust 1.97.0) and replacing the previous setup. A new .env.example file defines the R2\_BUCKET for asset storage, and a Moon task is introduced to upload brand marks to the R2 bucket root. The project is now licensed under MIT.

(repo-wide) · high confidence

Removal of legacy root layout and editor page structure

The application has removed the previous root layout (\layout.tsx\), global styles (\globals.css\), and the main video editor page (\page.tsx\). This change eliminates the old Next.js App Router structure that included the default font configurations, theme provider setup, and the resizable panel-based editor interface, indicating a significant restructuring of the application's entry points and UI architecture.

apps/web/src/app · high confidence

UI component library migrated to Base UI with redesigned components

The web application's UI component library has been migrated from Radix UI to Base UI, replacing the underlying primitives for core elements like accordions, alert dialogs, and comboboxes. This shift introduces a comprehensive visual redesign, including a switch to the Hugeicons icon set, updated styling for form fields (InputGroup, Field), and new layout components such as ButtonGroup, Item, and Empty states. Additionally, legacy components like PhoneInput and the Radix-based Toast system have been removed or replaced to align with the new architecture.

apps/web/src/components/ui · high confidence

Web app migrates from Next.js to TanStack Start with Vite and Cloudflare Workers

The web application has been rebuilt on a new stack, replacing the Next.js framework with TanStack Start (using Vite) and targeting Cloudflare Workers for deployment. This migration introduces a file-based router, switches the build tooling to Vite, and updates the project configuration to use Bun as the package manager. Additionally, the UI component library configuration has been updated to use the 'base-mira' style with Hugeicons, and the TypeScript configuration has been modernized to ES2022 with stricter linting rules.

apps/web · high confidence

Dependencies

FFmpeg dependency pinned to version 8.1.3 with multi-platform setup tooling

The media crate now pins FFmpeg to version 8.1.3 and includes a new setup script (\setup.ts\) and manifest (\ffmpeg.json\) to manage this dependency. This tooling allows the build system to either download pre-built FFmpeg binaries for Windows (x86\_64, aarch64) and Linux (x86\_64, aarch64) or build from source for the current platform, ensuring consistent decoding capabilities across supported architectures.

crates/media · high confidence

Web app migrates from Next.js to Vite and upgrades to React 19

The web application (\apps/web\) has switched its build tooling from Next.js to Vite, replacing the Next.js dependency with Vite 8 and Vitest 4 for testing. This change includes a major upgrade to React 19 (and React DOM 19), along with updates to the UI library ecosystem, such as Radix UI 1.4, Tailwind CSS 4, and Shadcn 4. The project name has been updated to \@opencut/web\, and the package manager configuration now specifies pnpm with specific built dependencies. Additionally, a new Cloudflare API app (\apps/api\) has been introduced using Elysia and Wrangler, and the Rust workspace has been initialized with a new \Cargo.lock\ and \Cargo.toml\ defining a desktop app target.

(dependencies) · high confidence

Housekeeping

Code style formatting in utility module

The utility module in apps/web/src/lib has been reformatted to align with the project's style conventions, specifically adjusting import ordering and removing trailing whitespace and comments.

apps/web/src/lib · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.

Score

  • CAI 33 → 48 (+14.8)
  • Rubric changed (rubric-2026.08.15 → rubric-2026.09.16) — scores are not directly comparable.

Lenses

  • Code Health 62 → 67 (+4.5)
  • Architecture 78 (new)
  • Maturity 46 → 59 (+12.9)
  • Readiness 11 → 29 (+18.8)
  • Security 70 → 77 (+7.2)
  • Accessibility 82 (new)
  • Performance 60 (new)

Resolved (20)

  • Dimension evaluation failed
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • Hotspot: apps/web/src/components/ui/chart.tsx (apps/web/src/components/ui/chart.tsx)
  • Medium CVE: [GHSA redacted] (Cargo.lock)
  • Medium CVE: RUSTSEC-2024-0384 (Cargo.lock)
  • Medium CVE: RUSTSEC-2024-0436 (Cargo.lock)
  • Medium CVE: RUSTSEC-2025-0052 (Cargo.lock)
  • Medium CVE: RUSTSEC-2025-0134 (Cargo.lock)
  • Medium CVE: RUSTSEC-2026-0173 (Cargo.lock)
  • Medium CVE: RUSTSEC-2026-0192 (Cargo.lock)
  • Medium CVE: RUSTSEC-2026-0194 (Cargo.lock)
  • Medium CVE: RUSTSEC-2026-0195 (Cargo.lock)
  • Medium CVE: RUSTSEC-2026-0206 (Cargo.lock)
  • Medium CVE: RUSTSEC-2026-0221 (Cargo.lock)
  • No automated tests
  • No exposed public API
  • No tests found
  • Rotate the exposed credentials — git history can't be un-committed
  • Test reliability not included

New (49)

  • Coverage not measured — JavaScript/TypeScript suite
  • Dependency hygiene PARTLY measured — npm pinning read, dependency currency not (no committed lockfile, so no resolved version to grade)
  • Documentation: no project overview (README.md)
  • FileTooLong: ui/sidebar.tsx (apps/web/src/components/ui/sidebar.tsx)
  • Floating npm dependency: @tanstack/react-devtools
  • Floating npm dependency: @tanstack/react-router
  • Floating npm dependency: @tanstack/react-router-devtools
  • Floating npm dependency: @tanstack/react-router-ssr-query
  • Floating npm dependency: @tanstack/react-start
  • Floating npm dependency: elysia
  • FunctionTooLong: calendar.Calendar (apps/web/src/components/ui/calendar.tsx)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • …and 29 more

Changes since last survey

  • 1 commits — 1 feature/other, 0 fixes

By area

  • crates/media — 1 commit

Notable commits

  • change: ci(media): add the workflow that builds FFmpeg for every platform

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

OpenCut-app/OpenCut was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 28 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit e668010778568641babef2cc40be4703ae6916d6 — the exact code this score is about.
  • Scored under rubric-2026.09.16 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-eb9197011364.