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

- 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
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.
Explore the project
A closer look
The Edit timeline, up close.
Early FrameLine prototype: Color workspace. The collaborators and scopes here are simulated.
Early FrameLine prototype: Audio workspace. The collaborators and levels here are simulated.
Early FrameLine prototype: Deliver workspace. The render queue here is simulated.
