Skip to content

AliciaSykes/trimmr

 
 

Repository files navigation

trimmr

trimmr is a free, private, and secure open-source editor for animated media and video—your files never leave your computer. Edit trims and captions in seconds, then export or convert to other video file formats (WebM, MP4, and more) from the same workflow, with no upload and no account, totally for free!

Live app: trimmr.xyz · Workflow guides: trimmr.xyz/workflows/

The first shipping workflow is intentionally narrow:

  1. Choose an animated asset or video from your computer.
  2. Trim the in and out points.
  3. Adjust playback speed.
  4. Add a text overlay.
  5. Export a clean result.

Product principles

  • Free core editor; no account required.
  • Private and secure: processing stays on the user’s device; files are not uploaded to our servers.
  • Fast repeated utility workflows before creative-suite breadth.
  • Zero install (open the app and go).

Monorepo layout

  • apps/web: React + Vite browser app and hosted shell
  • packages/shared: shared types, utility helpers, analytics event schemas
  • packages/editor-core: project model, commands, undo/redo
  • packages/media-engine: import metadata, export helpers, draft persistence
  • packages/ui: reusable editor UI primitives

Local development

Use the pinned Node version:

nvm use
npm install
npm run dev

Quality gates

  • npm run typecheck: checks the app and all shared packages
  • npm run lint: lints app code, package code, and root configs
  • npm run test:coverage: runs unit and integration tests with enforced coverage thresholds
  • npm run test:e2e: runs Playwright (desktop + emulated mobile Chrome and mobile Safari). Install browsers once: npx playwright install
  • npm run test:e2e:desktop: runs chrome-desktop and firefox-desktop (same desktop specs except mobile-export; Firefox uses a Playwright export hook when the download event is missing)
  • npm run test:e2e:firefox: playwright test --project=firefox-desktop only
  • npm run test:e2e:mobile: mobile-overflow + mobile-export specs only (includes a bounded WebM export that fails if export hangs)
  • npm run telemetry:failures:query -- [days] [limit]: prints a PostHog HogQL query for top media failure signatures
  • npm run seo:sitemap: regenerates apps/web/public/sitemap.xml with <lastmod> from file dates
  • npm run seo:check: regenerates the sitemap, then validates SEO tags for all static pages
  • npm run check: runs the full quality gate locally

Coverage is enforced at >=95% for statements, branches, functions, and lines across the application-specific logic layer:

  • timeline helpers in packages/shared/src/timeline.ts
  • editor state and command logic in packages/editor-core/src/index.ts
  • keyboard shortcut behavior in apps/web/src/hooks/useKeyboardShortcuts.ts
  • preview/render mapping logic in apps/web/src/lib/renderProjectFrame.ts

Integration-heavy surfaces and UI wrapper components are still tested, but they are not the primary coverage gate.

Status

This repository currently contains:

  • the product spec and delivery checklist
  • the monorepo scaffold
  • an editor prototype for import, trim, caption, draft persistence, and export (on-device processing)
  • starter unit and browser smoke tests

Near-term roadmap

  • improve animated image decoding beyond metadata-only fallback paths
  • add image and sticker overlays

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 73.2%
  • HTML 17.7%
  • CSS 4.9%
  • JavaScript 3.1%
  • Shell 1.1%