TriStar
Desktop tool · macOS · 2025

System Storage Explorer

See where every gigabyte on your Mac actually lives, and reclaim it.

The Leftovers landing page, "You deleted the app. Your Mac kept its mess." beside the app window scanning a home folder
Role
Design + Engineering
Stack
Tauri 2 · React 19 · TypeScript · D3 · Vite
Problem

macOS hides 142 GB behind the words 'System Data'.

The built-in Storage panel tells you a number. It does not tell you which folder is responsible, or what is safe to delete.

System Storage Explorer started as a personal need: a developer's home directory can silently accumulate hundreds of gigabytes across node_modules trees, build caches, and stale toolchain downloads. No native tool exposes the tree with enough resolution to act on it. The app scans any folder the user points at and makes the weight of every node visible at a glance, with four interchangeable views and a per-node inspector that names the risk tier. It now ships as Leftovers, a paid macOS utility whose pitch narrows the problem to its sharpest case: the caches, containers, and support files that deleted apps leave hiding inside System Data.

Treemap view showing the Home directory with node_modules taking up the largest block at 41.2 GB
The treemap: area is disk weight. One glance shows node_modules dwarfing everything else.
Decisions

Four views answer different questions.

The treemap is the primary surface. Area encodes size, so the dominant consumer is always the first thing you see. The sunburst adds depth: it renders two levels of nesting simultaneously, so a large folder that hides its weight in many subdirectories is still visible. The list view trades spatial metaphor for precision: folders are ranked by size with a proportional bar, useful when you want to scan a long directory quickly. The dashboard breaks the entire tree into six risk-tagged categories (Media, Dependencies, Cache & Logs, Code, Applications, Documents) so you can triage by type rather than by path. All four views share a single Inspector panel on the right; clicking any node shows its exact size, item count, percentage of parent, and the category verdict.

Tauri was chosen over Electron for two reasons: the Rust scanner can walk a 500 000-file tree in under two seconds with minimal memory overhead, and the resulting app bundle is under 10 MB. The React layer is a pure presentation layer. It receives typed DTOs from Rust commands via invoke() and renders without maintaining its own file-system state.

That separation paid for itself at launch: because the UI never touches the file system directly, swapping the Tauri bridge for a mock module produces a fully interactive browser demo of the real app, seeded with fake data. The Leftovers landing page links straight to it, so "Try the live demo" costs the visitor nothing and shows the actual product, not a video of it.

Dashboard view showing six category cards with size, item count, and risk badge
Dashboard: storage by category. Cache and Dependencies carry the Caution and Danger badges.
List view ranking folders from node_modules down to Desktop with proportional green bars
List: folders ranked by size with a proportional bar for fast scanning.
Sunburst chart showing the Home directory as nested rings of green segments
Sunburst: two levels of depth rendered simultaneously as concentric arcs.
The Leftovers landing page listing System Data categories and a row of ghost apps with gigabytes left behind
The landing: six System Data categories explained, and the ghost apps still haunting the disk.
Outcome
< 2s
Scan time for 500k files
< 10 MB
App bundle size
$29
Lifetime license, no subscription

What began as a personal read-only map is now a product: Leftovers sells a lifetime license from its own landing page, with a live browser demo of the real app as the proof. The scan speed and bundle size remain the most concrete technical wins; Rust does what JavaScript cannot. The reclaim workflow (select a node, confirm, delete) is the v2 surface the inspector already points to.