Except that this someone else has more resources than I do. I’ve had a personal blog for quite several years now, and it went through multiple platforms. It started on some social media (Tumblr?) that wasn’t really meant to be used as a blog, then at some point I self-hosted on WordPress, then it became a pain to maintain (especially with the constant WordPress vulnerabilities) for a blog that only exists for my self-satisfaction. For a while I had it hosted on the cloud version of WordPress or some other social media platform, then got into a JavaScript phase and migrated everything to self-hosted Ghost. Then had some woes with a PostgreSQL update gone bad and scraped most of the content.

And then I completely forgot about it.

For the past few years, the only times I am reminded of this blog’s existence is when there is a power outage and I receive a notification that the blog is down since I had it monitored on UptimeRobot. This in turn actually served as a notification that the server was down and I cared more about the other stuff the server was doing, like Active Directory or VPN and all that good stuff.

And then this past month the power utility company was so unreliable there were at least 4 power outages in the span of 3 weeks. #2 and #3 happened in such a short span of time that the UPS battery didn’t even get the time to recharge. This got me re-evaluating what needs to remain on-premise and what can go to the could.

And so the blog goes back to the cloud. Some of the other stuff I am running on that server will slowly follow suit, once I have more time and motivation to plan and execute the migration, but for the time being I’ll start with the least impactful migration which is the blog.

Plus, a lot of things happened in the couple of years since I last updated my blog. Nowadays I write more Go than JavaScript, plus I was a proponent of static typing to begin with. In recent years Ghost’s update process became very painless with the CLI they provide, but I often find ssh’ing into my server and running the update to be a chore. Plus, with the low frequency at which I update my blog, I don’t need PostgresSQL or MySQL as a backing store, flat files is “good enough”. And to be honest I just wanted to try out Hugo because it was written in Go.

That and the whole GitOps thing. And there you have it, blog migrated to Hugo + hosted on Netlify with all that automatic TLS and HSTS goodness. One less custom Let’s Encrypt script or Nginx tweaking (I actually liked that part though). Now everything is kept inside a Git repository and writing posts is as simple as adding a Markdown file, editing in VS Code and pushing to the repo. That’s perhaps more manual steps involved than logging into the Ghost website and directly adding content, however I find this approach to be more of my liking. Plus I’ve grown used to editing pages in plain Markdown on Mkdocs or for reports and documentation I write for Matsuri Japon, the later being automatically converted to PDF and uploaded to Google Drive (for non-techs to consume) upon pushing to the repo.