Running out of disk space is one of those problems web developers and designers rarely see coming, until it completely halts their workflow. One second you’re humming along, the next a Mac throws a terse warning: Your startup disk is almost full!
The slowdown for web development and design professionals is much more fractal than just a slow computer. A full disk can mean npm package installations fail, Docker containers won’t start, Git can’t write temp files, or your design tools like Figma or Adobe XD crash.
Each GB eaten up by poorly managed junk is another GB closer to near-zero productivity and broken builds.
The good news? Most of this junk is predictable, and it’s a quick process to know where it hides and how to clean it up. We’ll show you exactly where Mac storage goes on a developer’s machine, and how to get the most space in the least time.
Why storage management matters in web development
It’s not just a slow system when Mac storage gets full. For developers and designers, here’s what really happens:
- Node package managers npm and Yarn start throwing installation errors
- Design tools like Figma or Adobe XD are crashing or failing to export assets
- Docker containers and local servers are not starting up properly
- Git operations fail and slow down if enough space is not there to write temp files
- VMs, the browser testing environment will not start.
Taking care of storage should not be considered housekeeping;; it is actually one of the things you must do to maintain a healthy, stable dev environment.
The biggest storage culprits on a developer's Mac
Before you can clean anything up, you need to know where it’s all going. For the average web developer machine, these are the main offenders:
node_modules folders
When you work with JavaScript frameworks like React, Vue, Next.js, or Angular, you’ll end up with quickly growing node_modules directories. A single project’s node_modules folder can easily reach 500MB to 1GB. If you have 10 or 20 projects, that’s 10–20GB of space gone for dependencies you might not even be actively using.
Xcode and build caches
Xcode’s derived data and simulator runtimes are particularly egregious offenders, silently accumulating build artifacts in ~/Library/Developer/, easily taking up 20 GB or more. And if you’re not creating any native apps, but still need to use the Xcode tools that web development requires (e.g., CocoaPods), then these caches will be created too.
Docker images and volumes
Docker is a standard part of most professional web development setups. But unused Docker images, stopped containers, and dangling volumes stack up quietly. A single Docker image can be 1–5GB, and it’s easy to accumulate dozens without realising it, especially when switching between client projects or testing different environments.
Browser caches and design assets
Chrome, Firefox, and Safari all have their own caches for cross-browser testing. Factor in font libraries, icon sets, stock assets, and exported design files from Figma or Sketch, and the ~/Downloads and ~/Desktop folders get heavy real quick.
How to free up Mac storage as a web professional
If you handle design-heavy tasks or web development, these few steps will help you free up space on your Mac and manage storage.
Step 1: Delete node_modules from inactive projects
Node_modules are not needed for projects that are not being actively developed or run. You can delete them manually or use npkill, which scans your entire system for node_modules directories and allows you to delete them selectively. Since package.json stays in place, reinstalling with npm install is all it takes to get a project back up and running.
Step 2: Prune Docker resources
Run docker system prune-a to remove all unused images, containers, networks, and volumes. This one line can recover 10–30GB on a machine that’s been running Docker for a year or more. It often removes all unused resources, so make sure nothing important gets wiped out.
Step 3: Clear Xcode derived data and simulators
In Xcode, go to Preferences > Locations and click on the arrow beside Derived Data so as to open that folder, and delete everything present in it or move it to the trash. For simulators, run xcrun simctl delete unavailable in Terminal, which should remove all your old simulator runtimes. You will easily reclaim 10–15GB by just doing these two steps.
Step 4: Empty the trash and review system junk
You would probably find it hard to believe how much space you actually regain on your Mac when deleting files doesn’t truly free anything until you empty your trash. Your system silently piles up with log files, app caches, and old Time Machine snapshots on your device.
These rarely get cleaned as often as they should. To empty trash on Mac and regain some storage, use a dedicated Mac cleaning app that scans everything and safely removes anything that’s not needed any more, without spending hours looking for Library folders yourself.
Keeping storage manageable long-term
Cleaning up once is nice, but avoiding the need for a major cleanup every few months is even better. It just takes a small set of habits:
- Use .gitignore the right way: node_modules,.DS_Store, build/, dist/, and .env files should always be excluded from version control. It’ll keep your repo clean and release you from committing all those unnecessary files that fill your repo with dirt over time.
- Archive finished projects: After finishing a project, delete node_modules if you still need the project locally, and remove any compiled build files you no longer need for posterity. Push your final commit to a remote repo if it’s not already on one, then move large assets somewhere else, such as external storage or a cloud archive.
- Set a monthly cleanup reminder: A 15-minute session once a month to clear browser cache or review the Downloads folder prevents storage from becoming a crisis. Small, regular habits are far less painful than emergency cleanups.
- Move large assets off the SSD: Video files, large image libraries, and raw design assets don’t need to live on the main drive. An external SSD or cloud storage works well for anything not accessed daily.
Final takeaway
Storage problems sneak up on you. When your head is down, and your team is cranking out features, hitting deadlines, and juggling multiple client requests, disk management isn’t top of mind. But that’s exactly why you should treat it like any other maintenance task; e.g., dependency updates or code reviews, to help ensure it never becomes a crisis.
Start with high-impact stuff: delete node_modules of your inactive projects, prune Docker, and then wipe Xcode Derived Data. And a few system-level junk files, which keep accumulating silently over time. A lean Mac is a happy Mac; it runs fast and doesn’t crash when you need it most.
