8 years. It was 8 years ago that I opened my blog. A few interface improvements were made along the way but the foundation stayed the same: Drupal 7. With version 7 reaching end of life, I had to upgrade it. The newer versions, still based on PHP, weren't very appealing to me. Since my core skill set leans more towards JavaScript, I looked at the Node.js CMSes. After some research and a few promising tests, I set my heart on Strapi (still in beta at the time). The whole database side is handled by the framework and easily editable through the interface, so I can focus on the interface. Perfect for me!
Now comes the question of transferring the data; naturally there's no automatic migration, Strapi still being very young. That doesn't scare me, knowing that a custom import will mean writing some JavaScript. So I export all my data from Drupal via JSON files and build a plugin to inject it into the new platform.
Not everything works the first time; I still had to get my hands into the database to handle the specifics of my site and learn to manipulate Bookshelf and Knex queries.
Two plugins that mattered to me didn't exist yet in Strapi's young ecosystem. The ability to generate responsive images just right, and to import info from external services like YouTube and Soundcloud to make my life easier when using it. So I built them. After hours of tearing my hair out getting to grips with the framework and getting up to speed on React, I had the data storage side and the API working. Off to the front end!

Here again I went with Nuxt. It works well and it's easy to use. To keep learning more, I switched to writing my code with the Composition API, which is now standard in Vue 3 (and on which the next version of Nuxt will be based). Since Strapi has a GraphQL endpoint, I used it for the redesign and learned how it works in the process.
Since version 2.13, Nuxt lets you statically generate a dynamic site, and do it automatically. So I used this feature to improve performance and minimize the blog's carbon footprint. It takes around 14 minutes to generate over 9,200 pages on my server.
On the visual side not much changed. I kept the same design but improved the accessibility and readability. That said, I moved from plain CSS to SCSS. I also brought the way I write the code up to date, using the latest available features.
To mark the occasion, the home page was completely redone, showcasing some of the content. I also customized 2 markdown plugins to match how I use them. One to display responsive images in my articles, the other to display YouTube videos and Soundcloud music.
And there you go: after 3 months of work, my new not-so-new, completely redesigned blog is out!

Hugs