







interesting: reference pds hard-codes express' compression middleware, so bluesky must be explicitly stripping `Accept-Encoding` request header in HAProxy? ...costing them >2x egress bandwidth, but potentially saving CPU. many indie hosts really struggle with it. cc @calabro.io any insight?
fig (aka:[phil])
a few million straggler repos left but rougly: ~4.5TB as uncompressed CARs, also what has to be sent over the wire. hosts that apply *any* negotiated compression (`Accept-Encoding`) find great effect: >50% reduction in bytes transferred. Bluesky doesn't so it's moot. @bsky.app you should do this.
May 21, 2026 at 5:19 PM
Bluesky HTTP API Reference
Bluesky HTTP API Reference
Bluesky Is an App. The AT Protocol Is the Internet Beneath It. - Ewan’s Blog
There is a confusion that keeps recurring, and it is understandable enough that it is worth addressing directly.
Bluesky Is an App. The AT Protocol Is the Internet Beneath It. - Ewan’s Blog
There is a confusion that keeps recurring, and it is understandable enough that it is worth addressing directly.
Bluesky Protocol Services
High scale open social, unlocked for every builder. Bluesky operates public infrastructure for the AT Protocol — Jetstream, Relay, and the Bluesky API — as open services anyone can build on.

Links, mentions, and rich text | Bluesky Protocol Services
Posts in Bluesky use rich text to handle links, mentions, and other kinds of decorated text.

Why isn't Bluesky a peer-to-peer network?
Today in "our novel form of NIH," why did Bluesky choose not to use a peer-to-peer network when designing the AT Protocol?

Why isn't Bluesky a peer-to-peer network?
Today in "our novel form of NIH," why did Bluesky choose not to use a peer-to-peer network when designing the AT Protocol?

Self-hosting - AT Protocol
Self-hosting a Bluesky PDS means running your own Personal Data Server that is capable of federating with the wider ATProto network.

Appendix:Xanadu - AT Protocol Paper Errata and Details
A description of known problems in Bluesky PBC's paper, "Bluesky and the AT Protocol: Usable Decentralized Social Media", as well as notes on terminology changes and how Bluesky's implementation differs from that described in the paper.
It's really cool that people are now using Bluesky not only from servers they host themselves, but servers they *wrote* themselves (or someone else here did), adding features the standard one doesn't have ❤️ Like, I now have 2FA again on my PDS because @baileytownsend.dev just went and built it
Matt Kane
Cirrus PDS now support passkey auth. It was a bit of a puzzle adding it to a tool where where the admin is all CLI, but I'm really pleased with the flow I came up with. Give it a go! github.com/ascorbic/cirrus If you don't know what Cirrus is, it's a really easy way to host your own Bluesky data
The frustrating thing about this is that when you "Login with Bluesky", you're not even actually logging in with Bluesky The App. You may be using a Bluesky PBC-hosted PDS, but it has nothing to do with @bsky.app, other than it's the PDS you're assigned when you create an account on their client.
Attention PDS devs! We merged a lexicon change last week increasing the max image upload for Bluesky posts from 1 MB to 2 MB. This rolled out to our PDSs instances last Friday. We'll begin enabling this in the Bluesky app soon. If your PDS implementation is still validating at 1 MB, plz update! ✌️
Eric
Related to this, we've been slowly rolling out a higher resolution limit for our image uploads, from 2000px^2 to 4000px^2. Until the below image size increase rolls out (soon), image sizes are still capped at 1 MB, so FYI you won't see immediate quality increase in all cases just yet.
Every time you view or like a post or take most actions on Bluesky or Blacksky your requests go through your Personal Data Server (PDS). It’s also the home of all your data. To date, we’ve used other people’s software to run Blacksky’s fleet of PDS. In the next week we’ll be migrating to our own.
Is there a good write up anywhere on the sort of app design of Bluesky, with the frontend client and the PDS proxying requests. I'm curious about whether other approaches were considered, why this approach was chosen, how a relatively snappy experience was accomplished, anything related to that!
An unordered / non-exhaustive list of things that helped scale Bluesky's infra efficiently: + Exiting the cloud (colocation) + HAProxy w/many Node backends + Go w/clever code + ScyllaDB + SQLite w/per user databases + Redis w/many instances + AMD servers w/many cores + Purchasing bandwidth directly