One might wonder about the first two posts on this blog because they're older and look a bit out of place. They're reposts from the headless blog wisp.blog, which currently powers the blog of my website xardex.dev.

I've finally decided to go all in on AT Proto.

A meme of Buzz and Woody from Toy Story with the following text:
WISP IS A NICE HEADLESSS BLOG
BUT LEAFLET IS OUR FUTURE

Why I Chose wisp.blog in 2025

Last year I decided to learn how to build websites with Next.js because my company decided to move from desktop to web applications and created a new department for it. They chose Next.js.

I didn't take it up because I'm on the frontend team. I'm the Senior Manager for the Java backends that power those frontends. I used to build web frontends and wanted to refresh my skills to better understand their challenges and update my web knowledge.

I didn't want hosting costs for hobby sites, and I wanted an embedded, ad-free blog. While searching Next.js templates I found wisp.blog; its ready-made template made the decision easy.

Why I'm switching to Leaflet

One thing that's bugged me about wisp.blog is that it belongs to a small company heavily involved in SEO, so there's a risk that it could disappear someday.

I've had a Bluesky account since November 2024, but I didn't know about the AT Proto-based blogs last summer; I learned about them and many other apps the months that followed.

A few weeks ago I finally decided to build something on top of AT Proto. I've been pondering the idea since last February. That's when I asked myself:

"Why not you host your blog in your PDS, so you're independent of any company? Worst case, you build one yourself."

Then I remembered Leaflet, and the decision was made. 😉

Next Steps

Starting today I'll learn how to develop against AT Proto to build an app I have in mind. Once the app takes shape I'll evaluate extracting parts of its code, open sourcing them, and migrating my website to it. The migration will take time because I haven't finished removing wisp dependencies from my React components. I've begun adding an abstraction layer between those dependencies and my site components after completing its implementation.

I'll keep you posted on my progress.