Sky View - A Look Into the Bluesky Jetstream
One of the more interesting features of Bluesky is the Authenticated Transfer Protocol
or atproto
.
The AT Protocol (Authenticated Transfer Protocol, or atproto) is a standard for public conversation and an open-source framework for building social apps.
It creates a standard format for user identity, follows, and data on social apps, allowing apps to interoperate and users to move across them freely. It is a federated network with account portability.
The idea of having a protocol be the base that Bluesky is built on makes for some interesting possibilities.
Enter the Jetstream
To simplify consuming the atproto
firehose, a new service was created - Jetstream.
Jetstream is a streaming service that consumes an ATProto com.atproto.sync.subscribeRepos stream and converts it into lightweight, friendly JSON.
The JSON provided by Jetstream can be consumed via WebSocket. There are currently 4 public instances of Jetstream, details are at https://github.com/bluesky-social/jetstream. Their code is open source, so you can run a Jetstream node of your own if you want.
To get a quick idea of what the JSON stream looks like, checkout the Bluesky WebSocket Feed Monitor by Simon Willison. The core of it is pretty simple to figure out.
Sky View
I wanted to experiment with the Bluesky Jetstream of live posts. The result is Sky View. I had Claude do most of the work, via Cursor.

It is 100% client side JavaScript that attaches the Jetstream WebSocket and starts
parsing the JSON for each message. View Source
is all you need to do get at all of the code. Each post goes into the Live Posts
column, while
tracking various metrics and specific content from each post. That data is then
used to display the current Popular Tags
and Popular Threads
lists. Each of those
shows the top 10 tags and threads respectively.
There is also a filter field if you want to only see posts that contain specific text. That
filter also applies to the Popular Tags
and Popular Threads
lists.
The links in the Popular Tags
and Popular Threads
lists are all clickable, while the
stream is running. The Live Posts
section though tends to scroll by too fast to be
able to click on just one post. If you want to do that, click the Pause
button first.
If at any point you want to start over, the Clear
button will take of that. Any changes
to the filter field will also automatically reset everything ( acts like pushing the Clear
button ).
It took a fair bit of coaxing Claude to get it to this point, along with a bit of hand coding. In the end though I’m fairly happy with the result - a simple way to see what is being talked about on Bluesky right now.
If this is an area that you find interesting you should take a look at firesky.tv as well. You can read more about the background of Jetstream at https://jazco.dev/2024/09/24/jetstream/.