My blog has been online for well over a decade. My first post was about creating a blog with JBake. Now I’m writing its eulogy.
Where It All Started
I joined JDriven in 2014. I was looking for a place where I could sharpen my software engineer skills and I could not have found a better place to do so, at that stage in my career. Aside from working with some of the smartest people I’ve ever met, they were also excellent at coaching and growing their employees.
Part of that was mentoring and coaching engineers on more than just technical skills. Presentation and writing skills were, if you wanted, also something they supported you in. For me that started with a blog and eventually even led to published articles and speaking at conferences.
My blog looked very different back then. Much more… yellow.
From Jenkins to CloudFlare Pages
Initially I just pushed a manual build, but then I moved to a very extensive CI/CD setup running on Jenkins and my own VPS. I wrote my first two-parter blog post on the setup (one, two) that was very overengineered for my setup, but also handled a lot of other sites/experiments I was running through the same Traefik instance. It taught me a lot about Docker, reverse proxies and setting up Let’s Encrypt for free HTTPS certificates.
This worked just fine, for a couple of years I would just push a change and a few minutes later it would be live on my page.
At the same time I started using my own VPS less for experiments, doing more of my architectural experiments on AWS and Google Cloud. When I saw an announcement for CloudFlare Pages, what turned into a simple experiment quickly turned into me thinking “let’s go!” and migrating the blog to CloudFlare. Everything I had set up myself on my VPS I got out of the box, for free. My first “lift and shift” from self-hosted to fully managed. This also fundamentally shifted some ideas I had about “buy” versus “build”.
I kept the VPS running for a little while longer but since it didn’t ‘do’ anything anymore, I eventually terminated it. Saving me roughly 120 euros a year.
Eleven Years Later: Enter Astro
One piece of architectural debt remained however. I initially picked JBake because a colleague used it, because I’m a fan of AsciiDoc, and “because Maven”. What framework you use is a fundamental choice, whether it’s for a blog, or for your Java service.
JBake builds are relatively long and while AsciiDoc is in my opinion the better standard, the tooling around it is painful. What’s worse; JBake is open source but abandoned in the worst possible ways: with maintainers that don’t want to admit they should hand over the project.
So I’d been wanting to move to Astro for a while; fast builds, great community support, very flexible, supporting much more than just blogs. If I ever want to add a webshop for premium content, I could! The daunting task of the conversion (the type of boring work someone with ADHD tends to procrastinate on) I put off for over a year.
Migrating with Claude Code
Yesterday after a long day of managing to hit Claude usage limits twice, I did what any sane developer would do; get it into my head that now was the perfect moment to try and migrate my blog from JBake to Astro, using Claude Code.
It worked ridiculously well. I expected it to be an excellent assistant. After all I’ve been using Claude Code in production codebases since the start of 2026. I did not expect it to more or less one-shot it in minutes, including the AsciiDoc to Markdown conversion.
It took me exactly twenty minutes between pushing the “pre-conversion” Git tag to my repo, to have the first build running on CloudFlare. After ten more minutes fixing some layout issues (with frankly a better result than what I did by hand in the old Groovy templates), it was up and running instead of my old version.
Looking Back, Looking Forward
So this is my first post not written in AsciiDoc; out with the old, in with the new. While fundamentally this did not change much about how I write blog posts (the one thing I refuse to let AI do for me, I can’t stand people who insult their readers with generated slop), it did make me wonder about the future.
There is a lot of tooling available for migrations (like OpenRewrite, which is excellent). Whole businesses exist around rebuilding existing software. But I don’t see that business model existing in the near future. Frontier AI models have their limits, but they can do things that simple tools can’t do (reason). And one to one translations from one framework to another, is something they are extremely good at. It’s simply tedious work, and that’s where they excel. I’m not talking about just a blogging system of course; some tests I did converting from Spring to Vert.x or Kotlin to Python, netted impressive results.
I have no idea where we’ll be in a year from now. It’s equal parts scary and exciting. But hey; at least I got rid of some legacy software!