MacBook Pro 2025 web dev setup
/ 4 min read
Table of Contents
For the new year I got a new MacBook Pro. Here’s the obligatory setup log I used.
system updates & package manager
# Update macOS to the latest version through System Settings# Install Xcode command line toolsxcode-select --install
# Install Homebrew (package manager)/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew update
apps
- 1Password (password manager)
- Affinity Photo 2 (photoshop alternative)
- Claude for Desktop (LLM)
- CleanShot X (screenshot management)
- Controller for HomeKit (homekit manager)
- Final Cut Pro & Compressor (video editing & encoding)
- Franz (messaging)
- GoG (games)
- Grand Perspective (file system analysis)
- Kap (screencasts with GIF support)
- Microsoft Office (don’t @ me)
- Orion (kagi’s webkit browser)
- Rectangle Pro (window management)
- Reeder (rss reader)
- Steam (more games!)
- SourceTree (git ui)
terminal
brew install --cask iterm2
brew install \ wget \ git \ nvm \ yarn \ pnpm \ graphicsmagick \ commitizen \ cmatrix \ vips
- make
iterm2
default terminal - preferences ->
- general -> window
- unselect “native full screen windows”
- select “close windows when closing an app”
- appearance ->
- windows
- select “hide scrollbars”
- tabs
- unselect “show tab bar in fullscreen”
- dimming
- unselect all dimming
- windows
- profiles ->
- window
- transparency: 20
- style: full screen
- screen: main screen
- advanced
- semantic history -> open with editor … -> VS Code
- window
- natural text editing
- general -> window
# Install Oh My Zsh for better terminal experiencesh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# Update everything (e.g. plugins) in Oh My Zsh to recent version:omz update
# Important: If you change something in your Zsh configuration (.zshrc), force a reload:source ~/.zshrc
# Oh My Zsh Theme + Fontsbrew install starship
# Make it the default theme for Oh My ZSH from the terminalecho 'eval "$(starship init zsh)"' >> ~/.zshrc
# As font we will be using Hack Nerd Font in iTerm2 and VS Code. Install it via:brew install font-hack-nerd-font
# Do this before the SourceTree CLI installation (stree)sudo mkdir -p -m 775 /usr/local/bin
Use the new font in iTerm2: Preferences -> Profile -> Text -> Font: font-hack-nerd-font.
Oh My Zsh Plugins
https://github.com/zsh-users/zsh-completions
# Clone the repository inside your oh-my-zsh repogit clone https://github.com/zsh-users/zsh-completions ${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions
Add it to FPATH
in your .zshrc
by adding the following line before source "$ZSH/oh-my-zsh.sh"
:
fpath+=${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions/src
https://github.com/zsh-users/zsh-autosuggestions
# Clone this repository into $ZSH_CUSTOM/plugins (by default ~/.oh-my-zsh/custom/plugins)git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
Then add the plugin to the list of plugins for Oh My Zsh to load (inside ~/.zshrc
):
plugins=( # other plugins... zsh-autosuggestions)
https://github.com/zsh-users/zsh-syntax-highlighting
# Install pluginbrew install zsh-syntax-highlighting
# To activate the syntax highlighting, add the following at the end of your .zshrc:source /opt/homebrew/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
git
# Install Gitbrew install git
# Configure Gitgit config --global user.name "Your Name"git config --global user.email "your.email@example.com"
# Set the default branch to main instead of mastergit config --global init.defaultBranch main
# Generate SSH key for GitHubssh-keygen -t ed25519 -C "your.email@example.com"
nodejs
# Install Node Version Manager (nvm)curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# Install latest LTS version of Node.jsnvm install --lts
misc
brew install --cask visual-studio-codebrew install yarnbrew install --cask postmanbrew install --cask dockerbrew install --cask google-chromebrew install --cask firefoxbrew install htopbrew install ffmpeg
vs code extensions
- Astro
- Better Comments
- EditorConfig for VS Code
- ESLint
- GitHub Copilot
- GitHub Copilot Chat
- GitLens - Git supercharged
- Headwind
- Highlight Matching Tag
- MDX
- Prettier - Code formatter
- Pretty TypeScript Errors
- TODO Highlight
Inspired by https://www.robinwieruch.de/mac-setup-web-development/
tmux reference
# install tmuxbrew install tmux
# install tmux plugin managergit clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
# new sessiontmux new-session -s dev_env
- Horizontal Split: Prefix, then %.
- Vertical Split: Prefix followed by ”.
- Detach: To detach from the tmux session without terminating it, press Prefix then d.
- To reattach, use:
tmux attach-session -t dev_env
Config file ~/.tmux.conf
:
unbind C-b # Unbind the default Ctrl-bset-option -g prefix C-a # Set new prefix to Ctrl-abind C-a send-prefix # Rebind C-a as the new prefixset-option -g mouse on
# List of pluginsset -g @plugin 'tmux-plugins/tpm'
# tmux resurrectset -g @plugin 'tmux-plugins/tmux-resurrect'
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)run '~/.tmux/plugins/tpm/tpm'
dotfiles with chezmoi
https://www.chezmoi.io/quick-start/
# initialize first timebrew install chezmoichezmoi initchezmoi add ~/.zshrc
# restore/sync on another machinechezmoi init https://github.com/$GITHUB_USERNAME/dotfiles.gitchezmoi diffchezmoi apply -v