Bluesky heeft Bluesky Protocol Services gelanceerd, een centraal punt voor documentatie en publieke infrastructuur op het AT Protocol-netwerk. De belangrijkste technische update is Jetstream v2, die 'Network Replay' introduceert; hiermee kunnen ontwikkelaars historische netwerkdata ophalen via HTTP zonder handmatige backfilling, terwijl de live stream open blijft (hoewel archiefverzoeken nu een API-token vereisen).
Daarnaast zijn er nieuwe Jetstream SDK's voor TypeScript en Go geïntroduceerd om het werken met streams te vereenvoudigen. De Bluesky TypeScript SDK is volledig herbouwd op basis van @atproto/lex, wat zorgt voor betere typing en minder technische schuld. Tot slot is de HTTP-referentie bij endpoints.bsky.app uitgebreid met nieuwe methoden voor Jetstream.
Introductie van Bluesky Protocol Services
13 augustus 2026 Door Alex Garnett
Vandaag lanceren we Bluesky Protocol Services: een nieuw merk en een nieuwe website voor de publieke infrastructuur die Bluesky exploiteert op het AT Protocol-netwerk.
Bluesky heeft altijd meer gedaan dan alleen de Bluesky-app. We beheren Jetstream-instanties, relays en de Bluesky API-endpoints die zijn gebouwd op atproto. Voor ontwikkelaars die gebruik wilden maken van die infrastructuur was het echter niet altijd duidelijk in onze documentatie wat we precies als service aanbieden of waar ze moesten beginnen. Dat lossen we vandaag op.
Bluesky Protocol Services organiseert alle documentatie die ontwikkelaars binnen het ecosysteem nodig hebben, verduidelijkt de servicecontracten rondom de door Bluesky geleverde infrastructuur, vervangt de oude site docs.bsky.app en biedt ons een heldere manier om toekomstige releases te publiceren.
Jetstream v2: Netwerk Replay
De belangrijkste release die samen met de nieuwe site verschijnt, is Jetstream v2. Voor de meeste ontwikkelaars is Jetstream de beste manier om het netwerk op schaal te gebruiken: je beschrijft het segment dat je wilt ontvangen en dit wordt geleverd als platte JSON via een WebSocket. Wat Jetstream voorheen niet kon bieden, was geschiedenis. Als je records nodig had die al op het netwerk bestonden, moest je de repositories zelf backfillen voordat je kon overschakelen naar de live stream.
Jetstream v2 voegt deze functionaliteit toe aan de server. Het houdt een gecomprimeerd archief van het gehele netwerk bij en introduceert een nieuwe manier om dit te consumeren, naast de 'live tail':
- Netwerk Replay stelt je in staat om vanaf elk punt in het verleden bij te komen en zonder gat over te schakelen naar live data. Je verzendt (POST) je filters naar
planSnapshot, downloadt de verzegelde segmenten die via platte HTTP worden geretourneerd, en maakt vervolgens één keer verbinding met de live WebSocket aan het eindpunt. Replay is stateless op de server, zonder cursor per consument, zonder registratie van abonnementen en zonder dat er iets aan de clientzijde gestaged hoeft te worden. Jetstream fungeert hierbij als je buffer.
- Snapshots van het netwerk zijn nu ook mogelijk: een kopie van het archief op een specifiek tijdstip via HTTP (via
listSegments + getSegment), zonder live tail. Dit maakt gebruik van hetzelfde archief en dezelfde filters, maar zonder WebSocket.
Dit ontsluit veel geavanceerdere server-side slicing zonder dat lokale backfilling nodig is. Je kunt bijvoorbeeld een applicatie opstarten, een analyse uitvoeren over posts van een hele maand of herstellen van downtime, allemaal via dezelfde JSON-structuur als de live tail.
Het serveren van deze archieven is bandbreedte-intensief. Om te garanderen dat de service betrouwbaar en goedkoop in beheer blijft, vereisen we nu een API-token voor deze specifieke verzoeken. De live tail blijft open en ongeauthentiseerd; alleen bij het aanvragen van een archief is een token vereist. We zijn niet van plan om een authenticatievereiste in te voeren voor de live stream.
De v2-instanties zijn nu live op:
wss://jetstream.us-west.bsky.network
wss://jetstream.us-east.bsky.network
De bestaande v1-instanties blijven voorlopig ongewijzigd draaien en de live tail gedraagt zich op beide identiek, dus er is geen haast om over te stappen. De volledige workflow is terug te vinden in de documentatie over Network Replay.
Zoals altijd is deze infrastructuur open source en zelf hostbaar. Raadpleeg "Running your own Jetstream" voor meer details.
Een Jetstream SDK
Omdat Jetstream gebruikmaakt van platte JSON, is een SDK niet strikt noodzakelijk. Er is echter vaak sprake van gemeenschappelijke 'lijmcode': het opnieuw verbinden, het verwijderen van duplicaten, cursorbeheer en het decoderen van events naar getypeerde records. Daarom introduceren we de nieuwe Jetstream SDK's voor TypeScript en Go. Hierin maak je een Jetstream-object aan, geef je een filter op en loop je via for await door gedecodeerde, getypeerde events:
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)
}
}
- De TypeScript SDK is beschikbaar via npm, inclusief npmx.
- De Go SDK is beschikbaar als onderdeel van het Jetstream-project.
Meer details zijn te vinden in de Jetstream SDK-documentatie.
De Bluesky TypeScript SDK, gebaseerd op lex
In mei hebben we de lex SDK gepromoveerd naar een stabiele preview en beloofd dat de zelfstandige Bluesky-documentatie zou volgen. Dat is nu gerealiseerd: de Bluesky TypeScript SDK is herbouwd bovenop @atproto/lex. Dit betekent dat we geen legacy-codepaden meer onderhouden voor Bluesky-specifieke helpers. Het betreft hier de lexicon toolchain, volledig getypeerd van begin tot eind, van de protocollaag tot aan de app.bsky records.
Elk TypeScript-voorbeeld op deze nieuwe site is hiermee geschreven, wat een grote stap is in het verminderen van technische schuld. Dit zorgt voor betere codehygiëne en zou voorkomen dat LLM's (Large Language Models) aanbevelingen doen voor verouderde SDK's. Voor wie nog @atproto/api code gebruikt: dit blijft werken zoals voorheen, en de Bluesky API-gidsen dienen als referentie voor migratie.
Updates voor endpoints.bsky.app
Tot slot is de HTTP-referentie bijgewerkt. Het scheiden van deze documentatie van https://docs.bsky.app was de eerste stap in deze herziening; nu implementeren we de rest.
De nieuwe network.bsky.jetstream.* methoden die Replay mogelijk maken — planBackfill, listSegments, getSegment en getBlock — zijn nu doorzoekbaar met volledige request- en response-schema's. Daarnaast documenteert de referentie nu ook de WebSocket-endpoints van Jetstream, zodat de gehele Jetstream v2-interface op één plek te vinden is.
Wat is de volgende stap?
Alles uit dit bericht is vandaag live: de nieuwe site, de v2 Jetstream-instanties, de SDK preview en de bijgewerkte HTTP-referentie.
- Ben je nieuw op het netwerk? Begin dan met "How It Works", een visuele walkthrough over hoe records, lexicons en de firehose samenwerken.
- Bouw je iets op basis van het datamodel van de Bluesky-app? De Bluesky API-gidsen zijn nog steeds beschikbaar en volledig herschreven.
Als je de komende weken iets bouwt met Replay, horen we dat graag. De snelste manier om de richting van de SDK-orchestratie te bepalen is door ons te laten zien hoe je de stream integreert in je applicatie.
Introductie van Bluesky Protocol Services
13 augustus 2026 Door Alex Garnett
Vandaag lanceren we Bluesky Protocol Services: een nieuw merk en een nieuwe website voor de publieke infrastructuur die Bluesky exploiteert op het AT Protocol-netwerk.
Bluesky heeft altijd meer gedaan dan alleen de Bluesky-app. We beheren Jetstream-instanties, relays en de Bluesky API-endpoints die zijn gebouwd op atproto. Voor ontwikkelaars die gebruik wilden maken van die infrastructuur was het echter niet altijd duidelijk in onze documentatie wat we precies als service aanbieden of waar ze moesten beginnen. Dat lossen we vandaag op.
Bluesky Protocol Services organiseert alle documentatie die ontwikkelaars binnen het ecosysteem nodig hebben, verduidelijkt de servicecontracten rondom de door Bluesky geleverde infrastructuur, vervangt de oude site docs.bsky.app en biedt ons een heldere manier om toekomstige releases te publiceren.
Jetstream v2: Netwerk Replay
De belangrijkste release die samen met de nieuwe site verschijnt, is Jetstream v2. Voor de meeste ontwikkelaars is Jetstream de beste manier om het netwerk op schaal te gebruiken: je beschrijft het segment dat je wilt ontvangen en dit wordt geleverd als platte JSON via een WebSocket. Wat Jetstream voorheen niet kon bieden, was geschiedenis. Als je records nodig had die al op het netwerk bestonden, moest je de repositories zelf backfillen voordat je kon overschakelen naar de live stream.
Jetstream v2 voegt deze functionaliteit toe aan de server. Het houdt een gecomprimeerd archief van het gehele netwerk bij en introduceert een nieuwe manier om dit te consumeren, naast de 'live tail':
- Netwerk Replay stelt je in staat om vanaf elk punt in het verleden bij te komen en zonder gat over te schakelen naar live data. Je verzendt (POST) je filters naar
planSnapshot, downloadt de verzegelde segmenten die via platte HTTP worden geretourneerd, en maakt vervolgens één keer verbinding met de live WebSocket aan het eindpunt. Replay is stateless op de server, zonder cursor per consument, zonder registratie van abonnementen en zonder dat er iets aan de clientzijde gestaged hoeft te worden. Jetstream fungeert hierbij als je buffer.
- Snapshots van het netwerk zijn nu ook mogelijk: een kopie van het archief op een specifiek tijdstip via HTTP (via
listSegments + getSegment), zonder live tail. Dit maakt gebruik van hetzelfde archief en dezelfde filters, maar zonder WebSocket.
Dit ontsluit veel geavanceerdere server-side slicing zonder dat lokale backfilling nodig is. Je kunt bijvoorbeeld een applicatie opstarten, een analyse uitvoeren over posts van een hele maand of herstellen van downtime, allemaal via dezelfde JSON-structuur als de live tail.
Het serveren van deze archieven is bandbreedte-intensief. Om te garanderen dat de service betrouwbaar en goedkoop in beheer blijft, vereisen we nu een API-token voor deze specifieke verzoeken. De live tail blijft open en ongeauthentiseerd; alleen bij het aanvragen van een archief is een token vereist. We zijn niet van plan om een authenticatievereiste in te voeren voor de live stream.
De v2-instanties zijn nu live op:
wss://jetstream.us-west.bsky.network
wss://jetstream.us-east.bsky.network
De bestaande v1-instanties blijven voorlopig ongewijzigd draaien en de live tail gedraagt zich op beide identiek, dus er is geen haast om over te stappen. De volledige workflow is terug te vinden in de documentatie over Network Replay.
Zoals altijd is deze infrastructuur open source en zelf hostbaar. Raadpleeg "Running your own Jetstream" voor meer details.
Een Jetstream SDK
Omdat Jetstream gebruikmaakt van platte JSON, is een SDK niet strikt noodzakelijk. Er is echter vaak sprake van gemeenschappelijke 'lijmcode': het opnieuw verbinden, het verwijderen van duplicaten, cursorbeheer en het decoderen van events naar getypeerde records. Daarom introduceren we de nieuwe Jetstream SDK's voor TypeScript en Go. Hierin maak je een Jetstream-object aan, geef je een filter op en loop je via for await door gedecodeerde, getypeerde events:
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)
}
}
- De TypeScript SDK is beschikbaar via npm, inclusief npmx.
- De Go SDK is beschikbaar als onderdeel van het Jetstream-project.
Meer details zijn te vinden in de Jetstream SDK-documentatie.
De Bluesky TypeScript SDK, gebaseerd op lex
In mei hebben we de lex SDK gepromoveerd naar een stabiele preview en beloofd dat de zelfstandige Bluesky-documentatie zou volgen. Dat is nu gerealiseerd: de Bluesky TypeScript SDK is herbouwd bovenop @atproto/lex. Dit betekent dat we geen legacy-codepaden meer onderhouden voor Bluesky-specifieke helpers. Het betreft hier de lexicon toolchain, volledig getypeerd van begin tot eind, van de protocollaag tot aan de app.bsky records.
Elk TypeScript-voorbeeld op deze nieuwe site is hiermee geschreven, wat een grote stap is in het verminderen van technische schuld. Dit zorgt voor betere codehygiëne en zou voorkomen dat LLM's (Large Language Models) aanbevelingen doen voor verouderde SDK's. Voor wie nog @atproto/api code gebruikt: dit blijft werken zoals voorheen, en de Bluesky API-gidsen dienen als referentie voor migratie.
Updates voor endpoints.bsky.app
Tot slot is de HTTP-referentie bijgewerkt. Het scheiden van deze documentatie van https://docs.bsky.app was de eerste stap in deze herziening; nu implementeren we de rest.
De nieuwe network.bsky.jetstream.* methoden die Replay mogelijk maken — planBackfill, listSegments, getSegment en getBlock — zijn nu doorzoekbaar met volledige request- en response-schema's. Daarnaast documenteert de referentie nu ook de WebSocket-endpoints van Jetstream, zodat de gehele Jetstream v2-interface op één plek te vinden is.
Wat is de volgende stap?
Alles uit dit bericht is vandaag live: de nieuwe site, de v2 Jetstream-instanties, de SDK preview en de bijgewerkte HTTP-referentie.
- Ben je nieuw op het netwerk? Begin dan met "How It Works", een visuele walkthrough over hoe records, lexicons en de firehose samenwerken.
- Bouw je iets op basis van het datamodel van de Bluesky-app? De Bluesky API-gidsen zijn nog steeds beschikbaar en volledig herschreven.
Als je de komende weken iets bouwt met Replay, horen we dat graag. De snelste manier om de richting van de SDK-orchestratie te bepalen is door ons te laten zien hoe je de stream integreert in je applicatie.