Developers like control. We like things to be just how we like. It tends to take some time to get things that way. This becomes a bit of a problem when you need to do a clean OS install or move to a new machine. How do you restore shell settings? Install node packages? Install your favorite apps?

There are a lot of solutions out there for automating system setups like Vagrant and Boxen but those seem a little heavy for a personal setup (though I’m open to suggestions otherwise).

In 2012, I had the chance to take a sort of git crash course from Github’s Matthew McCullough and encountered his system setup process. I’ve been using the zsh aliases and oh-my-zsh for a long while with some minor tweaks, but after a recent clean install I decided to really make it work.

Brew is a fantastic tool for installing packages that you want. But the real game changer for me was Cask. It installs Mac applications automatically right from the script. You’re limited to apps that have been added by the community and you can’t install the apps you’ve bought on the Mac App Store, but it’s a great start.

Now when I load up a fresh OS X install all I have to do is install Dropbox and let it sync, go into my dotfiles folder and run

_setupdotfiles.zsh

And I’m set. I’m sure I’ll find improvements along the way. But I thought I’d share my setup so it might benefit someone else.