I migrated this blog from Zola to WordPress

ngalaiko1 pts0 comments

Compiled Thoughts | Olav Ringdal writes about software. There is a button that publishes.

This blog has moved. Read it at its new home.

Skip to content

Compiled Thoughts

Olav Ringdal writes about software. There is a button that publishes.

Home<br>Sample Page

Hello world!

Posted on June 12, 2026 by olav

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

Posted in Uncategorized

1 Comment

How I migrated this blog from Zola to WordPress

Posted on May 24, 2026 by olav

This blog runs on WordPress now. If you have been here since the beginning, take a moment. I’ll wait.

The audit

In January, snowed in at my mother’s place in Lillehammer, I did something I had been avoiding for thirteen years: I read my own blog. All of it. Every incarnation. The whole archive, end to end.

It took eleven minutes.

Here is the complete published output of Compiled Thoughts, 2013–2026:

2013 — How I migrated this blog from WordPress to Jekyll. ("The friction is gone. See you next week.")

2015 — How I migrated this blog from Jekyll to Hugo. ("I have a drafts folder now. There are four drafts in it.")

2018 — How I migrated this blog from Hugo to Gatsby. ("The friction is gone now; the writing starts for real.")

2020 — How I migrated this blog from Gatsby to Next.js. ("Sorting algorithms post: October. Hold me to it.")

2022 — How I migrated this blog from Next.js to Astro. ("The platform churn is, structurally, over.")

2023 — How I migrated this blog from Astro to Eleventy. ("There is barely anything left between me and the writing now.")

2024 — How I migrated this blog from Eleventy to Zola. ("There is nothing left to migrate to.")

Seven posts. Seven migrations. Each one ends by promising that the writing starts now, and each one is followed by eighteen months of silence and another migration. The sorting-algorithms post has been "almost done" since the Obama administration. My blog is not a blog. It is a changelog for itself.

Nothing is wrong with Zola

I want to be precise about this, because every post above starts by blaming the tool, and I am breaking the cycle: Zola did nothing wrong. It builds in 38 milliseconds. It is one binary. It asked nothing of me. For eighteen months it sat there, perfectly maintained, zero dependencies, instantly rebuilding its one post — and I did not write a word.

That was the experiment, and the result is in. The friction was never in the toolchain. I was optimizing the part of blogging that was already free, because it was easier than doing the part that costs. A static site generator cannot generate the static. The static was supposed to be me.

So: WordPress

This site now runs on WordPress — the actual one, PHP and a MySQL database and a theme from 2010, the entire LAMP-shaped crime scene I fled in 2013 because wp-admin got hacked and I decided the problem was architecture. There is no repository to maintain. There is no build step to feel feelings about. There is an editor, and in the editor there is a button, and the button says Publish , and that is the entire pipeline.

Is it slower than Zola? Every page you load here is assembled at request time by an interpreted language asking a database for the same single post it served last time. By every metric I have spent thirteen years collecting, it is the worst stack I have ever run. None of those metrics, it turns out, measured anything. The bottleneck was never the server. The bottleneck reads the comments section of Hacker News at the exact hour he sets aside for writing.

One housekeeping note for long-time readers: the yellow "this blog has moved" banner at the top of every old incarnation still works — and if you follow the banners from the top of the 2013 blog, hop by hop through every migration, you will eventually arrive back at this page. I noticed this while setting up the redirects, and I have decided to leave it exactly as it is. A man should have to look at the circle he has drawn.

The permalinks, of course, remain /year/month/title/ — seventeen years, eight platforms, zero broken URLs. It is the only promise this blog has ever kept. Fitting, then, that it’s the one we end on. Or begin on. From here the URLs just keep going around.

The next post will be about something. Anything. That’s the only spec it has to meet, and for the first time since 2009, that’s the hard part and I know it.

— Olav

Posted in Uncategorized

1 Comment

SearchSearch

Recent Posts<br>Hello world!

How I migrated this blog from Zola to WordPress

Recent Comments

Archives<br>June 2026

May 2026

Categories<br>Uncategorized

Compiled Thoughts

Proudly powered by WordPress.

blog from migrated wordpress zola post

Related Articles