The road to SoaPatrickTen (Part 1)

With the release of SoaPatrickTen yesterday, I thought it would be nice to go a little bit more into details into the whole process because this time it was a much bigger thing than in all the previous years when a new design was released.


Back in November, I decided it was time to make the move to a new CMS after a month-long search for a WordPress replacement. I knew from the start that migrating over 900 posts from various content types was going to be a painful and long process. I needed to come up with a system that allowed me to speed things up by automating certain things. Now there are tons of tutorials and tools to migrate from ANY CMS to WordPress because that's what most people do, but the other way around is a different story.

First I looked for official Kirby documentation or tips but there were only two plugins or scripts that were not that up to date and I guessed that with the Gutenberg editor, things got even more complicated. But then I had an idea to first export ALL posts to Markdown because I've seen Hugo do that already when I migrated all posts from WordPress to Hugo in my CMS testing phase.

So I found a script with which I could turn all blog posts into individual markdown files. And with file renamer tools, some clever regex I could create individual text files (.txt) for all blog posts with the correct information like publishing date, tags, and category.

Side Note:

Kirby is a flat-file CMS and uses regular text files for every piece of content on the website and with a special syntax for all kinds of information stored in fields that can be used for whatever I need them to.

So now I had all my blog posts as markdown in Kirby. All with correct publishing date, tags, and category. But all images and links were linking to the live system and the folder structure from WordPress, the usual upload folder with subfolders for each year and month.

Now that everything was in Kirby I could go through all blog posts and check the content instead of adding the content first. So for each individual blog posts, I checked if all the links were correct. I added images or replaced content with the corresponding Kirby-Block. This was probably the task that took the longest, especially adding all the images because of how differently WordPress and Kirby (at least per default) handle assets that were added to blog posts. WordPress adds everything to the media library and creates derivates for all the images within the same folder as the original. This creates a huge mess within the media library with the original and its derivates sitting right next to each other. If you want to create different derivates later down the road, the new ones will be created but the old ones stay there as well. It could become a mess if you're not careful.

Kirby does it more elegantly. For one, you add the assets to the folder of the blog posts, meaning the .txt file and all the corresponding assets are in the same folder. This can be annoying if you'd like to add an image to more than one post because it means you add the image multiple times to the library. But on the other hand, it's very nice to find the assets to the content right where they belong.

With this process, I went through 900 content posts, and I made so many mistakes or missed something that I went through them more than once, but it was important for me to have a really good base for all my content on this new CMS.

I think this is it for the first part, in the second part I will focus on the structure of my Kirby website and in the third part I will go into more details about the new design and it's whole process behind it.