A few months ago, I started thinking about creating a blog to collect my writings.
Nothing too ambitious. Just a place for useful articles, random technical notes, and maybe some stories about projects or interesting things happening in my daily life.
The original plan was simple: run everything from my home server and build the site using Hugo. Hugo has been around for a long time and is probably one of the most popular static site generators out there. I had played with it years ago, although I had no idea what the ecosystem looked like these days.
One thing I remembered was the huge number of available themes. That’s always a plus because, honestly, frontend work is stressful for me.
Not because I don’t understand user experience.
The real problem is that creating a beautiful interface feels incredibly difficult. I don’t have the artistic instincts required to design something visually appealing from scratch. I can tell when something looks good, but producing it myself is a completely different story.
So I started exploring Hugo themes.
Some of them looked great at first glance, but after downloading and inspecting them, many seemed focused on a single-page experience. In my head, I wanted something a little more traditional: a landing page, a blog section, an about page, and maybe a changelog or devlog for future projects.
While thinking about this, I visited the websites of a few programmers whose work I enjoy reading. People like Andrew Kelley and Matklad. Their websites are simple, clean, and focused on content.
Matklad’s site in particular caught my attention. I believe it’s built with Jekyll.
Naturally, my next thought was: “Maybe I should take a look at Jekyll.”
A few minutes later, my conclusion was equally simple:
“Nope.”
There was nothing wrong with it. I just wasn’t interested enough to spend time learning another platform.
Meanwhile, on another monitor, I had been exploring Zig.
Then I remembered that Loris Cro had created something called Zine, which is essentially a static site generator built around the Zig ecosystem. I had heard about it before but never actually tried it.
Since I was already looking into Zig, I figured I might as well take a look.
I started reading the documentation, checking examples, and exploring related tools like Ziggy, SuperHTML, and SuperMD.
My first impression?
It looked refreshingly simple.
Loris mentioned that Zine was inspired by Hugo, and that was immediately obvious. But I found myself preferring the scripting approach used by Zine. It felt more natural to me.
So far, so good.
Then I looked at the default layout.
Simple. Clean. Practical.
Actually, it was pretty close to what I wanted.
At that point, I thought:
“Alright, let’s just customize this thing.”
And that’s when I hit the same wall again.
Good user interface design.
My old nemesis.
Fortunately, I’ve learned something about myself over the years. While creating a great design from a blank canvas is difficult for me, improving an existing design is much easier. And implementing things is where I feel most comfortable.
So I opened my browser.
This is exactly the kind of problem where AI can help.
I asked ChatGPT to generate a landing page with some basic navigation: Home, About, Blog, and Devlog.
A few seconds later, I had something that looked pretty good.
To be fair, almost everything looks good to me when compared to a blank page.
Still, I needed a second opinion.
So I showed it to my wife, whose design taste is significantly better than mine.
After receiving her approval, I asked Claude to help clean up the CSS styling, especially for markdown content.
Once I had the HTML and CSS generated by AI, it was time for the fun part: implementing everything inside my Zine site.
That part felt familiar.
And enjoyable.
A little tweaking here, some adjustments there, a few rounds of experimentation, and eventually everything started coming together.
And the rest is history.
This blog now exists because a simple idea turned into a small exploration of static site generators, Zig tooling, AI-assisted design, and my ongoing attempt to avoid becoming a frontend developer.
At least for now.