Experimental browser for the Atmosphere
{ "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" } }