It's hard to remember all the things you need to do to get a proper development environment set up when buying or wiping a MacBook. This guide is here to help!

I have to set up a MacBook Pro fairly often - when starting a new job and when buying a new personal computer. I created this article back in 2015 when I got my first Mac and have been updating it ever since with whatever I need as my job evolves. I'm primarily a full-stack web developer, so most of my needs will revolve around JavaScript/Node.js.

Getting Started

The setup assistant will launch once you turn the computer on. Enter your language, time zone, Apple ID, and so on. The first thing you should do is update macOS to get the latest security updates and patches.

Homebrew

Install the Homebrew package manager. This will allow you to install almost any app from the command line.

/usr/bin/ruby -e " $( curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install ) "

Make sure everything is up to date.

brew update

Install Apps

Here are some the programs I always install.

Don't install Node.js through Homebrew. Use nvm (below).

App installation

brew install \ git \ yarn \ make \ travis && brew cask install \ visual-studio-code \ google-chrome \ firefox \ opera \ rectangle \ iterm2 \ docker \ vlc \ slack \ keybase \ spotify \ postgres \ postico \ postman

Shell

Catalina comes with zsh as the default shell. Install Oh My Zsh for sensible defaults.

sh -c " $( curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh ) "

Use Node Version Manager (nvm) to install Node.js. This allows you to easily switch between Node versions, which is essential.

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash

Install

Install the latest version.

nvm install node

Restart terminal and run the final command.

nvm use node

Confirm that you are using the latest version of Node and npm.

node -v && npm -v

For later, here's how to update nvm.

nvm install node --reinstall-packages-from = node

Change version

Here's how to switch to another version and use it.

nvm install xx.xx

nvm use xx.xx

And to set the default:

nvm alias default xx.xx

Git

The first thing you should do with Git is set your global configuration.

touch ~/.gitconfig

Input your config and create some aliases.

.gitconfig

[ user ] name = Firstname Lastname email = you@example.com [ github ] user = username [ alias ] a = add ca = commit -a cam = commit -am cm = commit -m s = status pom = push origin master pog = push origin gh-pages puom = pull origin master puog = pull origin gh-pages cob = checkout -b co = checkout fp = fetch --prune --all l = log --oneline --decorate --graph lall = log --oneline --decorate --graph --all ls = log --oneline --decorate --graph --stat lt = log --graph --decorate --pretty = format: '%C(yellow)%h%Creset%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)%an%Creset'

With the above aliases, I can run git s instead of git status , for example. The less I have to type, the happier I am.

SSH

Simplify the process of SSHing into other boxes. Create an SSH config file.

mkdir ~/.ssh && touch ~/.ssh/config

Add the following contents, changing the variables for any hosts that you connect to. Using the below will be the same as running ssh -i ~/.ssh/key.pem user@example.com .

.ssh/config

Host * AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/id_rsa Host myssh HostName example.com User user IdentityFile ~/.ssh/key.pem

Now just run the alias to connect.

ssh myssh

Generate SSH key

You can generate an SSH key to distribute.

ssh-keygen -t rsa -b 4096 -C "email@example.com"

Add key.

ssh-add -K ~/.ssh/id_rsa

Settings

I don't like a lot of the Apple defaults so here are the things I always change.

To get the Home folder in the finder, press CMD + SHIFT + H and drag the home folder to the sidebar.

General

Set Dark mode

Make Google Chrome default browser

Dock

Automatically hide and show Dock

Show indicators for open applications

Keyboard

Key Repeat -> Fast

Delay Until Repeat -> Short

Disable "Correct spelling automatically"

Disable "Capitalize words automatically"

Disable "Add period with double-space"

Disable "Use smart quotes and dashes"

Security and Privacy

Allow apps downloaded from App Store and identified developers

Turn FileVault On (makes sure SSD is securely encrypted)

Turn Firewall On (extra security measure)

Sharing

Change computer name

Make sure all file sharing is disabled

Users & Groups

Add "Rectangle" to Login items

Defaults

A few more commands to change some defaults.

chflags nohidden ~/Library defaults write com.apple.finder AppleShowAllFiles YES defaults write com.apple.finder ShowPathbar -bool true defaults write com.apple.finder ShowStatusBar -bool true defaults write com.google.Chrome AppleEnableSwipeNavigateWithScrolls -bool false

Application Settings

Chrome

Visual Studio Code

Press CMD + SHIFT + P and click "Install code command in PATH".

and click "Install code command in PATH". Install Prettier

Install New Moon Theme

Install GitLens

Install Highlight Matching Tag

Keyboard Shortcuts Copy Line Down - CMD + SHIFT + E Delete Line - CMD + SHIFT + D Reload Window - Remove Development Mode from When Format Document - CMD + SHIFT + L



Rectangle

Full Screen: CMD + SHIFT + ' (prevents messing with other commands)

(prevents messing with other commands) Left Half: CMD + OPTION + LEFT

Right Half: CMD + OPTION + RIGHT

iTerm2

Use ⌥ ← and ⌥→ to jump forwards / backwards

Set tab to open in same location

Conclusion

That sums it up for my current preferences on setting up a MacBook Pro. I hope it helped speed up your process or gave you ideas for the next time you're setting one up.