Social media is a gnarly coordination problem we need to decompose

I read a blog post this morning by the creator of bearblog.dev (which I am a huge fan of!), which posits a vision of an ideal slow social network.

We're all pretty familiar, and even mostly in agreement, with the criticisms of the major social networks we have today. And I personally like a lot of the properties Herman describes for this slow network. But unfortunately I don't think fixing the problems with social networks isn't a matter of designing a system with "good" properties.

There's a coordination problem at the core of any social network:

You want to be where all your friends are.

They want to be where all their friends are.

All their friends are not your friends.

Some of them (you, their friends) want to be where their acquaintances are, or their idols, or their enemies.

None of these preferences are clearly delineated in anyone's mind, and they intersect with the preferences of a much larger ecosystem of actors (companies, influencers, communities), who also aren't clearly distinguishable from each other.

So, all this in mind, you end up with a lowest common denominator social network, the dumbest thing, that can reach the most people, so that the most people will be on it.

If you bring preferences for how the social network should work things get even more complicated. Herman, for example, says that there should be a cap a on how many times people can post a day. That's a perfectly sensible preference, but unfortunately cuts out some of my favorite posters, and even worse, prevents the kinds sprawling, branching, discussions that I love. That's fine on it's own, it's a preference, but this preference is totally orthogonal to the social preferences I was talking about above. Its a huge barrier to overcome if you can only interact with people who like exactly the same system you do.

People want a huge diversity of things out of their social apps. Many, many people want algorithmically driven, maximally interesting feeds. I'm not even talking about revealed preferences stuff, many explicitly say this is what they want their social network experience to be like, and there are totally valid reasons for that preference!

One way out of this messy coordination problem is to build a platform with "good" properties specifically for some kind of niche group that all happen to share the same preferences. But there are a lot of preferences bundled in here that do not coincide. People interested the same topics as you, or people who care about social networks the same way you do are not necessarily the same people you want to be hanging out with.

If you do have a group in which everyone wants to hang out together, none of the things here really matter, and you should make a forum! But they really aren't the same experience as a social network (side note: more people should host forums! Discourse is amazing and so easy to run, and even a <10 active user forum is a great time).

So what's the solution? As the title may have given away, I think you need to decompose the different parts of a social network, namely, identities, data, and interfaces, into independent pieces.

With that people can create things in these different parts that have different values and preferences, and others can compose them really get exactly what they want.

You don't have to force everyone to be on the same network and to use the same interface. You can use an interface that limits how much you post, or how many posts from others you see, while others can use their algorithmic feeds and follow their favorite celebrities. And both of you can still connect to each other's identities, and see each other's posts, within your preferences!

This I think enables Herman's goal, you can make a small, slow, social network experience that works they way you want. Unfortunately, it doesn't solve all, or even most, of the problems of social networks, since so many of them are emergent behaviors of the whole network.

But! It lets different parts of the system evolve much more freely than what we have now, and that can lead to better feedback loops throughout the system. If "bad" dynamics are emerging in one part, interfaces can emerge to try and tackle that. Or systems that operate on the data level, or identity. The ecosystem has ways to evolve an immune response.

I think ATProto enables this. That's why Leaflet's built on it. It's also why I'm very much not worried about any of the "death of bluesky" type posts that have been doing the rounds. The things possible in the atmosphere today completely dwarf any of the major networks, and in my opinion it has the most viable and pragmatic abstractions of any of the alternative protocols. You can feel the aliveness in the developer community already, and I'm confident it's only going to expand.

Hopefully, someone builds something like Herman's dream social network on it. Anisota is already pretty close!