How I Tried to Outbuild Hugo (And Why I Came Crawling Back)

A tale of Ruby, Go, broken builds, and finally just making a Hugo theme like a sane person.


Like many developers, I’ve had the thought:
“I could build a better static site generator.”

And like many developers, I was wrong.

Chapter 1: The Ruby Rumble

It all started with Siru, my minimalist static site engine written in Ruby. I wanted something clean, fast, and dependency-light. Instead, I got:

  • A gemfile from the underworld
  • Native extension errors that only appeared on Tuesdays
  • Ruby version mismatches that made me question reality

I spent more time debugging bundle install than actually writing content. It was like trying to build a treehouse with IKEA instructions written in Klingon.

So I did what any reasonable person would do…

Chapter 2: Go Big or Go Home

Enter BazelBlog, my attempt to rebuild the idea in Go. I thought:
“If Ruby was too fragile, Go will be rock solid!”

And it was… until I started getting fancy.

I added Bazel. Then I added templating. Then I added a custom build pipeline. Then I added a second brain. Then I broke everything.

Every change introduced a new bug. Every fix broke something else. It was like playing Jenga with my sanity.

Eventually, I realized I had created a static site generator so complex that it could probably run Kubernetes clusters—but not actually generate a blog post.

Chapter 3: Hugo, Forgive Me

So I gave up. I stopped trying to reinvent the wheel and went back to what works: Hugo.

But this time, I didn’t just settle for the default look. I built my own Hugo theme from scratch—something that actually looks the way I want, without fighting the engine underneath.

No more dependency hell. No more broken builds. Just Markdown, templates, and a site that works.

The Moral of the Story

Sometimes the best tool is the one that already exists.
And sometimes the best way to make it yours is to theme it, not replace it.

So here I am, happily blogging with Hugo, sipping coffee instead of debugging build scripts, and wondering why I didn’t just do this from the start.


TL;DR:
I built a static site engine in Ruby → it broke.
I rebuilt it in Go → it broke harder.
I went back to Hugo → it just works.
Now I have a theme I love and a blog that doesn’t fight me.

Check out the theme here -> parxxix, and maybe—just maybe—learn from my mistakes.

Happy blogging!