Back to Blog

My Mac Dev Setup: Ghostty, Homebrew, and Windsurf

Published: Mar 4, 2025 by Joe Hernandez
ToolsmacOSSREDeveloper ExperienceProductivity

I keep my macOS setup simple, fast, and reliable. Here are the core tools I use every day on my MacBook Pro and why they’ve earned a permanent spot in my workflow.

MacBook Pro as the Foundation

For my daily driver I use a MacBook Pro. It gives me:

  • M-series performance for fast local builds and Docker workloads
  • Great battery life for on-call and travel
  • A stable UNIX environment that plays nicely with cloud tooling and containers

Ghostty: My Terminal of Choice

Ghostty is a modern, GPU-accelerated terminal that’s fast, native, and thoughtfully designed. Why I like it:

  • Speed and responsiveness: Snappy even with heavy logs and large scrollback
  • Native macOS feel: Shortcuts, tabs, and UI behave exactly as expected
  • Configurable: Minimal fuss, easy to theme, and works great with zsh

A snippet from my typical ~/.zshrc setup:

# prompt and history
export HISTSIZE=10000
export SAVEHIST=10000
setopt HIST_IGNORE_ALL_DUPS SHARE_HISTORY

# handy aliases
alias ll='ls -alF'
alias gs='git status'
alias k='kubectl'

# brew, go, and pnpm in PATH
export PATH="/opt/homebrew/bin:$HOME/go/bin:$HOME/.pnpm:$PATH"

Homebrew: The Package Manager

Homebrew is how I install and manage most of my developer tooling on macOS. It’s predictable, scriptable, and keeps my environment reproducible.

Core commands I use frequently:

# install packages
brew install gh git node pnpm go kubectl helm k9s jq yq wget fzf ripgrep fd

# upgrade everything safely
brew update && brew upgrade

# find what’s taking space
brew list --versions
brew cleanup -n   # dry run first

Casks I typically add on a fresh machine:

brew install --cask ghostty visual-studio-code rectangle iterm2 # if needed, alongside Ghostty

Windsurf: Editor for Fast Iteration

My editor of choice is Windsurf. It gives me a fluid, focused editing experience with smart ergonomics and performance. What stands out:

  • Speed: Large projects feel responsive
  • Great TypeScript/React ergonomics: In-editor feedback loops stay tight
  • Productive defaults: The little things (search, refactors, multi-cursor) are dialed in
  • AI models: I love the AI models Windsurf offers for accelerating code, refactors, and explanations

When working across services and IaC, I value quick navigation, solid TypeScript tooling, and reliable Git integration. Windsurf checks those boxes.

A Few Quality-of-Life Defaults

  • Shell: zsh with history sharing and a few terse aliases
  • Search tools: ripgrep and fd for blazing-fast code and file search
  • Kubernetes: kubectl, k9s, and helm installed via Homebrew
  • JSON/YAML: jq and yq for quick transforms in the terminal

Closing Thoughts

I focus on tools that minimize friction and reduce toil: fast terminal, simple package management, and a dependable editor. This setup keeps me productive whether I’m iterating on code, triaging an incident, or automating infrastructure.

Share this post