Skip to main content

I Got 99 Problems, But Hugo Ain't One

Author
Mitchell Smith

I Got 99 Problems, But Hugo Ain’t One
#

As a DevOps engineer, I spend my days deep in infrastructure. Servers, Kubernetes clusters, CI/CD pipelines—this is the world I live in. But when it came to my personal website, I wanted something different. I didn’t want to optimize server performance, constantly apply security updates, or argue with myself about whether Kubernetes is wildly overkill for a blog, I just wanted to focus on sharing DevOps tips and tricks, not maintaining yet another production system.

A Brief History of Struggles
#

Over the years, my site has gone through more phases than I’d like to admit. It’s lived on WordPress, Drupal, and Ghost. Each of these platforms has its merits, sure—but they also come with baggage. And by baggage, I mean constant upkeep.

Drupal is where it all started: undeniably powerful, and capable of building just about any kind of website you can imagine. But that power comes at a cost. Major releases have a habit of introducing breaking changes, and plugins don’t always keep pace. On top of that, finding truly awesome themes is harder than it should be, and Drupal increasingly nudges you toward building your own theme from scratch — which is great if you’re a designer; I am definitely not! In the end, I found myself spending more time maintaining the platform than using it to share content.

WordPress came next. It seemed like a great idea at the time: click a few buttons, install a theme, throw in a plugin or twelve and boom — you’ve got yourself a website. But it’s like having a pet dinosaur: everything works fine … until it doesn’t.

First come the relentless security patches, then the speed optimizations. Install a new theme and it quietly brings along 15 plugins of its own, and suddenly your site is running slower than a rainy weekend — so back you go, tuning performance again. Add a CDN, enable FastCGI caching, set up Redis object caching, maybe even bump the server size just in case.

And just when things finally feel stable, a new PHP version gets released. Something breaks. Time to update plugins. And themes. And WordPress itself. Oh — and did I mention the security updates?

Before long, most of my time was spent keeping the site alive rather than improving it. Writing content? That became an afterthought.

Next came Ghost, and Ghost was definitely a breath of fresh air: minimal, fast, and focused. The in-built editor is an awesome writing experience, it has some great looking themes, it’s pretty performant, and its lack of plugins felt like a feature rather than a limitation. Perhaps I had finally found the right tool for the job?

Then August 2025 rolled around and Ghost 6.0 dropped. With it came some genuinely cool stuff — built-in social ActivityPub support, Tinybird web analytics, a Docker-first infrastructure — basically all the bells and whistles you didn’t know you needed until you did. And as exciting as all of that was, a tiny part of me went: here we go again…

Sure, I could have just handed off site management to a company like MagicPages (seriously, they’re brilliant) and let them juggle the multiple components, security updates, infrastructure tuning, and site backups. But as a DevOps engineer, there’s something in me that refuses to let someone else babysit my infrastructure — even if it would free me up to write more. I swear I tried to rationalize it. Really, I did.

Enter Hugo: The Content-Focused Hero
#

And then… came Hugo.

I’ll be honest — at first, I was skeptical. I’d hear people rave about static site generators, and over the years had dabbled with a few (Jekyll, Middleman, Eleventy) and thought, sure, I’ll just spend even more time wrestling with templates, CSS, and JavaScript than actually writing my next post. But nope — Hugo was different.

You see, Hugo isn’t a flashy toy with a hundred features I’ll never use. It’s fast. It’s simple. It doesn’t try to do everything — it just gets out of the way so I can actually write.

As a DevOps engineer, working with Git repositories is instinctive — it’s the workflow I’m used to. So the moment I realised I could store all my posts in Git, track every change, and deploy my site with a single command — I knew I had found nirvana. There’s something deeply satisfying about knowing every post is safely tucked away in a repo. I don’t have to worry about unexpected site outages caused by a rogue plugin update or whatever mysterious thing decided to change itself while I wasn’t looking. It’s all versioned. It’s all backed up. And most importantly: I can write without constantly worrying about the tech powering my site — or how terrifying my cloud bill will be this month.

With Hugo, you write, you commit, you deploy — and that’s it. No plugin juggling. No unexpected breakages. Just a site that works the way you expect.

I don’t have to tweak and update and optimize a hundred different moving parts. With Hugo, I just write — or, well, I should just write. The only thing standing between me and a new blog post these days is procrastination… and deciding which magical coffee bean will finally turn me into a productivity wizard.