My Mac Dev Setup in 2026

Stack: Python • HTML,CSS,JS • Shopify • Postman • Lambda • Cloudflare • AWS SAM • GraphQL • SQL • iOS & Android

Rob Johnson

by Rob Johnson

Mar 11th 2026

# tools

Setting up a new MacBook Pro M5! A new start; a new beginning.

Tools: Homebrew · Warp Terminal · VS Code


✅ Foundation

Git + SSH

git config --global user.name "Your Name"
git config --global user.email "[email protected]"
ssh-keygen -t ed25519 -C "[email protected]"
# Copy public key to GitHub: cat ~/.ssh/id_ed25519.pub

GitHub CLI

brew install gh
gh auth login

✅ Python

Using pyenv for version management + uv for packages/virtual envs.

brew install pyenv
pyenv install 3.12.x
pyenv global 3.12.x

brew install uv

Add to ~/.zshrc:

export PYENV_ROOT="$HOME/.pyenv"
eval "$(pyenv init -)"

Daily usage:

uv venv
# create virtual env in current project
source .venv/bin/activate
uv pip install <package>

✅ Node / JavaScript

Using fnm (Fast Node Manager — Rust-based, Apple Silicon native).

brew install fnm
fnm install --lts
fnm use lts-latest
fnm default lts-latest

Add to ~/.zshrc:

eval "$(fnm env --use-on-cd)"

Global tools:

npm install -g pnpm typescript ts-node

✅ AWS (Lambda + SAM)

brew install awscli
brew tap aws/tap
brew install aws-sam-cli

Configure credentials:

aws configure
# AWS Access Key ID, Secret, Region, Output format (json)

✅ Shopify

npm install -g @shopify/cli @shopify/theme

Shopify CLI requires Ruby — managed via rbenv:

brew install rbenv ruby-build
rbenv install 3.3.x
rbenv global 3.3.x

Add to ~/.zshrc:

eval "$(rbenv init - zsh)"

✅ Cloudflare (Wrangler)

npm install -g wrangler
wrangler login

✅ SQL / PostgreSQL

brew install postgresql@16
brew services start postgresql@16

GUI: TablePlus (recommended, free tier) or DBeaver (fully free/open source).


✅ Useful Terminal Tools

brew install jq          # JSON parsing
brew install httpie      # friendlier curl alternative
brew install tree        # directory tree visualisation
brew install starship    # cross-shell prompt (optional with Warp)

Add Starship to ~/.zshrc if using:

eval "$(starship init zsh)"

✅ VS Code Extensions

Extension Purpose
Pylance + Python (Microsoft) Python language support
ESLint JS/TS linting
Prettier Code formatting
GitLens Enhanced Git in editor
AWS Toolkit Lambda, SAM, CloudFormation
Shopify Liquid Liquid template support
GraphQL: Language Feature Support Schema, queries
REST Client Quick HTTP requests in-editor
SQLTools + driver Database queries in VS Code

✅ Mac System Settings

# Show hidden files in Finder
defaults write com.apple.Finder AppleShowAllFiles YES

# Keyboard repeat rate (useful for coding)
defaults write -g InitialKeyRepeat -int 15
defaults write -g KeyRepeat -int 2
  • Rectangle — window snapping (free, highly recommended)
  • FileVault — enable in System Settings → Privacy & Security

📱 iOS / Android (Future)

  • Xcode — install from App Store early (large download)
  • Android Studio — from jetbrains.com/android-studio
  • Java — brew install openjdk
  • CocoaPods — sudo gem install cocoapods (when needed for iOS)

🗂 ~/.zshrc Summary

All additions to ~/.zshrc in one place:

# pyenv
export PYENV_ROOT="$HOME/.pyenv"
eval "$(pyenv init -)"

# fnm
eval "$(fnm env --use-on-cd)"

# rbenv
eval "$(rbenv init - zsh)"

# Starship prompt (optional)
eval "$(starship init zsh)"

After editing, reload with:

source ~/.zshrc