This blog is now on Astro thanks to Antigravity!
Hopefully, you didn’t notice any changes
#For the past two weeks, this blog has now been running on Astro. I’ve wanted to migrate to it for over a year and already made some progress. I finally wrapped it up over a weekend.
The main gist is that almost nothing changed from your perspective as a reader. The design and the content are still the same. But this switch allows me to maintain the blog much easier and faster in the future and bring it up to date with a modern framework.
What was wrong with Gatsby
#This blog was originally built with Gatsby, a React-based static site generator. While Gatsby will forever have a special place in my heart as it sparked my passion for web development and static site generation, it has not aged well.
Gatsby was acquired by Netlify in 2023 and then abandoned. Additionally, there were some issues bugging me and causing build times of over 10 minutes (as all images needed to get processed again). This just added friction to my blogging workflow.
Why Astro?
#Astro is still another JavaScript framework, but with a nice twist making it an anti-JavaScript JavaScript framework because it actually tries to eliminate JavaScript from the final output as much as possible. It is super modern with frequent updates for current web developments, and I really stand behind its philosophy.
I don’t want to go into too much detail here so here are just my highlights:
- Page Performance: Achieved a perfect 100 Lighthouse score again.
- Build times: The site now takes a few seconds to build.
- Simple Components: Its unique .astro format: simple placeholders for HTML, CSS, and JS, without the bloat of traditional frameworks.
- Option to add frameworks: You can still just add a Svelte, React, etc. component, and Astro does its magic to make it work.
- Great ecosystem: Tons of plugins and integrations to make your life easier. Like MDX, image optimization, RSS feed generation, and so on.
I also have used Astro before for documentation sites like UC AI, APEX Document Management, or the dbLinter rules repository.
Antigravity is remarkable
#Actually, Google’s new IDE called Antigravity took the most effort of the migration. I just created a new folder, put my old Gatsby and work-in-progress Astro project side-by-side, and asked Gemini 3 Pro to help with the migration. It took a while, but when it finished, it did a perfect job of migrating all the React components to Astro components, with multiple iterations of fixing bugs.
In the past, you’d always have to prompt LLMs to continue; after long tasks, they often got confused or would go off-task. This was a lot better and shows how far agentic AI has come. This is probably similar in current Claude Code, Curser, etc. implementations, but I just happened to do a big migration now with Antigravity.
After that I still prompted for other changes, but eventually it was really not a big effort to get everything working.
I am super happy and even included a search feature in the blog.
Back to KISS - Keep It Simple, Stupid
#I also changed my deployment process. Before, committing to the dev branch triggered a GitHub Action that pinged my server-side automation service (Cronicle). This then led to a build on the server and eventually an rsync to the directory of my web server.
This works and screams GitOps or DevOps but I feel this is just too complicated. I now just run one bash script that builds the site locally and then rsyncs it to the server. I can immediately follow what is happening and not fear that something breaks in the CI/CD pipeline.
But Hashnode, Medium, Substack, Dev.to, … are so much easier!
#Yes, they are easier. But that has a big cost: dependency.
For me, starting to blog was one of the best decisions I made in my career.
- Writing did and still continues to help me improve my thinking process and navigate around the complexity of the world.
- It opened so many doors for me. Just recognition, eventually becoming an ACE, meeting so many people who knew about me. I would probably not work for United Codes if I did not start being more visible through blogging (and conference talks, social media, etc.).
- It is just fun to share knowledge and help others. Every time I get feedback or a question, I feel like I accomplished something.
And I don’t want this to be in the hands of a third party. As Richard Allen pointed out to me, Hashnode changelog has not been updated in a year. Not a good sign for a startup that is externally funded. If they run out of money, they will just shut down their servers. So export your content now. And without a custom domain (when you have xyz.hashnode.dev), you’ll lose all that hard-earned credibility and SEO.
And then the UX flaws. Medium is the worst offender with having to sign up to read posts. WTF? People publish blogs to share knowledge, just for them to put up a wall. And the others open a newsletter popup while I still read the content. No, thanks.
If you think about starting a blog, consider using one of the many static site generators and an already great-looking template. Then getting the HTML hosted with a custom domain is not that hard and cheap. You are welcome to reach out to me if you need help with that.