Skip to content
Konrad Fischer, home

SharedCut

A video editor I built so I could teach my friends to edit on our school Chromebooks.

Clip properties

Track
Software
Role
Solo: product design, engineering, self-hosting
Timeline
Sep 2026 to now
Status
In development
Close-up of the SharedCut timeline: two video tracks of clips with keyframes and three audio tracks with waveforms
Software
Sep 2026 to now
people I’ve taught to edit
~4
finished videos made together
50
hours spent editing together
100+

The story

I wanted to teach people at school how to edit, but we use Chromebooks and can’t install software. So I built SharedCut. We can open the same project in a browser, see each other’s cursors, and edit together.

It’s really cool watching someone I taught do the same things I do. I can be working on my part and see their edits show up live. It helps me out, and I love seeing them get into it.

How it works

Follow the signal

Signal flow9 nodes · 9 links
Your browser handles editing and playback. My server saves everyone’s changes and does the heavy video processing.

Parts:

  • Browser editor: React, Zustand
  • Sync client: revisions, 3-way merge
  • Preview: WebCodecs, canvas, WebGL2
  • Cloudflare Tunnel: sharedcut.com
  • Footage cache: service worker, 1 MiB chunks
  • Node server: auth, roles, locks, SSE
  • Python workers: captions, masks, stabilize
  • SQLite: projects, history
  • FFmpeg queue: proxies, exports

Connections:

  • Browser editor to Sync client: edits
  • Browser editor to Preview: playhead
  • Sync client to Cloudflare Tunnel: saves, presence
  • Cloudflare Tunnel to Node server
  • Node server to SQLite: versioned state
  • Node server to FFmpeg queue: jobs
  • Node server to Python workers: jobs
  • Cloudflare Tunnel to Footage cache: proxies
  • Footage cache to Preview: byte ranges
Behind the build Tools & technical details

TypeScript · React 19 · Node 22 + SQLite · FFmpeg · WebCodecs + WebGL2 · Python (OpenCV, SAM 2.1, WhisperX) · Playwright · Cloudflare Tunnel

React and TypeScript power the editor. Node and SQLite handle projects and versioned saves. Independent edits merge, while overlapping changes ask the editor which version to keep. Short control locks and personal undo protect collaborators’ work.

FFmpeg prepares footage and exports from the originals. WebCodecs and a browser cache handle playback. Shared color transforms keep preview and export consistent. Captions, subject masks and stabilization run on my own hardware. I designed the product and used Claude Code to help implement it.

The hard part

The hardest part was letting people edit at the same time without overwriting each other. Undo needed to affect only your own work. I also had to make sure the exported video looked like the preview.

What came out of it

I’ve taught about four people so far, and they’ve really liked it. It’s still new, but I’m already using it for the reason I made it.