Itās been a while since Iāve posted an update, but today Iām sharing some improvements Iāve made to the site.
Out with the old, in with the new
Iāve re-built the website, going to the latest version of Astro (v4.6.3 to v5.7.12) , and while the migration was straightforward, it gave me the perfect opportunity to revisit some other tooling decisions Iād made earlier. One of those was my CMS setup.
The previous website approach relied on maintaining markdown files directly. This was fine, though I think it created just a small amount of friction for me that has resulted in me not writing anything. Thatās when I realized that a CMS based system could be an interesting topic for me to look in to. First for my own needs, to make managing the blog posts more easy. Though also as I see many client solutions being āsimpleā websites that typically are based on CMS solutions, usually WordPress.
Though there are many CMS options beyond WordPress; in fact, JamStack lists 131 headless CMSs alone at time of writing. WordPress seems to be the go-to solution, though personally, I needed something more lightweight and I want to avoid any potential from the Matt Mullenweg driven dispute over WP Engine dispute and such. Who knows where that would lead.
In the past, Iāve come across Decap CMS (formally known as Netlify CMS) quite a lot. It seems like a good mix of simplicity, but also the fact it is a Git based CMS. This has been the most important factor for me, as I would like the website to be static and avoid the need of sourcing CMS data from a Database. Thatās also when I then came across Sveltia CMS, which ultimately is what I am using to write this post now.
Why Sveltia CMS?
Sveltia CMS is essentially a spiritual successor to Decap CMS. As they claim themselves:
Built from the ground up, Sveltia CMS offers excellent UX, DX, performance, security and internationalization (i18n) support.
There are many claims in the Sveltia CMS README about how the project is better than Decap. I took these claims at face value, as I have no personal Decap experience to compare against. Though for a low stakes personal project, I think that is a reasonable trade off.
I was also keen to experiment with an internationalization (i18n) set up that would allow me to have both English and Danish content.
Going global: i18n support
Hereās where things get interesting. Iāve now built out full internationalization (i18n) support for the site, with English and Danish language variants. This was partly inspired by my own curiosity about how static site generators handle multiple languages, and partly becauseāwell, Iām living in Denmark, and it felt right to support the language of the country I live in.
The catch? I barley write Danish at all. So whatās also great with Sveltia CMS, is that I can perform a one-click translation using an AI. Is it going to be perfect? I doubt it. Though I can _guarantee _it will be a lot better than any Danish I can write.
Artificial Intelligence
Sick of reading those words? Me too. Anyway, Iāll keep it brief. Since my initial website, AI really has exploded. In fact, a lot of this website was AI-assisted work. Super useful, now that I also have limited time due to a newborn.
Iāve found that Visual Studio Codeās GitHub Copilot is actually quite good when it comes to working with front-end development. Itās especially useful to get āthoughtsā on how to work with libraries you may not have much idea about (such as Svelita/Decap). Though for me, a huge time saver was to be able to make a query such as this simplified request: āMy old portfolio is at #some-directory, move it into the new #directory following Z, Y, Zā. Then sure enough, it pops off Powershell commands and such to move things around.
I used a lot of assistance styling the website too. Though upon review, I do think thereās plenty that can be optimized further. I find AI can often just take an easy path to get the thing done, and not the ācorrectā approach of ensuring separation of concerns and other ābest practicesā. This is also why using AI has been defined as a ātechnical debt generatorā by some, including me, as it can often get things working but in a way that an inexperienced developer would have done it.
The technical stack
For those curious about the specifics:
- Static site generator: Astro (latest)
- CMS: Sveltia CMS
- i18n: Astroās built-in i18n routing
- Hosting: Still deployed to Bunny CDN/Storage
The site continues to be fast, reliable, and delightfully minimal. Just the way I like it š
Whatās next?
Iām settling into this new setup and will try to publish more frequently, now that the infrastructure feels right. Iād also like to explore more of Sveltiaās capabilities thereās potential for richer content workflows down the line.