After a little over 2 years on Middleman, I decided to move my blog back to WordPress. Middleman – and static blogs in general – are a good idea in general (especially for security and performance), but I found it more difficult to write and contribute to my own blog on a regular, ongoing basis. This was especially noticeable after I started working for NetSuite instead of contracting, because I was no longer doing all of my work on my own personal laptop everyday.
With Middleman, contributing to my blog meant setting it up and installing it on my employer’s computer (iffy) as well as my own, and finding a way to juggle draft posts between both computers – I would sometimes start a draft of a new post on my lunch break at work, and then want to finish it at home. Since I didn’t want to commit draft posts, this was an issue. There really is no easy way to have private draft posts with a static blog if you use multiple computers without committing unfinished draft posts to your blog repository. With WordPress, I can just login and publish from anywhere. Additionally, the REST API opens up a lot more possibilities too – like writing and publishing from a desktop app if I so choose.
Along the lines of easy writing and contributions, even small things like adding images to posts was a chore with Middleman since everything is manual. Copying a picture into your project is easy, but what if it’s not the correct size? What if it’s a huge 6MB photo from your iPhone? Again, all manual work. With WordPress it’s as simple a selecting the photo and clicking upload. Automatic placement in the file system, resizing, aligning left or right, and inserting into your post. Other media items are similarly easy as well. There were many times when I wanted to add a picture to a post in Middleman, but I didn’t want to go through the drudgery of manually resizing everything I wanted to use, or I didn’t have any photo editing software available at the time.
Plugins were probably the #1 thing I missed about using a static blog. With a static blog, things that were previously automated and simple were now a manual chore – like auto-posting my latest blog post to my Twitter account, for instance. Moving back to WordPress opens up a lot more possibilities. Potential solution to common problems are potentially a few clicks away.
Despite what many self aggrandizing developers say about WordPress, it is a very nice system to use from the end-user’s standpoint, and has pretty much everything you could ever want. Nearly 25% of the entire internet is powered by WordPress, so I know there is a lot of momentum and support behind it well into the future. Middleman doesn’t have the same kind of momentum, and it seems like there are new static site generators popping up every day.
I would be remiss if I didn’t also mention the drawbacks of using WordPress, and the things I did genuinely like about Middleman.
Security – Security is a tricky one. WordPress and plugins now have the ability to auto-update, so it does mitigate a lot of the risk of having an outdated installation of WordPress being a target for hacking. At the same time, however, you now have live, interpreted code running at all times, which is inherently a lot less secure than a static website frozen in time.
Hosting – No more free hosting with GitHub pages :(. This wasn’t a huge issue for me since I already have a reseller account with Site 5 web hosting (that I have had since May 10, 2008!), so I just setup a new account on it and 1-click installed WordPress.
Speed – Static sites are as fast as you can get. In comparison, WordPress is considerably slower. For instance, my static blog on GitHub pages loads in around ~60ms, and the WordPress install takes around ~500ms to load. This is a new install, so I haven’t added any caching or performance plugins, but still – quite a large difference. That’s the price you pay with a dynamic site that uses a database vs. a static one. [ Update: After adding and enabling the WP Super Cache plugin, the pages now load in a very respectable ~150ms. ]
In other words, I am making an intentional tradeoff for more convenience in WordPress over the security, cost, and speed of a static site. My goal is to write more blog posts this year, and I feel that moving to WordPress from a static site generator like Middleman is the best first step towards that goal.
Let’s see what happens in 2016!
P.S. – If you are interested in the technical details of how I converted all my Middleman posts and imported them into WordPress, I made a Gist of the code I used that might be helpful if you are looking to do the same thing.