Blog software du jour - Hugo

October 9, 2015
hugo blog hosting

A few years ago, I’d migrated from Wordpress to a static site generator for my blog as part of migrating off a shared web host to a VPS. I’d started with Octopress since it had been getting a fair bit of buzz at the time. I was pretty happy with the rendered output, but the underlying software had its flaws. The author (Brandon Mathis) highlighted some of those flaws in his post on the road to Octopress 3.0 and in various interviews I’ve heard him give. In reality, Octopress 2 was less of a blog engine than it was some guy’s Jekyll-based blog with a mix of plugins, tweaks, and configurations to end up with the feature set he wanted. It made getting a nice result out of Jekyll easy, so a lot of folks (myself included) simply forked his repo and piled our own changes/tweaks on top of it. If you decide you want to update based on improvements he’d made, you were stuck trying to git merge in his changes and hoping you didn’t break anything or have too many merge conflicts to resolve as a result.

Mathis seems to have learned a lot from his work trying to maintain version 2 as something others could consume. Version 3 aims to be modular (Octopress functionality delivered as a large collection of ruby gems you can pick and choose between) and should better complement Jekyll than before. It seems like it’s been a major undertaking (they’ve got ~50 gems at this point). I suppose it’s not entirely surprising to me that they haven’t yet made a big public announcement about 3.0’s release even though they’ve been working on the rewrite for ~3 years. Based on gem versions, it certainly looks like individual gems are “production-ready”, but I’m guessing there are some things they’ve decided are release requirements that they still haven’t ironed out yet. Last I’d heard that involved the theme system and probably some documentation including a migration path from 2 to 3, but that was several months ago.

I really hadn’t intended for this to be a post about Octopress 3, but that’s certainly what it seems to have turned into. I migrated my blog from Octopress 2 to 3 a back in February and in June moved it to be hosted on Github Pages. I’ve found minor things that annoyed me, so I decided to try out Hugo. It took a little bit of work to get my content ported over and a theme tweaked to my liking, but overall I’ve been pretty impressed so far. It’s still a very young project, but it’s blazing fast to render a few hundred posts and gives me an opportunity to poke around in some Go code since I’ve been looking for an excuse. Being such a young project, it’s not without its issues (documented examples for deploying to Github pages are… complex), but it certainly has some upsides. Downloading a single Go binary and your content is all it takes to set up a system to build sites with it unlike Octopress where I’m likely to install a mountain of ruby stuff to get to that point. Not a big deal for me since I’m doing a lot of ruby these days anyway, but that’s not something I could readily hand off to someone else. I may end up coming back to Octopress due to my greater familiarity with ruby, but for now I’m pretty sold on Hugo and may need to try it out for some other semi-static websites.

3dprinting12 alabama7 amalgam4 android2 apple21 auto6 blog24 cat-diary5 cats18 chicago3 college18 comparch5 cooking2 define30 film19 gaming37 georgia2 halloween2 hosting13 hpc11 hugo3 humor35 huntsville5 illinois37 ios2 ireland3 kids5 meme5 monte-sano2 music23 photography35 politics2 programming11 pumpkins2 raid6 rants19 reading25 research11 snow6 sysadmin18 tales-of-the-weird14 tech54 tennessee2 travel11 video8 work29