When I started blogging a few years back, I did so at Tumblr. Although I don’t use my blog much, I am planning to publish the occasional article still, and it felt increasingly weird just being me and a bunch of teenagers on there.
I considered Medium, but for a while I’ve wanted to self-host my blog. The obvious option was always something like Wordpress or Ghost, but I didn’t really want the hassle of another piece of internet-facing software to be kept patched and updated, and paying for someone else to do it for me felt ridiculous for something I use so infrequently.
Then I noticed Jekyll, and I loved the concept of an easily themable static site generator that gives you a blog that looks every bit as good as any modern dynamic blogging platform, but can be statically hosted on any old web host (Dreamhost in my case). However, I hit the standard Ruby problems of everything clashing with everything else whenever I set it up. So I looked around for alternatives, and found Hugo, which is essentially the same idea implemented in Go, which makes for a much simpler install. It also happens to have blazingly fast performance.
This kind of system isn’t for everyone - you really have to be happy in a text editor - but as a developer at heart I personally find it really clean and easy to use. Authoring in Markdown is natural and fast, and as I save the local server picks up the changes and the browser automatically updates. I can use the Git workflow I’m used to to ensure my content is safe and versioned. When I want to pubish, I just type ‘hugo’ to update the static website and do a git commit and push to BitBucket. A simple web hook then initiates a pull to my hosting folder.
I also really like having proper control of my content, and having it in a clean, standardised, file-based format. Actually getting information out of Tumblr was a bit of a pain - I tried various Wordpress Tumblr importer plugins in a temporary Wordpress Docker install on my laptops as a staging post, but most seemed to have problems. In the end, this web based tool did the job - thanks Ben Ward. Once in Wordpress XML form, importing to Hugo was a one-liner on the command line. At this point, there was a fair bit of cleaning to do - the Markdown still contained a lot of ugly HTML, presumably originated in Tumblr’s web-based GUI editor and hard to convert, and although it rendered fine through Hugo it just made me sad. But now, I can look at a GitHub directory full of pleasant Markdown and know that I can transform it to whatever I want to in the future.