My 2021 New Mac Setup

I set up a new Mac for work today. Here's everything I use on a Mac for fullstack web development.
Unlike Mina Markham, I choose not to automate my setup because I only do it about once a year and I want the ability to make conscious changes each time.

I previously tracked my new mac setup in an old version of this page from 2018-2020.

1hr Video Walkthrough
OS/Browser Settings
  • Browser: Download Chrome, set to default.
  • Log in to: (this helps with logins for the other services below)
    • Twitter
    • Github (more setup instructions below)
    • Gmail
  • System Settings:
    • Disable Spotlight search for all miscellaneous crap except apps and system preferences
    • Disable Ask Siri
    • Set to Big cursor for accessibility during presentation
    • Fix trackpad direction: Trackpad -> Scroll & Zoom - Natural off
    • Disable dictionary lookup: Trackpad -> Point & Click -> Look up & data detectors off
    • (if using windows keyboard) remap alt and cmd keys for ergonomics
  • Finder settings:
    • Preferences → show filename extensions
    • Enable showing dotfiles (just hold Cmd + Shift + . (dot) in a Finder window)
    • Show path bar in footer for easier navigation
    • Prune the excessive sidebar bookmarks
      • create "Work" folder and pin it
  • Keyboard:
  • MacOS Dock:
    • Remove everything from the Dock except: Finder, System Preferences and Trash
    • Turn Dock Auto Hiding on
      • turn this on for MacOS Menu bar as well
  • Chrome extensions: (tied to Chrome account)
  • Setup Terminal
  • Copy my dotfiles (vimrc, zshrc, .gitignore_global): https://gist.github.com/sw-yx/7fa1009e460ecb818d5e6d9ca4616a05
  • Install ZSH (first usage of git will prompt you to install git - takes 15 minutes)

    • git config --global init.defaultBranch main
    • git config --global user.name "swyx"
    • git config --global user.email shawnthe1@gmail.com

  • Hyper Terminal

    • settings: shell: '/bin/zsh'
    • settings: fontFamily: '"Inconsolata for Powerline", Menlo, "DejaVu Sans Mono", Consolas, "Lucida Console", monospace',
    • Fig - context-aware autocomplete for terminal. Waitlisted now, but you can skip the waitlist here (i get nothing from this)
      • More CLI tools recommended by Brendan Faik (founder of Fig) - bat, exa, ripgrep, and other Rust CLI alternatives. Also zsh abbreviations
      • More CLI tools from Earthly - HN here
        • broot - a better tree
        • funky - simple shell functions
        • fzf - fuzzy finder
        • mcfly - guesses commands based on your history
        • zoxide - a better cd
        • gitupdate - use file names to create a more meaningful commit message
  • Set up apps/environments
  • Install Homebrew - /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

    i have a bunch more stuff in brew list but i'm not sure what i use actively. You can mass install these: brew install $(cat packages.txt)

    bat             gdbm            libuv           python@3.9
    brotli          gh              libyaml         readline
    c-ares          go              mpdecimal       ruby
    deno            gradle          nghttp2         sqlite
    diff-so-fancy   icu4c           node            xz
    fnm             jemalloc        openjdk         yarn
    fzf             libev           openssl@1.1     z
    
  • brew update on m1's have turned out to be super annoying. this helped me: arch -x86_64 brew install YOUR_PACKAGE

  • brew install bat

  • Github CLI: brew install github/gh/gh

    • you need to login to git - if you have 2fa enabled, you cant use your normal github password. try pushing to a repo and enter in a Personal Access Token for password.
    • then run gh auth login
    • add GitHub SSH key (not optional)
  • brew install fzf - fuzzy finder - usage example is here

  • brew install node

    • Node.js/NPM
    • npm login
    • npm config set loglevel
    • sudo npm install netlify-cli -g
    • npm i -g sign-bunny fortune-node parrotsay
    • npm install -g undollar for removing $
    • sudo npm install -g trash-cli
  • brew install yarn --ignore-dependencies - yarn note

  • you may need to work around Mac OS Sierra

  • brew install z - REALLY GOOD TRY IT

  • Misc

  • Setup Apps
  • Emojis: https://matthewpalmer.net/rocket/
  • Password Manager: I use 1password for company and lastpass for personal
  • Window Manager: https://www.spectacleapp.com/ launch at login
  • Clipboard Manager: https://clipy-app.com/ or https://yippy.mattdavo.com/ (untested)
  • Loom: https://www.loom.com/desktop
  • Zoom: https://zoom.us/download
  • Screenshots: https://cleanshot.com/ (previously used https://zapier.com/zappy). Browser extension - Lightshot
  • Caffeine (Keep Mac awake for talks): https://intelliscapesolutions.com/apps/caffeine
  • NoTunes - disable itunes/apple music
  • Video capture: https://getkap.co/
  • Dual Screen: https://www.duetdisplay.com/
  • Gifs: Licecap
  • Slack or Discord
  • OBS: https://obsproject.com/
  • Transcribing: https://www.descript.com/download/mac
  • SkyFonts: https://www.fonts.com/web-fonts/google
  • Microsoft Todo: https://apps.apple.com/app/apple-store/id1274495053?mt=8
  • Stretchly: https://hovancik.net/stretchly/
  • Disk Space: Disk Inventory X - you can clean node modules with this bash command or as a cronjob
  • Replay: download - https://www.notion.so/Replay-Docs-56758667f53a4d51b7c6fc7a641adb02
  • SimpleNote: https://apps.apple.com/us/app/simplenote/id692867256?ls=1&mt=12
  • Superhuman for Mac and https://mail.superhuman.com
  • Notion: https://www.notion.so/desktop
  • App Search/Utils: https://www.alfredapp.com/
  • Editor: Download VS Code (I used to use Insiders but the popups are super annoying). use Settings Sync to sync across machines

    • have to set up powerline fonts "Meslo LG M for Powerline" (download)
    • auto-close-tag v0.5.6
    • auto-rename-tag v0.0.15
    • Bookmarks v9.1.0
    • code-settings-sync v3.1.2
    • debugger-for-chrome v4.10.2
    • es7-react-js-snippets v1.8.7
    • graphql-for-vscode v1.12.1
    • mdx v0.1.0
    • prettier-vscode v1.6.1
    • python v2018.9.2
    • python v0.2.3
    • rainbow-brackets v0.0.6 - this is now deprecated, use the native "editor.bracketPairColorization.enabled": true
    • shades-of-purple v3.17.0
    • vscode-graphql v0.1.5
    • vscode-import-cost v2.9.0
    • vscode-styled-components v0.0.23
    • vscode-wakatime v1.2.3
    • TabNine AI completions
    • GitHub Copilot
    • to try: File Utils - recommended by Stolinski
    • Here's the full list you can run from command line
    code --install-extension 2gua.rainbow-brackets
    code --install-extension ahmadawais.shades-of-purple
    code --install-extension austenc.tailwind-docs
    code --install-extension bradlc.vscode-tailwindcss
    code --install-extension cpylua.language-postcss
    code --install-extension dbaeumer.vscode-eslint
    code --install-extension dsznajder.es7-react-js-snippets
    code --install-extension esbenp.prettier-vscode
    code --install-extension formulahendry.auto-close-tag
    code --install-extension formulahendry.auto-rename-tag
    code --install-extension GabrielNordeborn.vscode-graphiql-explorer
    code --install-extension GitHub.copilot
    code --install-extension golang.go
    code --install-extension heybourn.headwind
    code --install-extension jpoissonnier.vscode-styled-components
    code --install-extension kgscott.retreon
    code --install-extension kumar-harsh.graphql-for-vscode
    code --install-extension luyizhi.vscode-graphql
    code --install-extension ms-python.python
    code --install-extension ms-python.vscode-pylance
    code --install-extension ms-toolsai.jupyter
    code --install-extension msjsdiag.debugger-for-chrome
    code --install-extension NickScialli.svelte-dark
    code --install-extension octref.vetur
    code --install-extension oderwat.indent-rainbow
    code --install-extension sdras.night-owl
    code --install-extension silvenon.mdx
    code --install-extension svelte.svelte-vscode
    code --install-extension TabNine.tabnine-vscode
    code --install-extension ThreadHeap.serverless-ide-vscode
    code --install-extension tht13.python
    code --install-extension WakaTime.vscode-wakatime
    code --install-extension Wattenberger.footsteps
    code --install-extension wix.vscode-import-cost
    
  • Other good "new laptop setup" lists:

    26

    This website collects cookies to deliver better user experience

    My 2021 New Mac Setup