{"slug": "show-hn-a-disk-diagnostic-for-macos-developers", "title": "Show HN: A disk diagnostic for macOS developers", "summary": "Developer tool Backspace launched as a macOS disk diagnostic that scans projects, caches, Docker volumes and simulator runtimes to show what is consuming disk space, with a free diagnostic tier and a $24.99 one-time paid licence for safe removal, background monitoring and an audit log. The tool reports finding 101.93 GB across 58 projects, 126.2 GB in Docker storage where 212 of 246 volumes belong to no project, and 44.92 GB across 27 simulators of which 16 cannot start because their required iOS runtime is gone. Backspace measures allocated blocks (st_blocks * 512) rather than apparent file size, stores findings in a local SQLite database, and makes only two outbound requests: licence activation via api.lemonsqueezy.com and update checks via backspace.tedydev.com.", "body_md": "# Your disk is full of things that aren't files.\n\nA disk diagnostic for macOS developers. It finds what ate the disk and where it went: Docker volumes, simulator runtimes, build caches, VM images. Before you remove any of it, Backspace tells you what will actually come back.\n\n01 · what you get\n\n## The diagnostic is free. Always.\n\nEvery scan, every number, every finding and the reasoning behind it costs nothing. You pay only to act on what it found and to watch the disk over time.\n\n### Free\n\n- Full scan of projects, caches, Docker, simulators\n- Every size, every finding\n- The reasoning: why this is here and what it is\n- What would actually come back if removed\n\n### Paid, one purchase\n\n- Safe removal\n- Background monitoring\n- Alerts\n- History and deltas\n- Look inside volumes\n- Audit log\n\nFinding out is free. Acting on it is what costs.\n\n02 · projects & caches\n\n## 58 projects. 101.93 GB.\n\nFound artifact-first: Backspace walks for node_modules, target, Pods and their kin, then derives the project from the artifact. A project without git, or one whose source you already deleted, still shows up.\n\n6.75 GB of it hasn't been touched in six months or more.\n\n03 · docker\n\n## Ask the tools about themselves.\n\nOrbStack, Docker Desktop, Colima, Podman. Backspace asks each runtime where it lives instead of guessing from hardcoded paths, because every one of them is configurable and the list will never be complete.\n\n126.2 GB here, and 212 of 246 volumes belong to no project at all.\n\n04 · simulators\n\n## 16 simulators that cannot start.\n\n44.92 GB across 27 simulators. Sixteen of them are stranded: the iOS runtime they need is gone, but their data stays on disk until you say otherwise.\n\nAnd the numbers stay honest. A runtime's mounted volume is largely an APFS clone of a source asset it leaves behind, so Backspace refuses to claim you'll get both back.\n\n05 · activity\n\n## Where did 10 GB go since yesterday?\n\nFree space sampled continuously, with the deltas attributed to what actually changed. The question stops being \"my disk is full\" and becomes \"this filled it, at this hour\".\n\n06 · audit log\n\n## Everything it removed, on the record.\n\nThe exact command, the exact path, where it went and whether it worked. Nothing is swept up silently, and bulk actions never touch volumes: those go one at a time, ticked by hand.\n\n07 · after the cleanup\n\n## It keeps watching.\n\nA one-off sweep buys you a month. Backspace samples free space in the background, tells you the moment a build starts eating the disk again, and keeps the history so you can see which project is the repeat offender.\n\nThat is what the licence is for: never wondering where the gigabytes went again.\n\n08 · privacy\n\n## Two requests. No analytics in the app.\n\nWhat Backspace finds on your disk stays on your disk. Paths, project names and sizes live in a local SQLite database and are never uploaded. There is no analytics SDK, no telemetry and no user identifier. The app's entire outbound surface is this (this website separately counts anonymous page views and download clicks with self-hosted Rybbit):\n\n| Destination | When | What is sent | \n|---|---|---|\n| api.lemonsqueezy.com | Licence activation and checks | Your licence key, plus the computer name on first activation. | \n| backspace.tedydev.com | Update check | A plain request for the appcast file. | \n\n09 · how it measures\n\n## Allocated blocks, never apparent size.\n\nA sparse VM image will happily report 8 TB of apparent size on a 926 GB disk. Every number in Backspace is what the file actually occupies.\n\n``` js\n// every runtime path is user-configurable — so we ask, never assume\nconst runtimes = await exec(\"docker context ls\")\nconst usage    = await exec(\"docker system df -v\")\n\n// size is st_blocks * 512, not st_size\nconst onDisk = stat.blocks * 512\n```\n\n10 · pricing\n\n## One purchase, no subscription.\n\n$24.99 one time, plus local tax where applicable\n\nBuy once, use it on your Macs, keep the version you bought. Updates arrive through Sparkle.", "url": "https://wpnews.pro/news/show-hn-a-disk-diagnostic-for-macos-developers", "canonical_source": "https://backspace.tedydev.com/", "published_at": "2026-10-08 11:23:02+00:00", "updated_at": "2026-10-08 11:47:16.431732+00:00", "lang": "en", "topics": ["developer-tools"], "entities": ["Backspace", "macOS", "Docker", "OrbStack", "Docker Desktop", "Colima", "Podman", "Sparkle"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/show-hn-a-disk-diagnostic-for-macos-developers", "markdown": "https://wpnews.pro/news/show-hn-a-disk-diagnostic-for-macos-developers.md", "text": "https://wpnews.pro/news/show-hn-a-disk-diagnostic-for-macos-developers.txt", "jsonld": "https://wpnews.pro/news/show-hn-a-disk-diagnostic-for-macos-developers.jsonld"}}