I would like to give an update on "federation" on Bluesky.

My expectation was it was unlikely we'd ever see this happen because "federation" on ATProto means basically reproducing the entirety of the Bluesky software stack. In old Big Data terms, on ActivityPub your instance is a "horizontal shard" of the network; ATProto forces full DB replicas only.

Still, we're seeing movement on this front, which I'd split into two categories:

1. Your fault (you reading this)
2. Aaron Rodericks's fault

The biggest movement on this front has come from the community formerly known as Black Twitter, which now has complete, viable alternative dupes of the whole stack:

blacksky.community/profile/did

This makes intuitive sense to me! My first question, looking at ATP, is "why do free dev for this protocol, controlled by one corporation, when Fediverse is right there and is more complete?". But the black dev community, from everything I saw, tried to adopt Fediverse *first* and basically got harassed off.

What I saw happen when Black Twitter came to Fediverse is attempts to build community resources— like shared cross-instance blocklist infrastructure— get demonized by white queers as being anti-queer (because they, personally, wound up moderated— due to, as far as I saw, entirely real racism). I saw multiple projects shut down or hobbled by this and good people driven off fedi. I don't know if any devs from that era are involved in the new Bluesky efforts. But the Bluesky efforts *are* thriving.

If you sign up with blacksky.community you get:

- Blacksky's "appview"/web frontend
- Optionally, Blacksky's PDS
- Blacksky's moderation layer (and you can optionally enable Bluesky's too)

Almost-complete independence! What I'm not clear on is to whether, or to what degree Blacksky relies on Bluesky's "relay":

(EDIT 2: There was an edit here with corrections, but I've removed that because the corrections may have been less correct than the original.)

Why does the "relay" matter? Well, because although Bluesky's claim is that moderation is "composable" in their system— that you can choose which moderators to follow— moderation decisions made by Bluesky are hard binding on systems they control. Someone blocked by Bluesky is blocked from the Bluesky appview, their content will get removed from the Bluesky PDS if they were using that. The Bluesky relay censors content that violates the data "schema"; I suspect (?) it enforces moderation also.

And this is a problem because the Bluesky moderators are *having a time*. This leads us to impetus #2 for Bluesky decentralization: A huge faction on Bluesky is leftist shitposters and trans folks who fled Twitter early under looming threat of censorship by Elon Musk. Bluesky *does not* seem to want this group in their userbase and repeated "odd" moderation decisions have reduced trust in Bluesky among this user community to zero. The death of C‍​harlie K‍​irk has brought this to a breaking point.

I don't want to talk about C‍​harlie K‍​irk, so I won't. Skipping forward:

We're now seeing a "Northsky" copy of the ATP stack coming together which seeks to be a Blacksky equivalent for the 2SLGBTQIA+ community. This will probably be viable within the next couple weeks, unless it collapses in toxic queer-community infighting (which may already be beginning).

So. Three fullstack ATP instances soon. Is Bluesky "decentralized" now? Well, no, not really. Let me run through a Hypothetical Scenario.

Imagine a hypothetical comic artist, "Gertrude". One day a hypothetical podcaster named "Louis CK" dies, and "Gertrude" posts something rude about this. Bluesky bans her. She's now deleted from the Bluesky PDS, blocked from the Bluesky relay and appview. Say, hypothetically, that virtually everyone agrees this was a bad moderation decision.

But Bluesky is decentralized, so we don't have to use the Bluesky PDS, relay, moderation service, or appview! We can Credibly Exit! Right? Right? (1/3)

I (me, mcc) never trusted Bluesky, so I've been self-hosting my own PDS from the start. I've been happily using blacksky.community for the last month (since Bluesky started gating access to their appview/web frontend on clicking to agree to a new TOS that seemed to me sketchy). Hypothetically, "Gertrude" could do the same. She can join Northsky PDS, make posts through Zeppelin, and Bluesky blocks her but Blacksky just fetches the posts from her PDS for me, and I get to read them.

Right? (2/3)

No. Because "Gertrude", in our hypothetical, *won't bother making those posts*. Because the vast, incredible, overwhelming majority of Bluesky users are still on the Bluesky network, and she is excommunicated. She *could* cultivate a group of followers who all use the Northsky infrastructure just so they can see her posts. But she could also cultivate a following on her Patreon. So Hypothetical Gertrude ignores Bluesky, posts to Patreon, and her Patreon posts get *shared* to Bluesky. (3/3)

And that's why I say, TLDR:

- I am legitimately excited about the work being done by Blacksky Algorithms! I am using their frontend and happy with it.

- Northsky is an interesting development to watch

- If you're on a Bluesky PDS, I recommend migrating off with one of these tools bsky.app/profile/did:plc:ii5jc

- Everything Sucks. A LOT of things would have to change at a social level for *any* entity other than Bluesky to have power or independence in the ATP ecosystem. I still don't trust Bluesky.

As an update since posting the above thread I have received replies from two people, one saying I am underestimating the level of stack coverage Blacksky has, another saying I am overestimating it.

The stack is just so tall! There are *so many* layers in this protocol's model. And it seems like every single one of them is an opportunity to introduce censorship

Update: Rudy who operates blacksky.community responded to this thread on bluesky. Above I said I wasn't clear on how independent Blacksky was of the Bluesky infra. His answer is "completely". They run their own relay (which scrapes PDSes itself), the relay feeds into their own appview, the appview feeds into their own client. bsky.app/profile/rude1.blacksk

And since they bridge end-to-end, in my Hypothetical Example above, they *could* choose to make different moderation decisions from Bluesky PBC.

So. The thread above. An update.

We finally got a live test of the "Gertrude scenario", when a popular Blacksky user got permbanned by Bluesky. I, using my own PDS and blacksky's website, can't see him or his posts ( blacksky.community/profile/did ). What gives?

A lot of people claim this is because Blacksky really is using Bluesky's appview, and gave me a way to verify this looking at headers. This seems to contradict Rudy's previous claims. I've asked Rudy for clarification: bsky.app/profile/did:plc:2aebn

Follow up, 2025-12-27: Rudy here confirms the Blacksky appview is still being worked on (eg: blacksky uses bluesky's appview still)

bsky.app/profile/rude1.blacksk

The sticking point, as he describes it, is "backfill". This alludes to the issue that makes me compare ATProto to blockchain: to get the features users expect, every node on the network must mirror the network's entire history. This is impractical, which is why bluesky is as of this moment a federated network with effectively only one node.

:frogsiren: BLUESKY HAS OFFICIALLY NETSPLIT :frogsiren:

There has always been more than one Fediverse. Different instances make different moderation decisions so some instances can't see posts by some users.

There has only ever been one Bluesky because every ATProto frontend uses the same Appview.

It is January 2026 and that's no longer true; Blacksky's Appview is available for beta use and there is at least 1 user banned on Bluesky but not Blacksky. And vice versa.

bsky.app/profile/did:plc:w4xbf

@mcc for us tech noobies in the audience, could you explain what does this mean? :thinking_sun:

@coracinho @mcc is like Mastadon amd makes a big deal of being decentralised, any one can run a server or build a client and interoperate, just like email.
This annoyed people because it wasn't practically possible to run a Bluesky server yourself, the demands for storage etc were wild.
are seeming to have made progress in doing so.

@falken @coracinho Also the *way* in which Blacksky is making progress seems to me to make it look improbable any of the rest of us will reproduce what Blacksky has done. It's taken months of Rudy's time and he's had to purchase storage for "terabytes" of data because *standing up a new Blacksky "instance", in a total sense, requires literally mirroring everything posted on the network*, including spam and old inaccessible chats on people's stream.place streams

Follow

@mcc @coracinho huh. Still!

Don't suppose there is a write up somewhere that digs into it? Like, rather than mirroring the firehose, could they not store new stuff, and fall back to grabbing from Bluesky if missing.

Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.