They could rely on some relays to build their AppViews. The flexibility is already there.
You can’t “get” the majority of the people to see anything, that’s not how anything works. Neither on centralized systems, nor on Mastodon, nor in real life.
On a centralized platform, if you get banned, there are no steps you can take. Your account is down — goodbye.
On a Mastodon instance, there are also no steps you can take. Your account is banned on the instance — your entire identity goes down with it.
On atproto, it depend on whether you’re banned at hosting or app level.
If you get banned at hosting level (usually something clearly illegal would trigger this), you’d have to find another hosting (assuming apps haven’t banned you too).
If you get banned at an app level, people will see you through different apps. You’re right that this presupposes that there are apps that (1) people use, that (2) haven’t banned you, (3) and that display the same type of content.
But, even if you’re looking from solely censorship resistance perspective, atproto at least enables competition in moderation space to happen. If enough people disagree with the lens, it is possible to build a an alternative lens over the network.
This isn’t theoretical — there was a situation like this where a person got banned at Bluesky app, but the Blacksky community wanted to reverse the decision. When Blacksky got an independent app database running, they overrode it. But yes, this does require investment and a subset of community being interested in alternative moderation / features / etc. You can’t “force” people to hear you but there’s a market for alternatives.
> 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?
The realtime part is trivial. You just filter the stream of everything as it comes in.
Backfill would either require you to index the network yourself or to rely on existing indexes. You could use Constellation (https://constellation.microcosm.blue/) to fill up threads (query by thread root ID), and you’d hit the user’s PDS to fill up their profile page.
You could actually see that in practice now at https://reddwarf.whey.party/ which my article links to. It’s a Bluesky client that doesn’t have a server at all (and doesn’t hit Bluesky API). It’s lazily getting stuff on the client purely from PDS’s and from Constellation. It’s a bit slower than an appview-backed experience but it works fine.
You're constantly looking at it from the wrong perspective. I don't care about the instance I'm on banning me because I am the one that hosts my instance.
What I care about is that I am able to connect with any of my friends without the data going through any central arbiter that can decide what we get to see or not.
And on mastodon, if one instance defederates from me, pretty much everyone else will still be able to interact with me anyway, it's not the end.
> On atproto, it depend on whether you’re banned at hosting or app level.
> If you get banned at hosting level (usually something clearly illegal would trigger this), you’d have to find another hosting (assuming apps haven’t banned you too).
This isn't as different as you make it sound. Most people on AT Proto are using Bluesky, so "getting banned" is fundamentally the same for them as getting banned from a Mastodon instance. Conversely, you can just run your own Mastodon instance and the only thing you'd have to worry about is defederation (an "appview ban").