Bluesky's follow graph is public — what that means for you
Updated 2026-07-25
On most social networks, who follows whom is the platform’s private property. On Bluesky it is not. The AT Protocol stores your follows as records in your own repository, and anyone can read them without an account, a key, or permission.
That single design decision explains most of what is different about the network — including why a tool like this one can show you your graph without asking you to log in.
What “public” actually means
Every follow you create is a record in your repo, of type
app.bsky.graph.follow, containing the DID of the person you followed and a
timestamp. Anyone can list them:
GET https://public.api.bsky.app/xrpc/app.bsky.graph.getFollows?actor=you.bsky.social
No token. No sign-in. The same is true of your followers, your likes, your posts and your blocks. Your mutes are private; almost nothing else is.
The practical consequences:
- Anyone can compute your ratios, your mutuals, when you followed someone, and who you dropped. Including you, which is the useful direction.
- Anyone can rebuild the network graph. Researchers do; so do spam operations, which is why follow-farming is easy to spot from the outside.
- Tools do not need your password to analyse you. If a read-only tool asks for a credential, it is either lazy or up to something.
Why your follows are more load-bearing here
Bluesky’s main timeline is chronological-ish and built from who you follow, with no engagement-optimising algorithm deciding what you “really” want. Custom feeds exist, but the default experience is: your list, in order.
That makes a stale following list expensive in a way it is not elsewhere. On a network with an aggressive recommendation engine, following a dead account is harmless — the algorithm routes around it. Here it is a hole in your timeline.
Starter packs: fast to join, slow to regret
Starter packs let someone bundle a list of accounts so a newcomer can follow all of them in one tap. They are the best onboarding mechanism any network has shipped, and they are also the single biggest source of follows people later cannot explain.
If your following list has a cluster of accounts you have no memory of choosing, that is where they came from. Nothing wrong with them — just review them once, now that you know what you actually read.
Feeds are not follows
A custom feed is a separate thing you subscribe to, and it does not put anything in your following list. If you want a subject without a person, subscribing to a feed is usually the better move: you get the content and your follow graph stays a record of people you care about.
Lists, blocks and mutes, briefly
- Lists are public collections of accounts, usable for curation or for moderation. Following a list does not follow its members.
- Blocks are public records. They are visible to anyone who looks, which is unusual and worth knowing before you use blocking as a statement.
- Mutes are private and stay on your device/account. Muting is the quiet option.
What this means for cleaning up
Because the graph is open, you can see the whole picture before touching anything — and so can a tool, without credentials. The free analyzer does exactly that: it reads the two public lists, compares them, and tells you who is one-way, who is mutual, and which of your follows have the biggest audiences.
Credentials only become necessary at the moment you want to change the graph: creating or deleting follow records is a write to your repo, and only you can authorise that.
The upside
An open graph means the tool you use is replaceable. Nothing here is locked in a platform’s database: if Blue Horizons disappeared tomorrow, your follows, your followers and your posts would still be yours, readable by whatever you use next. That is a much better position to be in than the one most of us had on the last network.