I’m not a blog guy. I never was! I’ve always admired people that maintain personal (or not) blogs and keep them updated for years. During my life, I’ve tried to maintain/write/publish a lot of blogs and posts, but they all ended the same way: write a few posts and then abandon the endeavor.

Many factors helped this pattern repeat over the years:

  • Motivation: I wrote what I had to write and then just stopped.

  • Tech stack: I’ve tried a lot of blogging solutions — WordPress, GitHub Pages, Ghost, etc. They all seemed to check most of my requirements but something was always missing.

Let me elaborate on the last one first.

The Stack

Take WordPress for example. King of blogging. But maintaining a WordPress site/blog was a nightmare (by my standards). You had themes and design on one hand and constantly keeping up with updates and plugins on the other. Plus there was logging in, navigating through the chaotic menu, and missing the whole point of blogging: just write.

Ghost platform on the other hand was something closer to my needs, but being a paid platform was not for me (too expensive).

My last attempt was GitHub Pages, which had almost everything I needed, but having the repo public just wasn’t for me either.

So I abandoned the whole idea of blogging once and for all.

Until Cloudflare.

Cloudflare

I started actively using Cloudflare for a personal project and discovered that it can give you everything you need to start a site from A to Z. Yeah, vendor lock-in is a thing, but I found a process that suited me well.

I asked myself: what if I use Cloudflare like GitHub Pages but without the public repo visibility? The answer was that it was indeed possible.

So I came up with this: have a local repo with blog posts written in Markdown, push my changes, have Cloudflare build the HTML with Hugo, attach a domain to a worker, and achieve the desired outcome: a blog with a custom domain, without caring about the stack. Just write (and push) and forget.

Hugo

I fired up Claude Code and made a minimal Hugo template, nothing fancy. The theme is simple, like I’ve always wanted. Images included in posts automatically get optimized and become responsive — a big win since I also don’t have to care about dimensions, quality, and responsiveness.

The build configuration for Cloudflare is simple:

Build command: hugo --minify
Build output: /public
Build comments: Enabled

Build system version : Version 3

HUGO_VERSION 0.160.0

Then I wired up my domain to the worker and everytime I push to github, my blog gets updated instantly.

Conclusion

With almost zero cost, a simple workflow and minimal maintenance, I finally have a blogging solution that suits my needs and allows me to write without any worries about the stack.