Skip to content
Kruno Golubić
Go back

Why I Moved My Blog to Astro

Kruno Golubić

For the past several years, most of my writing has happened in Markdown. Documentation, technical guides, notes. I started the blog years before I was using Markdown. By the time I got comfortable with Markdown and started genuinely liking Docs-as-Code as a principle, the blog was still on WordPress.

The Reason Behind the Switch

I was looking for consistency. As a technical writer, I’ve worked with Docusaurus, Nextra and MkDocs. Static site generators are familiar territory. I knew there were good options out there. I just hadn’t gotten around to picking one for my own site.

What finally pushed me was a mix of things. I wanted to learn what Cloudflare could do beyond DNS. I was curious whether GitHub Codespaces could replace a local development setup entirely. I wanted to see how far I could get on essentially zero budget. I already owned the domain.

The question I kept coming back to: how much good, free infrastructure can you actually use to run a simple site? I wanted a real answer, not a theoretical one.

Why a CMS Is Overkill for a Personal Blog

WordPress is a capable platform. For a team, for a client site, for anything with multiple contributors or complex publishing workflows, it makes sense.

For a blog maintained by one person, it’s a lot of machinery. Database, PHP, plugin ecosystem, security updates, backups. All of that exists to support a publishing workflow that, for me, boils down to: write a file, push it, done.

A static site generator does exactly that. No database, no server-side processing, no moving parts that need maintenance.

Why Astro Specifically

I spent some time evaluating options. Hugo is fast and mature but Go templates feel foreign if you’re used to JavaScript. Jekyll has been around forever but the Ruby ecosystem is increasingly awkward to set up. Eleventy is flexible but requires more configuration to get a blog running.

Astro felt right for a few reasons. It ships minimal JavaScript by default, which matters for a content-focused site. The .astro component format is close enough to HTML that it’s readable without a learning curve. And the theme ecosystem, while smaller than Hugo’s, had what I needed.

I found AstroPaper, a minimal blog theme with dark mode, search, tags, and RSS built in. Clean code, readable structure. That was enough.

The Markdown Question

Markdown isn’t perfect. It doesn’t have the layout flexibility of HTML and CSS. There are extensions like MDX that get you closer, but they add complexity.

I made a deliberate choice here: content over presentation. I’m not trying to build a design showcase. I’m trying to build an archive of things I’ve written and learned. Markdown is good enough for that, and it stays out of the way.

The tradeoff is real. If I ever want something more visually complex, I’ll hit a ceiling. For now, that ceiling is far enough away that I’m not worried about it.

How Much Does Free Actually Mean

Domain I already had. Everything else: Cloudflare Pages free tier and GitHub free tier.

Cloudflare Pages has no bandwidth limits on the free tier, which matters for a site with a growing archive of images. GitHub Codespaces gives me a full development environment in the browser, no local install required. I can write and deploy from any computer.

Guess what: practically free is actually achievable. The whole setup costs nothing beyond the domain renewal.

Is There a More Logical Starting Point

If you’re going to learn new tools, there’s something to be said for starting with your own project. No client expectations, no production pressure, no one else affected if something breaks for an hour.

A personal blog is low stakes and high relevance. You’ll actually use it, which means you’ll notice things that don’t work and fix them. That feedback loop is useful.

The technical writing background helped too. I already had 60+ articles from the Sistemac portal, the Memgraph blog, and a few other places. Migrating that archive gave the project real scope, not just a hello world deployment.

I had the domain. I had the content. I had the curiosity. Seemed like a logical place to start.

The next post covers how I chose the specific tools: Astro, AstroPaper, Cloudflare Pages, and why GitHub Codespaces replaced a local development environment entirely.


Share this post on:

Next Post
Memgraph vs. Amazon Neptune: A Graph Database Comparison