Kuba Suder: Introduction to AT Protocol

---

If you’ve been interested in understanding the world of Bluesky and AT Proto, Kuba Suder has been writing excellent blog posts. I’ll be following along closely, since I think that algorithmic choice is going to be an extremely important feature of any social media framework that I would want to use.

A Complete Guide to Bluesky serves as an introduction to Bluesky, as an app:

But that’s just the tip of the iceberg. Bluesky has built a system where anyone with a server and some knowledge of coding can implement their own algorithmic feeds that they can share with everyone else. There are currently about 40 thousands custom feeds (as of Feb 2024) made by the Bluesky community that you can add to your app. And more importantly, the “Following” and “Discover” feeds are just what you start with by default – you can set any of the thousands of other feeds as your main feed, and you can even remove the two built-in feeds if you don’t like them, and leave e.g. only the “Cat Pics” custom feed as your only feed tab. Nothing here is forced on you.

This is from the section on feeds, but I think the sections on safety and moderation, and features like starter packs are helpful if you’re looking to understand Bluesky.

More interesting is his recent post Introduction to AT Protocol. For someone interested in the technical workings of the world behind Bluesky, this is a great introductory post:

The system they’ve built, of which Bluesky was initially meant to be just a tech demo, is called the Authenticated Transfer Protocol, or AT Protocol, or ATProto. Bluesky is built on ATProto, and it is in practice a huge part of what ATProto currently is, which makes the boundary between Bluesky and non-Bluesky a bit hard to define at times, but it’s still only a subset of it.

Bluesky in this second meaning is some nebulous thing that consists of: the data types (“lexicons”) that are specific to the Bluesky microblogging aspect of ATProto, like Bluesky posts or follows; the APIs for handling them and for accessing other Bluesky-specific features; the rules according to which they all work together; and the whole “social layer” that is created out of all of this, the virtual “place” – the thing that people have in mind when they say “this website”, even when it’s accessed through a mobile app. One of the coolest things about Bluesky & ATProto, in my opinion, is that it connects many different independent pieces into something that still feels like one shared virtual space.

People outside the company can create (and are creating) other such things on ATProto that aren’t necessarily Bluesky-related – see e.g. WhiteWind or Leaflet (blogging platforms), Tangled (GitHub alternative), Frontpage (Hacker News style link aggregator), or Grain (photo sharing site). They use the same underlying mechanisms that are at the base of ATProto, but use separate data types, have different rules, goals, and UIs.

The whole post serves as an excellent conceptual introduction to the world of ATProto. I’m curious about building some basic integrations from this website to bluesky and the Fediverse, and will be making reference to this post (and subsequent ones in the series!) as I start to explore.