Adding atproto to my Zola blog

Weirdly easy, actually.

Goals

I had three goals for this blog:

For the first one, I pretty quickly decided to go with Zola. It seemed like the most mature and full-featured static site generator written in Rust. However, I was worried about how I was going to integrate it with atproto. In my experience, getting this kind of software to play nice with a social media site is the kind of thing that turns out to be extremely difficult.

Difficulty

It was not at all difficult.

Bluesky

There's a few JavaScript libraries out there already for using a Bluesky thread as the comments section for a blog. Sadly, most of them use React or some other unneccessary dependency, but I found this neat one that only uses HTML5 custom elements. Another victory for open standards against website bloat.

standard.site

I also wanted my blog to be compatible with standard.site, so that it would be easy for my posts to be indexed and discovered on the ATmosphere. I suspected this would be a lot harder, as Zola doesn't support this, and implementing it myself would be something of a challenge. Luckily, somebody else has already thought of this: Sequoia. It's a CLI tool that can automatically parse Markdown files from static sites, and create standard.site documents representing them on atproto. And it's already compatible with Zola. So this also turned out very easy.

Conclusion

I was expecting atproto integration to be the hardest part of setting up my website, but I ended up spending way more time on configuring the server and writing the Zola templates and CSS. If only all software was this easy.

Comments