If you're a developer on macOS, your SSD is slowly being eaten alive. Not by your projects — by caches. Build artifacts, dependency folders, and temporary files accumulate silently until one day you're staring at a "Disk Almost Full" warning with no idea where 50 GB went.
Here are the biggest space hogs most developers don't realize are growing:
Every time you build an Xcode project, the build artifacts go into ~/Library/Developer/Xcode/DerivedData/. Each project gets its own subfolder, and they never get cleaned up automatically. If you've worked on a few projects, this folder can easily reach 20–50 GB.
The manual way to clean it:
rm -rf ~/Library/Developer/Xcode/DerivedData/* This is safe — Xcode recreates it on the next build. But you have to remember to do it.
Every Node.js project gets its own node_modules folder. A single React project can be 200–500 MB. If you have 20+ projects on your machine, that's easily 10+ GB of npm packages — most of which you haven't touched in months.
The tricky part: you can't just delete all node_modules globally without breaking active projects. You need to know which ones are safe to remove.
Rust's target/ directories contain compiled artifacts and can grow to several GB per project. Debug builds are especially large because they include debug symbols. If you work on multiple Rust projects, these add up fast.
Python's pip caches downloaded packages at ~/Library/Caches/pip/. Homebrew keeps old versions of packages around. Neither cleans up after itself.
Here's a rough estimate for a developer who uses Xcode, Node.js, and Rust on a 256 GB MacBook:
That's 52 GB — more than 20% of a 256 GB SSD — sitting in caches that can be safely regenerated.
You can clean each cache individually from the terminal:
rm -rf ~/Library/Developer/Xcode/DerivedData/*find ~ -name "node_modules" -type d -prune -exec rm -rf {} +find ~ -name "target" -type d -path "*/target" -prune -exec rm -rf {} + (careful — only Cargo targets)pip cache purgebrew cleanup --prune=allThis works, but it's tedious, easy to forget, and the find commands can accidentally delete the wrong target directories if you're not careful.
Dup has a dedicated "Clean Dev Caches" mode that handles all of this automatically:
Safe defaults. Dup only targets known cache directories that are safe to delete. It won't touch your source code, configuration files, or anything that can't be regenerated by running a build command.
There's no perfect schedule, but a good rule of thumb: clean when your disk drops below 15% free space, or once a month if you're actively developing. Xcode DerivedData grows the fastest, so if you're an iOS developer, you'll want to clean more frequently.
The good news: all of these caches regenerate automatically. Cleaning them has zero risk — the only cost is a slightly longer first build afterwards.
Dup is a free download for Mac. The dev cache cleanup feature works in the free version — you can scan and clean up to 250 MB. Pro unlocks unlimited cleanup.
Download Dup from the Mac App Store or get it from dup.devpon.com.
Find the duplicates your current tools miss
Dup finds similar photos and videos — not just exact copies. Free on the Mac App Store.