Last week, I began the process of moving this site from Jekyll to Hugo. Jekyll is great. Really great, actually. It was my first real experiment with static sites and it was really fun and taught me a lot. But I’ve been starting to feel its limits. I pumped in everything from the past iterations of my blog, through WordPress and Tumblr, leaving me with over 1,400 posts. So building the site with Jekyll each time I wanted to update it was slowwwww. Jekyll’s other big draw – its GitHub integration is amazing – is great if you’re hosting your site there. But I’m not. I’m self-hosting. So I started looking at Hugo.
I also had a look at Middleman, which has some impressive names using it, but was just a deeply unpleasant experience as an end-user1.
So for funtimes, I wanted to see how long it would take a fresh, vanilla install of the three most popular static site generators – Jekyll, Middleman and Hugo – to render the 1,400+ individual markdown files that make up this blog.
35.35 real 31.04 user 2.50 sys
22.47 real 30.61 user 3.97 sys
8.12 real 8.96 user 1.45 sys
It’s hard to argue with this kind of performance improvement, but what sealed the deal was the fact they include a built-in
hugo import jekyll command that can get you started migrating your site across. I had my entire site migrated across in less than an hour.
- Middleman feels as if it’s been written for robots and not humans. To build your site in Jekyll, you type
jekyll build, which is easy to remember. To build it in Hugo, you just type
hugo, which is almost impossible to forget. To build your site in MM, you type
bundle exec middleman build, which yes, is easy enough to remember after you’ve done it a couple of times but my God, it’s so clunky and basically tells you everything you need to know about what it’s like to use Middleman.