📄️ The AT Protocol
The AT Protocol (Authenticated Transfer Protocol, or atproto) is a standard for public conversation and an open-source framework for building social apps.
📄️ Federation Architecture
The AT Protocol is made up of a bunch of pieces that stack together. Federation means that anyone can run the parts that make up the AT Protocol themselves, such as their own server.
📄️ Links, mentions, and rich text
Posts in Bluesky use rich text to handle links, mentions, and other kinds of decorated text.
📄️ Rate Limits
Rate limits help us keep the network secure — for example, by limiting the number of requests a user or bot can make in a given time period, it prevents bad actors from brute-forcing certain requests and helps us limit spammy behavior.
📄️ Labels and moderation
Moderation in Bluesky consists of multiple, stackable systems, including:
This is an in-depth dive into how creating a post works on Bluesky. We'll use Python below, without a SDK, so you can see how it works behind the scenes.
Bluesky is a distributed network, which means clocks can skew and time is relative. Furthermore, tricksters might lie about timestamps in app clients or at the PDS instance level. To sort all of this out, we have a few simple guidelines for working with timestamps.
One of the core primitives of the AT Protocol that underlies Bluesky is the
📄️ Resolving Identities
Identities in the Bluesky network consist of multiple parts:
📄️ Custom Schemas
The AT Protocol, and specifically Lexicon, provides a toolkit for creating decentralization social applications. Lexicon is meant to be a social coordination tool. It's an explicit way to announce the schema that some data adheres to and compare it against the schemas that your application understands.
📄️ Backfilling the Network
Backfilling is the process of syncing all the data in the network from scratch.
A user may take some action (such as updating their profile), rapidly refresh the view, and find that their recent change is not immediately reflected in the updated response.
📄️ Service Auth
There are currently two "types" of auth supported in the atproto network: client-server auth and service-to-service auth.
📄️ PDS Entryway
Bluesky runs many PDSs. Each PDS runs as a completely separate service in the network with its own identity. They federate with the rest of the network in the exact same manner that a non-Bluesky PDS would. These PDSs have hostnames such as morel.us-east.host.bsky.network.