Bluesky just launched Bluesky Protocol Services — a new brand and website for the public infrastructure Bluesky operates on the AT Protocol network. Along with it comes Jetstream v2 with network replay, a new Jetstream SDK, and a rebuilt TypeScript SDK. If you're building on decentralized social infrastructure, this is a significant upgrade. Here's what's new and why it matters.
What Is Bluesky Protocol Services?
Bluesky has always run more than just the Bluesky app. They operate Jetstream instances, relays, and the Bluesky API endpoints built on the AT Protocol. But if you were a developer trying to build on that infrastructure, the docs didn't always make it clear what Bluesky runs as a service or where to start.
Bluesky Protocol Services fixes that. It organizes all the documentation developers need within the ecosystem, clarifies service contracts around Bluesky-provided infrastructure, replaces the old docs.bsky.app site, and gives Bluesky a clean way to ship future releases.
Jetstream v2: Network Replay
The headline feature is Jetstream v2. Jetstream is the best way for most developers to use the AT Protocol network at scale: you describe the slice of data you want, and it arrives as plain JSON over a WebSocket. But what it couldn't give you was history. If you needed records that already existed on the network, you had to backfill repos yourself and then cut over to the live stream.
Jetstream v2 adds that capability. It keeps a compressed archive of the whole network and adds a new way to consume it alongside the live tail:
Network Replay lets you catch up from any point in the past and cut over to live with no gap. You POST your filters to planSnapshot, download the sealed segments it returns over plain HTTP, then connect the live WebSocket once at the tip. Replay is stateless on the server — no per-consumer cursor, no subscription to register, nothing to stage on the client. Jetstream is your buffer.
You can also just snapshot the network — a point-in-time copy of the archive over HTTP only (listSegments + getSegment), with no live tail. Same archive, same filters, no WebSocket.
This unlocks much more sophisticated server-side slicing without ever backfilling locally: spin up an app, run an analysis over a month of posts, or recover from downtime, all through the same JSON shape as the live tail.
Serving these archives is bandwidth-intensive, so Bluesky now requires an API token for archive requests. The live tail remains open and unauthenticated — only archive requests need a token.
The v2 instances are live now at wss://jetstream.us-west.bsky.network and wss://jetstream.us-east.bsky.network. The existing v1 instances will keep running unchanged.
A Jetstream SDK
Jetstream is plain JSON, so you never strictly need an SDK. But there's common glue: reconnecting, deduping, cursor management, decoding events into typed records. Hence, the new Jetstream SDKs in TypeScript and Go.
Here's what the TypeScript SDK looks like:
import { Jetstream } from '@bsky/jetstream'
import { app } from '@bsky/sdk/lexicons'
const js = new Jetstream('https://jetstream.us-east.bsky.network')
for await (const evt of js.live({ collections: [app.bsky.feed.post] })) {
if (evt.kind === 'commit' && evt.commit.operation === 'create') {
console.log(evt.commit.collection, evt.commit.record.text)
}
}
The TypeScript SDK is available from npm, and the Go SDK is part of the Jetstream project on GitHub.
The Bluesky TypeScript SDK, Rebased on lex
Back in May, Bluesky promoted the lex SDK to stable preview and promised that the standalone Bluesky docs would follow. That's now done: the Bluesky TypeScript SDK is rebuilt on top of @atproto/lex, which means they're no longer maintaining legacy code paths for Bluesky-specific helpers.
This is the lexicon toolchain, fully typed end to end, from the protocol layer up through app.bsky records. Every TypeScript example on the new site is written against it, marking a huge move away from legacy technical debt. If you're still using @atproto/api code, it continues to work as before, and the Bluesky API guides serve as a migration reference.
What This Means for Developers
If you've been on the fence about building on the AT Protocol, this release removes several of the biggest practical barriers:
No more backfilling. Network Replay means you can start consuming historical data without running your own infrastructure to backfill repos. This was one of the most painful parts of building on AT Protocol.
Type safety end to end. The lex-based TypeScript SDK means you get full type safety from the protocol layer through to Bluesky app records. No more guessing at lexicon shapes.
Clear service contracts. The new Protocol Services site makes it explicit what Bluesky runs and what you can rely on. This matters for production applications that need predictable infrastructure.
Self-hostable. All of this infrastructure is open source and self-hostable. You can run your own Jetstream, relay, or App View if you need full sovereignty.
The Bigger Picture
The AT Protocol is the most credible open alternative to centralized social media infrastructure. With Protocol Services, Bluesky is making the developer experience dramatically better — not just with features, but with documentation, SDKs, and clear service contracts.
The timing matters too. As centralized platforms increasingly restrict their APIs and raise pricing, the AT Protocol's open, federated approach becomes more attractive. Jetstream v2's replay capability means developers can build sophisticated applications on Bluesky data without running expensive backfill infrastructure.
If you're building social features, analytics tools, or bots, the AT Protocol just became significantly more accessible. The new site, SDKs, and Jetstream v2 are all live today.
Top comments (0)