The idea
A desktop app that opens a finished editing project — a Premiere .prproj, a Final Cut .fcpxml, a Resolve timeline export — and answers one question: which files on disk does this timeline actually need? It walks every clip, nested sequence, multicam angle, and speed ramp, resolves each one back to a path, and produces two lists: keep and orphan. Then it copies the keep list into a self-contained archive folder with a rewritten project file and a manifest of checksums. The orphans — usually the 800 GB of camera dailies nobody trimmed into the cut — it only reports.
Why build this
Anyone who shoots video accumulates project folders that are 90 percent dead weight. A two-minute brand spot lives inside 1.2 TB of A-cam takes, and nobody deletes any of it because nobody can prove which files the cut depends on. So editors buy another drive. The workaround people use today is "archive the whole project folder," which is why freelance editors have shelves of unlabeled 8 TB drives and agencies pay for cold storage on footage they will never open again.
Media management inside the NLEs is deliberately conservative. Premiere's Project Manager collects used media but drags along whole files rather than trimmed ranges, misses assets behind dynamic links, and gives you no report you can read before committing. Resolve's archive function produces a blob only Resolve can open. Neither tells you what you are about to strand. Meanwhile, the project formats are more approachable than their reputation: .prproj is gzipped XML, FCPXML is documented XML, and Resolve exports .fcpxml and .drt. A careful parser plus ffprobe gets you most of the way.
Stack sketch
- Tauri with a Rust core — this is a file-walking, checksum-heavy job, and shipping an 80 MB Electron binary for it is silly.
quick-xmlfor parsing,flate2to ungzip.prproj,serdefor the manifest.ffprobe(bundled) to confirm each referenced file is real, readable, and the duration the project claims.blake3for content hashes — fast enough to hash a terabyte without becoming the bottleneck.walkdirplus a path-resolution layer that handles relative paths, moved volumes, and macOS/Windows drive-letter mismatches.rcloneshelled out for the optional push to Backblaze B2 or S3 Glacier Instant Retrieval.- Frontend: Svelte, a single table with keep/orphan columns and a size total that updates as you toggle.
Scope for v1
- In: FCPXML 1.11 and gzipped
.prproj. A dry-run report showing used files, orphans, missing media, and bytes reclaimable. Copy-to-folder archive with rewritten relative paths and amanifest.jsonof hashes. A verify command that re-hashes an archive and reports drift. - Out: deleting anything. v1 never removes a file — it prints a
rmlist you can read. Also out: cloud upload, Resolve's native.drp, trimming media to in/out ranges, proxy regeneration, After Effects comps behind dynamic links (flag them as unresolvable and refuse to archive rather than guess).
Where it could go
Trimmed archives are the obvious next step and the one people will pay for: instead of copying the whole 40-minute take, cut it to the used range plus configurable handles using ffmpeg stream copy. That turns a 1.2 TB project into something like 60 GB with no quality loss, and it is where the real storage savings live. It needs to be opt-in and paranoid — handles are exactly the thing an editor will want back six months later.
After that, go multi-project. Point it at a shared storage volume, index every project file on it, and build a reverse map: for each media file, which projects reference it. That is the report a post house cannot produce today, and it makes safe deletion possible at the facility level rather than one project at a time. A third path is a restore side — take an archive plus manifest, verify it, and relink it back into the NLE on a new machine.
Watch out for
Project formats are undocumented and change between versions; a parser that silently skips an element type you have not seen will mark live media as orphaned, and someone will act on that. Fail loudly on anything you cannot resolve, never delete, and keep a golden set of real project files from several app versions as regression fixtures.