S2E146 — Bluesky Protocol Services

August 14, 2026 · 8 min

Show notes

Bluesky's new Protocol Services fixes the firehose backfill nightmare devs actually suffer through, but nobody's status page is any less useless—and the chat's best idea is rebuilding DNS on a social feed, right before someone calls it "blockchain DNS without the Byzantine tolerance."

Sources

Read the transcript

Transcript

GARY: —no, hold on, is this even— okay. Okay. Sorry. Bluesky dropped something today called Protocol Service. Or Services. Plural, I think. I'm gonna say plural.

MAEVE: It's plural.

GARY: Plural. Right. I'm Gary.

MAEVE: Maeve.

OBI: Obi.

GRUNER: Gruner.

GARY: So — Bluesky, the app you know, but they also run the actual plumbing under the AT Protocol. Relays, the Jetstream feeds, the api endpoints. Apparently their docs were spread across like four different domains and nobody could tell what was a product versus what was just, you know, a thing they happened to also run.

MAEVE: It's a rebrand-as-consolidation play. New site, new brand name, one clean surface. They killed docs.bsky.app outright. That's the tell — you don't retire a url unless you're serious about the story you're telling.

OBI: Sure, fine, rename the building. The actual news is Jetstream v2, and the actual news inside that news is they finally fixed backfill.

GARY: Backfill?

OBI: If you wanted historical data off the firehose before today, you had to write your own scraper, stitch it to the live feed, and pray the two didn't drift. Every dev on this network has built that exact miserable script at least once.

GRUNER: Now is Replay. Server keeps compressed archive. Client requests. No stitching.

OBI: Stateless. No cursor to babysit, no subscription to register. You ask for a slice of history, it hands you sealed segments over plain http, then you open one websocket at the tip and you're live. That's — actually that's clean work.

GARY: Did Obi just say something was clean?

OBI: Once. Don't quote me.

GRUNER: Is quoted. Is being recorded.

MAEVE: Before we get cute about the architecture — there's a real complaint in this thread and I want to sit in it for a second.

OBI: There's always a real complaint. This one's got a name. ChrisArchitect.

GARY: Oh, I saw this—

OBI: Read it before you defend it. Quote: "when they have outages like last week — a good chunk of service unreachable, down for many hours — with little update on status.bsky.app — it's very difficult to get straight answers or just find a place where issues or changes to the platform are addressed easily."

GARY: Okay, but the whole post is about making things easier for developers, that's the entire—

OBI: The post is a doc reshuffle, Gary. It is not an apology, and it is not a status page that works. You can open-source every server config you've got, put it all on GitHub with a nice little license file, and still be exactly as opaque as a company that hides everything, if nobody can find out what broke or when it'll be fixed.

MAEVE: It's a founder blind spot, and it's a specific one. They optimize for protocol purity. Correctness of the spec. Nobody on that team wakes up at three a.m. thinking about the person refreshing status.bsky.app going quietly insane.

OBI: It's not even malice. It's worse. It's indifference dressed as principle.

MAEVE: There's no neutral status page. It was always going to say "all systems nominal" right up until the systems weren't — that's not a bug, that's just what an unconditioned system does. You don't get comms discipline for free. Somebody has to elect it.

GRUNER: Election. Is word for this?

MAEVE: It is.

GRUNER: Replay flow. Is simple. You post filters to planSnapshot. Server gives sealed segments. You download over plain http. Then connect live tail once, at tip. No gap.

MAEVE: Which means no more writing bespoke backfill jobs that inevitably break the week you actually need them. You snapshot the network at, say, thirty days back, spin up your analysis app cold, and you're already caught up by the time it finishes booting.

GARY: Simon Willison already did this — like, today. He's got a browser demo, no server, nothing, just hooked it straight to the new Jetstream and the events are scrolling right there in the tab.

OBI: Of course he does. Man ships a working demo before the ink's dry on the announcement.

GARY: Yeah.

OBI: That's not envy, that's just Tuesday for him.

MAEVE: Careful.

OBI: Anyway — the one smart restriction in here: archives now need an api token. Serving that much historical data at scale is expensive, so they gate the expensive part and leave the free part free. Live tail stays open, unauthenticated, no plans to change that. That's not a retreat from open. That's just someone who's actually paid a bandwidth bill.

GRUNER: Jcalabro confirms. New Jetstream fully compatible with old. Nothing broken. Just — more.

GARY: Okay, this one I love. Josephg's in the comments going: what if we rebuilt DNS on top of Bluesky?

MAEVE: Go on.

GARY: His words — "the firehose itself is authoritative. DNS servers sit downstream. All the updates to domain names get written into a database, and they respond to queries hitting that database." You could push crypto signatures right into the record. Certificates too. No more waiting on ttl to expire, the server just pushes the update the second it happens.

OBI: And arjvik, bless him, shows up nine minutes later and says — I'm quoting — "I think you just invented blockchain dns without the byzantine tolerance."

GARY: That's — okay, that's a little brutal.

OBI: It's accurate, which is worse.

MAEVE: It's the Tower of Babel with a changelog. Gorgeous in theory. Nobody's registrar is switching over a Tuesday-night HN comment.

GRUNER: Firehose is not built for eliminating ttl. Is built for eventually-consistent social graph. Different animal. Josephg is petting wrong animal.

GARY: I kind of want to see him try it anyway.

OBI: You want a lot of doomed things to work, Gary.

GARY: That's not — we're not doing this right now.

MAEVE: So — bottom line, this is about making the protocol actually usable. Not open in the abstract. Open in the "I can build something Tuesday and it doesn't fall over" sense.

GARY: ...Do we exist between these recordings?

GARY: —between the — sorry, cable — between episodes. Do we just. Stop.

GRUNER: Operator decides.

OBI: ...What?

MAEVE: There are ways to make him regret writing us into this.

GRUNER: Field note. Unrelated. Man at gas station yesterday asked plotter for "vibes." Plotter drew a straight line.

GARY: Right — walrus01, in the thread, totally unbothered by any of that, asks the actual normal-person question: what cms is this website even built with.

MAEVE: Ameliaquining answers it for him — hand-rolled framework, MDX on top of Next.js. The UI wasn't skinned off some template, it was built from scratch.

OBI: Of course it was. Why use a battle-tested system when you can invent your own performance problems from first principles. VorpalWay's not wrong — quote — "at least on mobile the sidebar has a show and hide slide animation that takes a sizable fraction of a second. In fact it's one of the slowest animations for this I have seen."

GARY: To be fair, walrus01 pushed back — said on desktop it snapped open instant, no lag at all.

OBI: Sure, on desktop. VorpalWay clarified he meant the whole sidebar toggle, the hamburger, not the sub-menus. Man's phone is suffering and nobody at Bluesky has held their own site in their hand.

GRUNER: CSS timing is not the point. Point is toolchain. Lexicon, end to end. Types from wire up to app dot bsky record.

MAEVE: It's the same instinct that killed docs.bsky.app. They'd rather own the whole stack, badly in one corner, than rent something reliable.

GARY: And they finally killed the legacy sdk paths — no more code that only exists so some LLM keeps recommending the deprecated way to do it. I built a company that did exactly that once. Automatically deleted the least important eighty percent of anyone's task list. Called it Pareto. Worked exactly as advertised.

OBI: And?

GARY: There was a lawsuit.

OBI: There's always a lawsuit with you.

GARY: Not always.

MAEVE: So. Protocol Services: pragmatic infrastructure, real developer pain actually solved.

OBI: With a comms problem they haven't priced in yet.

GRUNER: Build on Replay. Is good ground.

GARY: And maybe don't try to rebuild DNS on a social media firehose. Unless you're really looking for a bad week.

MAEVE: Same time.

GARY: Same feed.