The Hidden Blog

As it turns out, I do have a hostname.

From Hugo to Kirby

Published on Jul 20, 2024

It's this time of the year again where I'm switching blogging engines, instead of writing blog posts. As you can probably not see (I tried to manually recreate my old Hugo theme) my blog is now running on Kirby CMS. It's a file based blogging engine written in PHP and after a months long migration everything seems to work and it looks and feels more or less like my old blog.

But why?

My main motivation for switching away from Hugo was that I've come to the conclusion that while Hugo is nice and easy to run, it's also very annoying to actually write posts in. You have to create a new file that already has the name of the final url slug, open it in iA Writer, fill out the post meta data, write the actual post, drag and drop images into the correct place in the filesystem and manually link them by filename in your text. After that I'd have to build and rsync the blog to my server. The main annoyance however was that in the preview mode of iA writer I'd never see the images in the previewed post, because it couldn't resolve the file paths.

How painful was the migration?

Pretty painful unfortunately! The themes that are available for Kirby are usually not blogging themes, RSS feeds don't come by default and the template that I bought turned out to be not done that well. It resulted in me having to fix and change a lot of things myself. I also write a migration script in PHP that converted my Hugo posts into Kirby Post objects (It supports markdown blocks), which worked pretty well except of some broken image paths that I had to fix manually.

If you subscribe to my posts via RSS / Atom you probably saw some duplicates (Sorry about that!), which I mostly blame on the very loose standard and some typos in my feed definitions (Thanks Manu for spotting!). I wish Kirby would come with a good feed feature or blogging mode by default.

Deploying it was pretty easy as it's just a simple PHP app, the main confusion was to get the nginx config right as all the examples are usually for Apache or have rule for outdated versions of Kirby. The community around Kirby is nice and helpful and I was able to answer all my questions through their forum (or myself, after posting a question of course).

The writing interface of Kirby

Conclusion

If I would've known how much work that was going to be I would've probably decided to write a nicer editing interface for Hugo which just places files in the right place and triggers a build. For now I'm happy with the setup and hope to write more than 2 posts per year!