Hacker News new | ask | show | jobs
by danabramov 12 days ago
>It probably is entirely true that different apps can spin up on atproto independently

It's true, and I want to emphasize that they need nothing to do with microblogging or Bluesky posts. I think it's important to internalize this because most discussions about Mastodon are about microblogging modality. But, say, Tangled is a git hosting with social layer (issues, PRs) on atproto. So we are really comparing fundamentally different ecosystems already. Atproto is not centered around Bluesky posts or Bluesky app; it's just that Bluesky app happens to be the biggest app built on top of atproto primitives.

>This, what do you say right here, is the actual concern. This specific app (or any atproto app) appears to have significant lock-in—to the point where you identify it as "natural" that it would be so—while selling itself on decentralization.

You're starting with the Mastodon perspective of "a social network is a set of fragmented views of the network with no shared sense of identity or global aggregation/search which talk to each other" and consider it natural.

Whereas I start with the regular user's understanding of a social app — it's a place where you can come, where you can see the entire world at once, where all features (global search, recommendations, follow graph) are global by default, and where you don't "belong" to any particular community to an extent that this community can cut you off from your followers or ban you. Instead, the app is serviced by app's developers and you're at their mercy.

Now, what does atproto try to do?

From the user's point of view, it looks as the familiar "centralized" approach — apps can have global search, recommendation algorithms, there's no fragmentation. Each app is a prism over the entire network and always shows a consistent view over it. App developers do have full control over how the app presents it. There aren't 100 copies of the same app because there are 100 communities on it. This split into instances is a "Mastodon-brained" way of thinking.

However, the underlying data lives in an app-agnostic layer. So Blacksky was able to kickstart their own projection of atproto network (filtered down to Bluesky stuff since their app is initially a clone of Bluesky). It's not an easy job to make it work for billions of posts, but no Mastodon instance even tries to support that scale. Atproto makes supporting that scale possible, and then we say "oh but this is expensive". Of course it is — it's expensive to store content from millions of people with any technology. But unlike centralized services (which atproto tries to match in baseline UX expectations), it is possible to spin up alternative projections of the same network that fully participate in it, when folks have concrete reasons to do so. (For example, Blacksky is able to take different moderation decisions as a result.)

You can go further. https://reddwarf.app/ is a working app displaying Bluesky data that does not have a backend at all and does not use Bluesky (or Blacksky) API servers. Instead, it loads data directly from the hosting layer, and uses https://constellation.microcosm.blue/ network index for querying relationships (like "give me a list of likes for this post"). This is less efficient than maintaining an index (so it loads a bit slower) but it's totally a workable model. The Constellation index itself, if I'm not mistaken, runs on someone's Raspberry Pi.

Of course, you can also "scale down" atproto to make it apples-to-apples with Mastodon. You'd add some code that filters down events only to those that are "relevant" to people who are "on" your "server" and their follows. This would be a "small world" atproto that would be easy for anyone to spin up. It's not very exciting but I guess we'll see more experiments in that area as people realize it is possible. But it's also just less exciting because you can also run the real thing if you're motivated enough. And the fact that anyone can choose to do it if there's a real need means people don't create a 1000 of shallow Bluesky clones. It just doesn't solve any actual problems other than trying to win arguments like this.

I don't think "decentralization" is a super useful prism to think about atproto. Atproto is a high scale syndication protocol, like typed signed RSS via HTTP and WebSockets with a shared data model and identity upstreamed into the web. This protocol enables independent apps, independent hosting providers, and independent caches and relays to build and participate in a shared ecosystem. That ecosystem lives on the web, so it's "decentralized" in the same sense that web itself is. But it doesn't mean that each product must be split into a thousand pieces at the UX level.