It's taken a long time to find the right set of technologies to build this site that are simple and fast, but also provide all the functionality that I needed.
My first attempt to build this site was years ago, using Vue.js 2, but I never really got started. I had huge ambitions for the frontend and backend. Maybe some of that will come to fruition with time, but it would have been so complex.
At this point I had switched from server side rendering to static rendering, which Nuxt does quite well. Less complexity but it means that everything needs to pull in correctly at render time, api keys, etc. I was now relying on several third-party services that I was using slightly out of spec.
In addition to the complexity added by Ghost, posts also didn't look nice, and it's something else to host that would represent ongoing cost. So I decided to remove ghost and switch to blogging in files instead. I didn't really like the idea of blogging directly in HTML, so I figured it would be fairly simple to add markdown rendering to my site.
Nuxt is in a bit of a transition period at the moment as they switch to Nuxt 3 supporting Vue 3. Vue 3 has a ton of great improvements, and they should definitely support it. But for now, library support for the different versions is really hit-or-miss. So when I added the markdown rendering library, npm got so mad. I figured that I could upgrade to the latest-and-greatest version of Nuxt; it was an opportunity! And that's when everything broke...
I was now totally fed up with Nuxt and the complexity that I had created. It wasn't the fault of the technologies. I had simply created a huge amount of complexity for what would be a mostly static site. It just wasn't worth it. I was ready to move on, looking for simplicity and maintainability.
That said, they really don't do well on maintainability. There would end up being a lot of repetition and the content and styling would all be together. Making changes and updates would involve a lot of digging through huge files, find-and-replace, etc. I'm not a fan.
So I turned to the purpose-made static site generators. I considered going back to Nuxt, but that didn't feel right. Hugo seems to be the most popular and recommended static site generator, and it is very nice. Easy to set up and get going. I quickly discovered that it was too simple for my needs. If you want a static blog with a nice pre-made theme but without the complexity and slowness of a full CMS, Hugo is awesome. But creating my own templates would have been a pain, and I couldn't find anyone using it for a mixed-use site the way I wanted. So it was out.
So moving on from the established, most popular tool to the up-and-comer. Eleventy isn't as large and recommended as Hugo, but it has some huge advantages, and seems to be the end of my journey for now.
Needless to say, I had it up-and-running in no time and loved it.