{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreif4jvdlhnl56yfmvo2w4tdohfhifmwha4zcibd5s36a5oiwefxih4",
"uri": "at://did:plc:3peywwdnn4jkfvqowpviodbf/app.bsky.feed.post/3mmsl4mglcyj2"
},
"coverImage": {
"$type": "blob",
"ref": {
"$link": "bafkreiewzxfvqxqoqcs5lje4zxw7vdnpqn6grcxjhb5n4rgndszx2y5edm"
},
"mimeType": "image/png",
"size": 364222
},
"path": "/blog/2026/05/25/what-is-atproto/",
"publishedAt": "2026-05-25T00:00:00.000Z",
"site": "https://jeffbailey.us",
"tags": [
"Distributed Systems",
"Protocols",
"Social Web"
],
"textContent": "Most social networks use a single database with an app, storing usernames, posts, algorithms, moderation rules, and HTML within the same company. Building on top means relying on the vendor’s rate-limited API, which can change or disappear unexpectedly.\n\nThe AT Protocol (ATproto) divides the monolith into parts that different people can run, use different languages for, and swap out without losing accounts or posts. Bluesky is its biggest app, but the protocol is more interesting for developers than the app.",
"title": "What Is the AT Protocol? A Developer's Mental Model"
}