March 16, 2016

The Great WordPress Migration: Part 2

Migrating to WordPress

Now that I’ve decided to switch to WordPress, the first thing I need to do is figure out the best way to develop my website locally. The last time I did this, the de facto standard development environment was MAMP. With a simple download, you could easily set up a local server, pop open phpMyAdmin, create a database, and finish up with WordPress’ famous 5-minute installation.

My first hunch is that there’s a better, modern way to set up a local WordPress environment. My second hunch is that the modern approach is really complicated and I’ll default to MAMP, but let’s see what’s out there…

Modern WordPress Development

After hunting around online, I came across a few articles about setting up modern WordPress development environments. Most seemed to point to using something like Vagrant or Docker to set up a sandboxed environment and work on your website there. The most friendly and recent article was from the WordPress hosting service Flywheel.

Following along, I downloaded and installed both VirtualBox and Vagrant. Simple enough.

The next step has you grab [VagrantPress], a nicely packaged WordPress environment for Vagrant. While the instructions in the post were easy to follow along with, when starting up the Vagrant instance for the first time, I immediately ran into an error:

Vagrant: Unknown configuration section 'hostsupdate'.

Hmm, they didn’t mention that in the article. Peeking at the VagrantPress repo, I quickly learned that Vagrant Hostsupdater was also required. Another hop, skip, and a jump to that repo, and some quick Terminal action, and I was up and running…

Wait, that’s a lie. Even after installing that, things went wrong. Watching my terminal output over the course of about 6-8 minutes (I was on Starbucks wifi), I saw a number of failed dependencies. Which is when my patience wore thin.

All I want to do is get a nice little server running and start coding my theme. I’m an old school guy, I like safety razors and jazz. I don’t have much patience to learn a handful of new tools to work on a WordPress theme.

I understand the arguments for something like Vagrant, mainly:

  • Your environment is completely independent from the rest of your machine
  • Virtual machines can be started/stopped easily
  • Virtual machines can run just about anything
  • Environments can be easily shared with others

But when it comes down to it, I don’t care much about those things. Something like MAMP is ridiculously easy to start and stop, no terminal involved. It runs what I need and I’m not working with a large team. It’s just me working on a WordPress site with Gilmore Girls on in the background (don’t judge, great show). So, let’s see how MAMP compares to the process outlined above…

Old School WordPress Development

Time to download and install MAMP: 1.5 minutes.

Time to download latest version of WordPress: 10 seconds.

Time to open MAMP, point to WordPress, pop into phpMyAdmin and set up a database, update my wp-config file, and finish the famous 5-minute installation: 2 minutes, tops.

That’s the kind of development environment setup I like. Simple, painless, works. What more could you want?

Sure, it’s not sandboxed. It doesn’t have every tool under the sun included. But who cares? I’m working on this for myself and want something easy to use that lets me focus on the work that needs to be done. MAMP fits the bill, so I’m sticking with it.

I’m tempted to use this experience as a place to rant on the complexity of modern web development tools, but I’ll hold my tongue. I know that those complex tools are horribly useful in many situations (working with teams, not reinventing the wheel, etc.), but for something like this, it’s utterly unnecessary.

I know that when I start getting content into the database, there will eventually be a disconnect between development and production. That’s a bridge I’ll cross when I come to it.

Right now, I’m not thinking too much about potential problems down the road—I just want to start building a theme.

Now it’s time to dig into how to actually do that. Join me next week as I take a look at starter themes, frameworks, and making some up-front design decisions. Anyone know if Starkers is still a thing?