Syncing your blog content to standard.site, using your feed


Hi! In the spirit of the atproto community I am going to be writing here about building annot.at. Will post bigger more "serious" things on my blog at jola.dev and I'll use this more as a daily (except not daily) journal.

So, annot.at is the continuation of me adding standard.site atproto integration to my personal blog. The goal of the project is to discover publications and documents, as well as use the blog feed as the mechanism for finding new posts and automatically publishing them to atproto.

The background is me setting up my standard.site integration*. I wanted to keep things simple and so I wrote a bare Elixir atproto client and a mix task to manually execute to publish my posts. My normal blog posting flow is I write the content locally as markdown in my blog repo, and then I commit and push. I have it set up so it automatically redeploys on new commits to main. The way that the mix task slots into that is that after deploying I run the task. That worked just fine, but I immediately started feeling the friction of having to remember to publish my posts.

So I started working on annot.at. It's open source, I'm building it in public, hosting it at Tangled. I don't necessarily expect to see a lot of people using it, that's fine. But I do hope that it can serve as a reference for other people working with atproto and standard.site, especially in the Elixir community. Maybe I can extract some smaller libraries out of it, especially the OAuth stuff.

The code is far from done, although it can do some basic publishing already, it's not quite ready for serious use. But feel free to take a look at the code! Thanks for reading.

* Except, turns out, I got it wrong. I'm using the post slug as a nice stable record key for my documents, but the standard doesn't actually allow that. You need to use TIDs. Which makes things complicated. There's some voices requesting a change in the standard to allow other identifiers, https://tangled.org/standard.site/lexicons/issues/7, but we have to live with TIDs for now.




Sign in to leave a note.