My Move from MAMP Pro to Vagrant for WordPress Development

I recently upgraded to a new computer and in doing so shook up my entire development environment. My last was based on MAMP Pro for a number of reasons. Primarily: it just worked. I rarely had to bring up the GUI, everything was just ‘native’ and I went about my business building stuff for the lowest common WordPress server-denominator. I didn’t need to tweak anything nor did I want to customize anything about my development environment because doing so would potentially introduce issues with client environments (which can be anything).

Some time ago a project called VVV surfaced (after Vagrant arrived and blew everyone’s mind) and many of my peers flocked to it. I checked it out too. It surely was clever, but felt like too much for me. I didn’t really need to mirror client development environments, and I already had everything up and running locally. Switching from that would have slowed me down (at least a little) and the inconvenience didn’t seem worth it. It sounds petty but even going so far as introducing a new command line workflow was a turn off.

Don’t get me wrong, I love the idea of the command line and I do enjoy using it when I’m able to, but in the same breath it feels kind of janky to me. It’s janky, but janky in an “anything is possible” way which is really quite awesome if I’m honest. I understand that the command line is way more powerful (and likely speedier) than any GUI can mimic, but I like looking at good UI when I’m committing code to git. I like stepping through code in my debugger, and I like the bells and whistles that come with an interface to look at. Some call it bloat but it’s something I’ve come to know and enjoy.

Fast forward a while and in the time since first discovering VVV the community has been hard at work. There has been so much work put into VVV itself and VVV as a platform that it’s really hard to ignore. I decided that when my new machine arrived I was going to go for it, leaving my old development environment fully in tact as a back up parachute. My primary inspiration for making the leap wasn’t so much for the Vagrant philosophy of custom, portable, disposable boxes; it was for VVV. VVV ships with unit testing and profiling baked right in. I need to work on my skills in both of those areas and getting up and running for testing and profiling in MAMP isn’t something I want to tinker with.

I got up and running with VVV in a matter of minutes, and with the help of a few build scripts got my ‘new client’ workflow up and running. A few minutes after that my active client project was good to go in VVV and everything felt good. I’ve been running with it for a couple of weeks now and I’ve got to say it’s a really slick workflow. It’s fully taken the place of MAMP Pro for me even down to interacting with the environment itself, it feels like it’s “just there” and “just works”. This comes down to a few tools that have come into play from the Vagrant/VVV community:

VVV Site Wizard

vvv-site-wizard is a project from Alison Barrett that really makes life easier. One command and you can get a new client site set up in VVV with many useful parameters. The one I really like is the ability to set up a live site URL as an image proxy out of the box. No need to worry about your uploads folder, the VVV site will just pull Media from the live site. On top of that it will get your new site set up in the VVV box with whatever URL you want. SO GOOD.

Dashboard for Varying Vagrant Vagrants

VVV-Dashboard is something that Robert Neu clued me into, and it’s my new browser default page. Wicked slick.

Vagrant Manager for OS X

My most recent discovery comes from Andrew Norcross called Vagrant Manager for OS X and I think the best way to describe what it does is with a gif:


Amazing. I was wondering what the best practice for managing VVV when it comes to separate boxes and thought it was a bit intimidating to manage multiple boxes on the command line. This project is right up my alley. After some public contemplation on Twitter, I found that some others will have either one VVV box for everything they do, or have a couple. One box for client work and another for personal projects. I’m going to pursue the latter and Vagrant Manager is going to make that so great to work with. The project is public on GitHub which is awesome as well.

VVV is great for me

I still think MAMP Pro is a fantastic way to develop locally and I readily recommend it to fellow developers. As my focus refined, however, I found that Vagrant, specifically VVV, would provide me with the tools I want to utilize in a much more streamlined fashion. It didn’t take much time at all to move to a new development platform, and if you feel like VVV has something to offer I think it’d be a great thing to spend and afternoon with!