Setup a Mac Dev Machine From Scratch

I've always enjoyed watching developers work. Which editor do they use? Do they prefer Terminal or iTerm? Are they using a virtual machine? If only in small pieces, I've learned from every developer I've ever worked with.

In this series, come along as I setup a Mac dev machine from scratch.

Start Series

Share this series on:

  • 01

    Episode 1 Run Time 3:37

    iTerm and Oh-My-Zsh Free

    Though Terminal comes out of the box, I prefer to use iTerm and Oh-My-Zsh. Even for the command-line, visuals matter!
  • 02

    Episode 2 Run Time 2:23

    A Prettier Sublime Text Free

    Let's pull in Sublime Text in this episode. However, I'm not the biggest fan of the stock install, in terms of visuals. Instead, we'll pull in the excellent Material theme. We'll also pull in a few monospaced fonts that you might like, including Roboto Mono, Fira Code, and Source Code Pro.

    To dig more heavily into Sublime Text configuration, check out the dedicated series here at Laracasts.

  • 03

    Episode 3 Run Time 3:36

    A Prettier PHPStorm Free

    It may sound foolish, but it's true that I do use two editors in my day-to-day workflow. I find that PHPStorm particularly provides some useful refactoring and analysis capabilities, as opposed to a tool like Sublime Text. In this episode, we'll install it and begin configuring and improving the visuals.

  • 04

    Episode 4 Run Time 1:48

    Node, NPM, and Yarn Free

    Fortunately, Node is one of the more simple tools in our ecosystem to install. Just a few clicks will set us up. We'll also take a few moments to pull in Yarn, which provides some significant performance and security improvements over NPM.

  • 05

    Episode 5 Run Time 1:20

    PHP 7 and MariaDB in Eighty Seconds Free

    Though every new Mac comes with PHP pre-installed, it's almost always out of date. My new machine ships with PHP 5.6! We're at 7.1 now, so let's install Homebrew to pull in the latest version, as well as MariaDB (a replacement for MySQL).

  • 06

    Episode 6 Run Time 2:20

    Composer Free

    Every respectable PHP developer must have Composer installed. It's the defacto dependency manager for the language, and is leveraged by nearly all modern frameworks and libraries.

  • 07

    Episode 7 Run Time 4:54

    PHPUnit Setup and Sublime Text Workflow Free

    In this episode, we'll install PHPUnit globally, and figure out a clean workflow for triggering it in Sublime Text. Though a number of packages are available, I happen to prefer the simple Sublime-PHPUnit option, which can be installed through GitHub.

  • 08

    Episode 8 Run Time 2:16

    Map Caps Lock to Anything Free

    I'm fairly certain that I'm the only one who does this, but hear me out: I remap Caps Lock to Shift. Yes, not Control or Escape; I said Shift. In this episode, I'll explain why, while demonstrating how to go about performing such a remapping (with Karabiner Elements).

  • 09

    Episode 9 Run Time 3:01

    Simple Git Aliases Free

    Though Git allows you to define any number of aliases, they're still too long to write in this author's opinion. Instead, let's create a dedicated file on our machine for aliases, and build up a handful of Git-specific ones.

  • 10

    Episode 10 Run Time 3:22

    Setup Laravel Valet Free

    In the past, I've reached for VirtualBox and Vagrant to setup my development environment. However, these days, for most projects in our space, Laravel Valet is a far more simple and light-weight alternative. I love every spec of it, and you will too!

  • 11

    Episode 11 Run Time 0:45

    Sequel Pro Free

    There are a number of MySQL GUIs for the Mac, but I've only ever used Sequel Pro. When you're that satisfied with a tool or product, why bother looking for something else? It won't be as good.

  • 12

    Episode 12 Run Time 2:10

    SSH Keys and GitHub Free

    SSH keys provide a secure way to connect and login to a remote machine or server. Let's generate a default key, and then hook it up to GitHub, so that I can easily pull and push to my repositories.