- cross-posted to:
- technology@lemmy.world
- cross-posted to:
- technology@lemmy.world
This post takes a look at ATProto from a different angle, and explores the value of some possibly less-noticed pieces of it.
The “Login with Google” button has been so useful and yet so horrible for the freedom of the web. Why does google get to be the gatekeeper to all of our web logins?
We need an alternative, but it also needs to be easy, and by making handles domains, and making it so that normal people can use and understand it, they have made it possible for an actually decentralized social login button.
Linking Identity to your Personal Data Store and using Domains as Handles is a crucialcombination that is really starting to unlock web freedom.
A lot of what I’m trying to get at with this post is that there is more than one way to leverage ATProto, and that there are some pretty major things it has started to do right that we really need right now.
We’re used to the idea that there’s more than one way to make a web app, and the same is true even if you are building it on ATProto. It hasn’t set a lot in stone, it’s just given us some bricks that we can all share.
The “AppView” is a component of the ATProto architecture that you are given nearly free rein on. It can be any kind of thing you want, and I think there’s all kinds of unexplored possibilities there.
You might even be able to make an AppView with a meaningful ActivityPub integration, or possibly borrow ideas about inboxes and outboxes as an alternative to relays.
this lead me to discover that there’s a Reddit-like client for Bluesky. That’s genuinely a great feature that they are open enough for that
So. Nobody gonna push back? It’s quite a convincing article. Especially this bit:
This is something I want to put a bit more focus on: how important the PDS is.
Giving people their own PDS is soooo crucial to having a free ( as in freedom ) internet. This needs to be something that I can:
- Self host or have somebody else host for me
- Download all of my data from, whenever I want to, and
- Grant other apps read and write access to
That last piece is crucial to the existence of all of these different ATProto apps. We are giving people their own data store and then letting them connect that to all kinds of different tools and experiences.
It does at least seem like the protocol is more sophisticated, and so perhaps carries more potential, than (say) the one powering this site.
Hosting your own PDS would be like hosting your own email, but with the caveat that you can only access it through the Gmail interface and need to use the Gmail relay to communicate with others. In other words: completely pointless.
There’s a lot of debate around the Bluesky relay and whether or not it’s posible to “scale down” ATProto.
Luckily, with all the attention that Bluesky and ATProto have gotten lately, there’s a lot of interest in running alternative relays just in case things go bad, and I think it may be possible that funding for a public good relay might materialize to protect from the potential failure or compromise of the Bluesky relay.
But I also want to draw attention to another non-obvious thing about ATProto: the relay is not required.
Let’s do a thought experiment. […]
Etc. But I’m certain everyone here has actually read the article so they’ll already be familiar with that thought experiment.
First of all that’s all hypothetical and secondly that thought experiment only talks about an app that uses the PDS as an auth source and data storage. It does not talk about your PDS communicating with another PDS, for which AFAIK a relay is needed.
It ignores what happens if your PDS provider goes down. While currently Bluesky can repopulate a new PDS with your old data, I don’t see how that’s going to survive them adding stuff to the AT proto that isn’t public and therefore not kept persistently in Bkuesky’s servers (e.g. E2EE DMs).
Fair point.
People are probably tired to push back a protocol that requires millions to open a second node https://lemmy.dbzer0.com/post/39621922?scrollToComments=true