ATProto Browser

ATProto Browser

Experimental browser for the Atmosphere

Record data

{
  "uri": "at://did:plc:uu5axsmbm2or2dngy4gwchec/com.whtwnd.blog.entry/3la4vxmlfwy25",
  "cid": "bafyreicrcouvhczyvdpghumgeb5iodwledbty7kwqv3wsifwtcanqgigjy",
  "value": {
    "$type": "com.whtwnd.blog.entry",
    "theme": "github-light",
    "title": "how bluesky actually works",
    "content": "I'm going to assume you understand atproto pretty well. If not, there's plenty of good reading out there already;\n\n- [ATProto for distributed systems engineers](https://atproto.com/articles/atproto-for-distsys-engineers) - atproto.com\n- [How Does Bluesky Work](https://steveklabnik.com/writing/how-does-bluesky-work/) - [@steveklabnik.com](https://bsky.app/profile/did:plc:3danwc67lo7obz2fmdg6jxcr)\n- [Nostr and ATProto](https://shreyanjain.net/2024/07/05/nostr-and-atproto.html) - [@shreyanjain.net](https://bsky.app/profile/did:plc:bnqkww7bjxaacajzvu5gswdf)\n\nHaving read these, or pretended to, you can recite how data flows from a client to a PDS through a relay to an AppView. After that, though, how does all this *actually* happen? If you were a Bluesky AppView, what HTTP endpoints would you need to implement? To the best of my knowledge, this information is decentralized across a number of code comments, blog posts, Bluesky posts, and Discord messages, so I'm going to try and put it all in one place.",
    "createdAt": "2025-02-07T23:39:50.812Z",
    "visibility": "author"
  }
}