My 2026 MacBook Air Developer Setup: Clean, Lean, and Reproducible
I spent two days rebuilding my M2 MacBook Air after hitting the memory ceiling with app clutter. The strategy was ruthless: factory reset, then install only what I actually use. This guide documents the process and the setup I landed on.
The Problem
Over 18 months, my MacBook accumulated:
- Multiple browser profiles with hundreds of tabs
- Docker images I'd forgotten about
- Orphaned Python virtual environments
- Xcode command-line tools that I never fully cleaned
- System caches for apps I no longer use
Result: 17 GB of swap on an M2 with 16 GB RAM. Mail would stall, Xcode builds would timeout, and simple context switches felt sluggish.
The realization: I didn't need a bigger Mac. I needed discipline.
Goals for the New Setup
- Memory discipline: Know exactly what's running and why.
- Small toolset: One shell, one terminal, one primary editor, intentional browser roles.
- Reproducible: New Mac in minutes via Brewfile + config files.
- Fast: Minimal startup overhead, no heavy frameworks or automation overhead.
1. Factory Reset (Erase All Content and Settings)
This was the hardest part psychologically, but the cleanest path.
Before you reset:
- Backup critical projects: Git push everything to GitHub.
- Export configs: Create a
backup_configs.zipcontaining:
Reset steps:
- Go to System Settings → General → Transfer or Reset → Erase All Content and Settings.
- Enter your Apple ID password to sign out of iCloud.
- Confirm the erase (takes ~10 minutes).
- On reboot, select Set up as new (no Migration Assistant).
Result:
- 198 GB free (on a 256 GB drive).
- 0 bytes swap on first boot.
- Feels noticeably snappier immediately.
Reference: PCMag's factory reset guide
2. Base macOS Settings
Skip the exotic tweaks. Just enable what helps:
- Displays → Built-in Display:
- Privacy & Security:
- Apple Intelligence (beta): Skip for now (reduces background processing).
- App-level zoom instead of changing resolution:
3. Install Homebrew
Verify it works:
4. Brewfile: Package Everything
Create Brewfile in your home directory or repo root. This is your entire dev environment in one file:
Install everything at once:
On a new Mac, this brings you from zero to a full dev environment in ~20 minutes.
Why this specific list?
- No Docker Desktop: Use OrbStack later if containers are needed (lighter).
- No VS Code by default: Zed is my primary editor now; Code is for its extensions.
- No Slack/Discord: These are bandwidth hogs. Browser versions only.
- No Xcode: Install command-line tools only when needed:
xcode-select --install.
5. Shell Setup: Fast and Minimal
I deliberately skip heavy frameworks (no oh-my-zsh, no Starship) to keep startup under 100ms.
Edit ~/.zshrc:
Reload:
Shell startup time check:
Should be <100ms. If it's higher, something is slow. (Hint: oh-my-zsh plugins and heavy functions cause this.)
6. Ghostty Configuration
Ghostty is fast, GPU-accelerated, and has sane defaults. I only customize fonts and padding.
Create ~/.config/ghostty/config:
Gotcha: After editing the config, fully quit and relaunch Ghostty (not just close the window). Cmd+Q then reopen.
If the theme or font doesn't exist, Ghostty silently falls back to defaults. Verify:
Reference: Ghostty docs | Minimal config guide
7. Project Organization and Git Workflow
Keep projects under one directory:
Clone repos via GitHub CLI (faster than git clone for authenticated users):
Monitor uncommitted work
Create a helper script ~/check_repos.sh:
Make it executable:
Run this before bed or before major system changes to catch uncommitted work.
8. Browser Discipline: Explicit Roles
One browser eating 8 GB of RAM because you have 300 tabs is a design failure, not a hardware failure.
Define explicit roles:
| Browser | Purpose | |---------|---------| | Chrome | Job applications, LinkedIn, company portals | | Firefox | Email, calendar, personal accounts | | Brave | Long-form reading, research, random browsing (good ad/tracker blocking) |
Rules:
- Only open the browser you need for the task.
- Close tabs regularly (max ~20 per window).
- Use browser profiles to separate contexts.
This simple discipline prevents the "just one more tab" spiral.
9. Memory and Disk Hygiene
The setup is minimal, but discipline matters:
Monthly:
Weekly:
Restart cadence:
- Restart every 1–2 days to clear any memory leaks or swap buildup.
- Monitor with Activity Monitor: Window → Memory.
Clear Quick Look cache (optional):
If PDF previews or image thumbnails are eating disk space:
This clears the Quick Look thumbnail cache. First previews after will rebuild; that's normal.
10. Restore Personal Files (After Everything Else)
Once the system is stable, restore personal data:
11. Optional: LaTeX (if needed)
If you write papers or produce PDFs with formulas:
12. Future Additions (Only When Needed)
Keep these in your back pocket:
- Containers: Replace Docker Desktop with OrbStack (lighter, faster).
- AI tools: Move from temporary credits to browser-based AI (Claude, Perplexity) or editor plugins.
- Advanced terminal: tmux, custom keybindings—only if you find a genuine need.
Repository Structure
Store your setup in a GitHub repo (mac-dev-setup-2026):
On a new Mac:
Done in 15 minutes.
Key Takeaway
The machine didn't need more power. The environment needed more intention.
By saying no to accumulated clutter and yes only to deliberate tools, I went from a sluggish 16 GB MacBook to one that feels lightweight and predictable. The factory reset hurt for an hour. The discipline pays dividends every day.
Have you done a full reset before? What's the longest you've gone without restarting your dev machine? Feel free to reach out with questions or your own setup hacks.