The purpose of this guide is to document how to manage your Mac like a boss. After much trial and error I believe this is the fastest, most efficient method to set up a clean, organized, and up-to-date development environment for a Mac.
The overview is presented here, and the details are maintained in the wiki
I’m a polygot fullstack developer so I have a fairly complex setup. Our goals here are:
There are three very important repositories that contain all configuration data. I would like to explain the purpose of each.
dotfiles - is not actually what it sounds like. My dotfiles are actually managed by mackup. Mackup is a community-driven tool for backing up and restoring dotfiles and application settings. This repo is called dotfiles because that was it’s origin and now mainly because Strap installs it automatically (and runs /script/setup
automatically, which we leverage to install everything Homebrew can’t) along with the “homebrew-brewfile” repo below.
homebrew-brewfile - This repo contains my brewfile. This lists everything that I install via Homebrew. This is automatically processed via Strap. See the wiki for more information.
.macos - This repository contains the settings for the MacOS operating system (and some applications and utilities). The origin comes from Mathias Bynens’ amazing MacOS configuration script.
These three repos contain all of my configuration and the entire process is initiated by running Strap.
A lot of stuff. Seriously, a lot of stuff. Poke around in the Wiki
We want to use the best tools out there - e.g. the ones with the most community support and momentum and the best functionality.
Bootstrap Your System
Shell: Zsh. Zsh is awesome, really. To use Zsh like a boss we will install .oh-my-zsh. It autoupdates, has great plugins and a very active community behind it. Your ZSH settings will be backed up by Mackup below. Resources:
Terminal: iTerm2 for our terminal program. iTerm2 is free and it rocks. Your settings will be backed up by Mackup. Lately I have also been using Hyper and it’s growing on me.
Resources:
Editor: Visual Studio Code as our code editor. VSCcode replaced Atom as my main editor.
Tool Version Management: n. Manage Node versions:
Package Management: Homebrew, npm/yarn, pip. Homebrew is a community-driven package installer and an essential tool for every hacker’s toolkit. Homebrew automates the setup, compiling and linking of binaries. It also makes updating and uninstalling binaries a breeze. It will be automatically installed by Strap above. Resources:
Dotfiles Management and Backup: Mackup. Backing up and Restoring our .dotfiles (our configuration) with mackup. Mackup is a community-driven tool for backing up and restoring system and application settings. See dotfiles section below.
If you run into any issues, please open an issue on this repository and I’d love to get it fixed. Or, pull requests are always appreciated.