If you ask a list of specific questions, that would help a lot. I might be able to write something or reply inline here.
Concrete example: Bluesky banned a person, and Blacksky community disagreed with that ban. When Blacksky switched http://blacksky.community app to have its own complete stack (including its own database), that person’s posts became visible there (despite them being banned on Bluesky app) because they reversed that moderation decision. This was possible because the data for this person’s posts still lives on their PDS.
In general, the data being “pulled outside” products is what enables new products (or forks of products) to come onto the scene and immediately begin competing because they don’t have to solve the “cold start” problem. If you log in, all your stuff is “already there”. And it’s the same shared world so the community doesn’t get forked. You’re just looking at the same underlying data under a different lens, and products act like lenses rather than boxes.
This doesn’t mean that “censorship” can’t exist (every layer can ban you, as always) — but it means that every layer of the stack has opportunity for competition that isn’t possible with centralized platforms. In fact, arguably, it’s more flexible than a Mastodon instance because you can’t fork a Mastodon instance “with all its users” and offer a version that reverses some moderation decision. In atproto, you can.
PLC is set up in a way where the database is fully visible and exportable. any censorship would show up in logs. if bluesky ever pulls it off at least part the community will stop trusting them, start their own server and patch apps to use the new domain. i know its not that easy in practice but its possible because everything is open source.
> ...your account is tied to the domain hosting the DID
thats nothing like the activitypub model. the atproto equivalent of an instance is your PDS which is something most users dont self host. did:web is not bound to a PDS, it uses a domain you own and a static https server you probably already have to host one file in `.well-known`. the risk of losing your account is much lower because someone would have to steal your domain or vps. theres no admin who can take it away.
Isn't that similar with Mastodon? Someone on an instance that does not federate with yours will not see your posts, and I guess someone on an instance that would censor you would not see your posts?
That someone would have to change instance if they disagree with the moderation, and doing so is more painful with ActivityPub than with ATProto, right?
Disclaimer: I have no skin in this game, I don't use social networks. Just interested technically :-).
No, there is not. There is blacksky, northsky, eurosky. They all display the data from your PDS.
It’s just as cheap as hosting any webapp.
But what you’re asking is not that. You seem to be saying “I want to host my own Bluesky appview”. That’s resource-intensive for the same reason “I want to host my own Twitter backend” is expensive. It has nothing to do with the protocol! If you want to host a database application server that stores gigabytes of data from millions of users forever, you’re gonna have to pay for that. This isn’t some kind of gotcha with the protocol, it’s just common sense.
That’s the “instance brain” from my article. You’re used to the shape where the only thing you can host is a “isolated copy of the same app that only deals with a few users”. But that’s not the atproto topology! What atproto lets you host is the real thing. Like a second real Twitter app that “just works” with all existing users. That’s the value proposition here. Or — if you’re not actually in the mood to host a product with millions of users — you can make your own app that has nothing to do with Bluesky. And of course your own app aggregating its own data would be cheap to host because it won’t be aggregating millions of records.
Do you see the disconnect? Atproto allows competition at big scale — actually forking real products — which AP doesn’t do in principle. But you’re using this ability as a knock again atproto. Atproto scales arbitrarily up, so you take the highest scaled up example you can think of (Bluesky app with all its users and posts) and compare it to the cost of running the most scaled down version of AP (an isolated app for some people).
To make the comparison fair, we’d need to scale atproto down in your example. You can definitely achieve scale identical to Mastodon (and thus identical in costs) by taking the Bluesky app server and adding custom logic which ignores all events that aren’t relevant to some hardcoded lists of users (your “member list”) or people they follow. That would be an accurate comparison, and yes, you could totally host that.
People don’t do that because it’s kinda niche. Maybe it would be nice if there were ready-to-go distributions of Bluesky appview that do this kind of filtering. But also — it’s just kind of a non-goal for most developers on the platform. Most developers create their own different apps, rather than host alternate projections of the Bluesky content of the whole world.
What steps do I have to follow to get the majority of users to see my content?
Another example. Let's define decentralisation in terms of bus factor:
How many companies could go bust today before most users would notice?
> To make the comparison fair
Okay, so let's build that, then we can actually talk about building a decentralized network on atproto.
How do I build a relay that fetched all content from people I follow, plus all replies to those posts (no matter who sent them), plus automated backfilling if I click on the profile of someone who I'm not following yet?
From what I understand, in bluesky the PDS does not know about replies to a post. So I'd need to scrape the entire network anyway, no matter what, even if I only store some of it.
And every blue-stodon instance would have to scrape every single PDS. So it's a much much worse O(n²) issue, isn't it?
Migrating to a different App View should be painless in theory (app views are not supposed to collect any state that is not saved in the PDS, not sure if Bsky does or not), and you can use multiple app views with one PDS. On Mastodon, you have to migrate both at the same time, and moving content across instances is not yet a fully solved problem.
Blueksy holds all the power, while the users hold none, whereas with Mastodon has many separate communities, similar to the old-school BBSes, forums, IRC and teamspeak servers.
I'm hoping that perhaps my personal perspective shades why "instances" comes up, or why the reaction on HN seems to include the wider scope than the article itself covers.
- 221 with over 5 accounts
- 74 with over 20 accounts
- 19 with over 250 accounts
- 8 with over 1000 accounts.
And only a handful of those have open signups (13 with open signups have >50 users).
Many of them are actually ActivityPub instances with a PDS bridge, e.g., https://join.wafrn.net/
And most of the other open signup instances are also primarily designed as their own social network, just using AT proto as a compatibility layer, e.g., https://sprk.so/ https://haruhwa.com/ (which is an invite-based, snapchat-style ephemeral social network), https://surf.social/, https://pckt.blog/ (a microblogging platform), aesthetic.computer (a collaborative programming/art platform)
That leaves only bluesky, blacksky, eurosky, selfhosted.social, self.surf and npmx.social.
Even during Facebook's heyday, the unsuccessful diaspora/friendica/gnu social/etc networks had more decentralization than that.
Don't get me wrong, I think it's pretty cool that you can run all these different apps and have them store their data on their own PDSes. And theoretically it's possible for everyone in my Bluesky feed to be on their own PDS and use different apps. But the question from a Mastodon point of view is: is that the case in practice, and if not, how likely is it that there will ever be a significant portion of non-Bluesky posts in an average microblog feed, on atproto?