Setting up my MacBook from Scratch

I bit the bullet and reformatted my MacBook Pro over the weekend. My motivation for doing this was to start from scratch to figure out what apps I need. I’m documenting the process I followed here. This guide is a work-in-progress.

Backing Up My Files

I wanted to keep it simple and work on organizing all of my files later. So I used the Carbon Copy Cloner to do the hard work with backing up all my files over to my Drobo 5N. This took longer than I expected, so be patient.

Signing Out

You’ll need to make sure you sign out and deauthorize applications before you reformat.

Installing Applications and Configuring

Since I’m a developer, I’m always on the lookout for MacBook setup guides. I found this impressive guide by Tania Rascia and was inspired to make my own.

After installing Homebrew, here are the apps I installed.

brew install \
  git \
  yarn \
  make 

brew cask install 1password bartender brave-browser carbon-copy-cloner cleanmymac cleanshot screenflow visual-studio-code google-chrome firefox iterm2 docker vlc slack keybase postgres postico postman coda malwarebytes steam dotnet-sdk

Since I needed to install Mac Store apps, I installed and used the mas-cli.

brew install mas
mas install 937984704 1091189122 775737590 634148309 441258766 1274495053 568494494 485812721 497799835

# Amphetamine
# Bear
# iA Writer  
# Logic Pro X
# Magnet
# Microsoft To Do 
# Pocket
# TweetDeck
# Xcode

I used cask-versions to install alternative versions of applications that I haven’t upgraded like Alfred.

brew tap homebrew/cask-versions
brew cask install alfred3 # then activated my power pack license

Turn off spotlight keyboard shortcut and set keyboard shortcut to CMD + spacebar for Alfred.

iTerm2 Setup

I followed this to setup my iTerm2.

Visual Studio Code

{
    "workbench.startupEditor": "newUntitledFile",
    "workbench.colorTheme": "New Moon",
    "terminal.external.osxExec": "iTerm.app",
    "terminal.integrated.shell.osx": "/bin/zsh",
    "terminal.integrated.fontFamily": "MesloLGS NF",
    "workbench.colorCustomizations": {
        "terminal.foreground": "#839496",
        "terminal.background": "#002833",
        "terminal.ansiBlack": "#003541",
        "terminal.ansiBlue": "#268bd2",
        "terminal.ansiCyan": "#2aa198",
        "terminal.ansiGreen": "#859901",
        "terminal.ansiMagenta": "#d33682",
        "terminal.ansiRed": "#dc322f",
        "terminal.ansiWhite": "#eee8d5",
        "terminal.ansiYellow": "#b58901",
        "terminal.ansiBrightBlack": "#586e75",
        "terminal.ansiBrightBlue": "#839496",
        "terminal.ansiBrightCyan": "#93a1a1",
        "terminal.ansiBrightGreen": "#586e75",
        "terminal.ansiBrightMagenta": "#6c6ec6",
        "terminal.ansiBrightRed": "#cb4b16",
        "terminal.ansiBrightWhite": "#fdf6e3",
        "terminal.ansiBrightYellow": "#657b83",
        "terminalCursor.foreground": "#839496",
        "terminalCursor.background": "#003541"
    }
}

Setting Up A Directory Structure for Projects

I recommend using Stuart Ellis’ directory structure for projects, which looks like this for me.

code/
  src/
    github.com/
      westerncj/
        a-project/
    gitlab.com/
      cwestern/
        b-project/

Thanks for reading, I’d love to hear your thoughts. Find me on twitter.

Every week, I send out a hand-curated newsletter of everything interesting I’ve read or found. Sign up below to get my must-reads in your inbox every week.

We won't send you spam. Unsubscribe at any time. Powered by ConvertKit

Leave a Comment