SpaceBadger is a macOS storage analysis app built with Electron, React, and TypeScript. It focuses on scanning folders, visualizing disk usage, and comparing historical snapshots to track growth over time.
Chinese README: README.zh.md
- Worker-threaded scanning with progress updates
- Snapshot persistence in SQLite (metadata + folder tree)
- Treemap, Sunburst, and List visualizations
- Snapshot history management (load, rename, delete)
- Snapshot comparison with top growth/shrink lists
- Theme switching (light, dark, auto)
- Electron + electron-vite
- React + TypeScript
- Zustand state management
- D3 (Treemap) and ECharts (Sunburst, charts)
- better-sqlite3 for local persistence
- Core scanning, storage, and visualization flows are in place.
- Trend analysis backend exists; chart UI is planned.
- Comparison highlight in Treemap is planned.
- Node.js 18+ (or 20+)
- pnpm
$ pnpm install$ pnpm dev# For windows
$ pnpm build:win
# For macOS
$ pnpm build:mac
# For Linux
$ pnpm build:linux$ pnpm test:run$ pnpm lint
$ pnpm typechecksrc/
main/ Electron main process (IPC, DB, scanning, analysis)
preload/ Preload bridge (typed IPC APIs)
renderer/ React UI and visualizations
types/ Shared data models and IPC payload types
SQLite is used for snapshots and settings. The database is created at:
app.getPath('userData')/spacebadger.db
mac-storage-analyzer-prd.mdDEVELOPMENT_PLAN.mdCICD.md