Mac Setup for Web Development [2026] - Robin Wieruch

Mac Setup for Web Development [2026] - Robin Wieruch

This is the Mac setup I use every day for full-stack web development on my freelance projects. After several years on a MacBook Pro 2015, I moved to Apple Silicon and have kept this guide refreshed annually so it reflects what I actually run, not a snapshot from years ago.

What you get here, end to end:

Here comes everything I run in 2026:

Override more system preferences from the terminal …

Install Homebrew as package manager for macOS:

Update everything in Homebrew to recent version:

Install GUI applications (read more about these in GUI Applications):

Install terminal applications (read more about these in Terminal Applications):

The look and feel we want to achieve from our terminal:

When you open iTerm2, you see that MacOS already comes with zsh as default shell. Install Oh My Zsh for an improved (plugins, themes, …) terminal (here: iTerm2) experience:

Update everything (e.g. plugins) in Oh My Zsh to recent version:

Important: If you change something in your Zsh configuration ( .zshrc ), force a reload:

Oh My Zsh Theme + Fonts:

We will use Starship as terminal theme and Hack Nerd Font for iTerm2 and VS Code. Both were already installed in the Homebrew step above ( starship formula and font-hack-nerd-font cask).

Make Starship the default theme for Oh My Zsh:

Use the new font in iTerm2: Preferences -> Profile -> Text -> Font: Hack Nerd Font.

If the theme and font changes do not apply, reload your zsh configuration ( .zshrc ) or close and reopen iTerm2.

ZSH Configuration File ( .zshrc ):

The look and feel we want to achieve from our IDE:

From terminal, set global name and email:

Set the default branch to main instead of master:

Print global git configuration:

There are two common strategies for SSH keys: one SSH key to rule them all or one SSH key per service. I use the latter one and will here run yout through it by connecting to GitHub via SSH .

First, create a new SSH key in the ~/.ssh folder:

Confirm whether the passphrase was set correctly by reading the private key:

Create the SSH configuration file if it doesn’t exist yet:

In your ~/.ssh/config file, add the new SSH key, so that it can get picked up for every terminal session automatically:

Add SSH key to MacOS’ keychain:

Add the public key to your GitHub settings via the website or via the GitHub CLI (already installed via Homebrew above as gh ):

That’s it. You have created an SSH key locally for one specific service, secured it via a passphrase, made it automatically available for every terminal session, and applied it to GitHub. In the case of GitHub, you are now able to interact with GitHub via SSH.

The node version manager (NVM) is used to install and manage multiple Node versions. After you have installed it via Homebrew in a previous step, type the following commands to complete the installation:

Now install the latest LTS version on the command line:

Afterward, check whether the installation was successful and whether the node package manager (npm) got installed along the way:

Update npm to its latest version:

And set defaults for npm:

If you are a library author, log in to npm too:

That’s it. If you want to list all your Node.js installation, type the following:

If you want to install a newer Node.js version, then type:

If you want to list all globally installed packages, run this command:

That’s it. You have a running version of Node.js and its package manager. From here you can scaffold your first project using my JavaScript project setup tutorial .

That is the full Mac setup I run as a freelance web developer. I keep this guide refreshed every year so it reflects the tools I actually use, not what was hot two years ago. If you have a tweak that saves you time on a new machine, let me know and I will fold it in. Curious what else I use day to day? Check out my about page .

Recommended articles