The Social Web I Want

I’m warming to the idea that engineering is all about choosing which problems you want to have. I don’t know that I believe that you can choose to have no problems, but I do believe you can choose to have tractable, well-understood problems or problems that you can shrink or permanently solve.

I’m thinking about this now as BlueSky acquires millions of new users overnight thanks to X punching a bunch of new holes in the hull of the already-sinking ship it acquired from Twitter. My timeline on Mastodon is full of people talking shit about BlueSky and my timeline on BlueSky is full of people talking shit about Mastodon. Each timeline is convinced the other is more centralized or gives users less power or is somehow A Mistake and not what The Future Of Social Media should be.

And none of this is that surprising, and I’ve developed a well-honed strategy for dealing with this kind of situation, where I agree with thoughtful, good, conflicting takes: just decide both are bad and enjoy feeling smug and correct about how everything is bad.

Sadly, I think age might be getting to me, because deciding everything is bad and trying to convince everyone else about that doesn’t feel like a good answer anymore. Something something productive contribution something something.

So if we’re going to be a productive adult about this, which, I guess, where do we start? Certainly not by re-examining our priors that both these solutions aren’t actually what I want; I’m going to be a productive adult about this, but I have limits. Instead we’re going to return to where I started this blog post, talking about choosing what problems you want to have, and take a look at the problems these social networks have chosen to avoid, and the problems they chose to have instead, and the problems I want to have.

The Problems Defining BlueSky

Christine Lemmer-Webber (an author of the ActivityPub spec) recently posted (and then did a massive recap thread) about BlueSky and how decentralized it is or isn’t. I mention it and link to it here explicitly and by name because I think it’s a good take and feel positively about it and will not be critiquing it or throwing shade at it. It’s a pretty good, well-considered and reasoned take, and seems pretty fair to me.1 There’s room to object to it, as there is to any good, well-considered and reasoned take, but it feels pretty comfortable to stand behind.

In this take, she uses a framing that I would like to borrow, reframe, and expand on here: the problem BlueSky chose to solve is how to replace Twitter.

I think this is the core problem BlueSky is solving, in that failing at it means the project as a whole was a failure. I think that drove decisions when it came to other problems. I think BlueSky decided that hosting your own social media presence was too hard for almost all users, and decided not to have that entire category of problem. Yes, you can self-host your Personal Data Store, and there are plans and the spec allows for hosting the App Views and other parts of the architecture, but I think these are advanced features that a truly negligible number of users will engage with, and not a load-bearing part of the BlueSky user experience. Because they chose not to have the self-hosting adoption barrier problem and all the attendant education and support and tooling problems that come with it, they got a different problem category: moderation. By hosting everything themselves so that others don’t have to, they decided they want to deal with deciding what they will and won’t host.

On a more technical level that fewer users will care about, the way they architected their backdoor out of them hosting your content also made some choices about what problems to have. They decided to use content-addressable storage for posts to avoid the problem of servers going offline unexpectedly; this left them with the problem of bad or misbehaving actors not deleting or editing content when they’re supposed to.2

To be clear, I’m not making the argument that these are bad choices to make, I’m just arguing these are the tradeoffs.

The Problems Defining Mastodon

The problem Mastodon3 chose to solve, at its core, is “how do we create the perfect person through the power of scolding?” (I’m joking, do not show up in my mentions to scold me.)

Jokes aside, the problem Mastodon is trying to solve is “how do we make social media truly distributed and decentralized?” And I think that’s a multi-part goal, but I think failing at either part means Mastodon has failed at its goals, so I do think both are core problems to Mastodon.

The first problem Mastodon needs to solve is what distributed, decentralized social networking looks like. They went with a familiar model for this: servers, like IRC or email or XMPP or Matrix or blogs or… you get it.

The second problem Mastodon needs to solve is how to make that model of social networking catch on; you can’t claim to have made social media distributed and decentralized by shipping tools that nobody uses. And I think a subset of Mastodon users would argue that they don’t care about others using it, and that they’re glad that the X users that are inferior to them and do not deserve nice things like they do migrated to BlueSky instead of Mastodon, where they would bring down the tone of the whole site. As you can probably tell, I have some feelings about this viewpoint, and will be ignoring it, because my feed is full of people talking about BlueSky’s success with some serious rivalry vibes, so apparently at least some people care about whether Mastodon’s audience grows to include all the people they want to talk to.

Anyways, Mastodon chose to solve this problem by adopting a lot of the features and conventions and user experiences of Twitter.4

And I think those decisions helped them in their goals.

Using a federated server model leaned into the distributed, decentralized goal a little more than BlueSky did, but offset the adoption/education costs by centralizing them in power users, who pay for non-power users. And by sidestepping that problem, they now get to wrestle with the problem of server admin burnout and servers disappearing suddenly and helping users figure out which servers are going to stick around and are safe to make their online home.

Using the familiar user experience and paradigms of Twitter meant that switching costs were lowered and the base user experience required little in the way of education. But by sidestepping that problem, they now get to wrestle with the problem of users expecting the same experience a centralized Twitter app could give them, which a decentralized and distributed application can approximate but can never really deliver because it turns out the architecture of things matters. So you get missing replies and can’t search and can’t agree on whether you should be able to search or not because you could on Twitter and this looks like Twitter and so people expect to be able to use it in the same ways they used Twitter but also it’s not Twitter and so people expect it to not need to work in the ways Twitter worked that they didn’t like and want it to be not-Twitter.

The Problems I Want to Have

I do not envy BlueSky or Twitter any of their problems because I, personally, do not want any of those problems.

Those seem like nightmarishly intractable or expensive problems to me, and I try to avoid having problems that fall into either of those categories. I’m much more comfortable with cozy little problems that can be solved by some guy sitting in his home office in his pajamas. This, necessarily, limits the scope of ambitions I can have, because it turns out some guy sitting in his home office in his pajamas is not capable of responsibly doing a whole lot.

So let’s talk about some problems I don’t want to have:

  • I don’t want to be responsible for moderating content. I hate needing to mediate or arbitrate because I’m an eminently gullible individual who’s very easy to sway with arguments. Moderating seems purpose-built to kill me with anxiety.
  • I don’t want to be responsible for hosting other people’s content. Not just because I believe if you aren’t going to moderate it you cannot responsibly host it, and I’ve already decided I’m not going to moderate it. But also because I believe hosting people’s content implies a serious ethical obligation to them. People build their livelihoods on social media. They host important memories and educational tools and historical artifacts on social media. I do not want the responsibility of maintaining those records; that would imply a need for insurance and business continuity plans and all sorts of things to ensure that even if something were to happen to me, personally, the responsibilities are still met. That sounds exhausting and I don’t want to do it, so I can’t host people’s content.
  • I don’t want to try and emulate existing social media. I think one of the things that frustrates me most about software is when two things that behave differently look similiar, especially when it’s done on purpose. I don’t want to replace Twitter in form; I want to replace it in function. I don’t need my solution to look like Twitter, I need to be able to use it to get the value I got out of Twitter.

This implies a certain set of problems I’m going to have, instead:

  • If I’m not hosting for people, I need to find some other way to lower the adoption curve or I need to be okay with no adoption.
  • If I’m not going to emulate existing social media, I need to teach people about how to transition into using the new thing, or I need to be okay with no adoption.

Being okay with no adoption is starting to look like the right thing here, which means I’ve got a new problem: how to be social when there’s nobody else around.

Fortunately, Mastodon is built on ActivityPub, an open standard that offers a wide array of possibilities for interoperating social software. So it’s okay if I’m the only person using my software; I’ll still be able to talk to other people using other software that made different tradeoffs about which problems to have and which to avoid.

Of course, that means that people interacting with me may not be interacting with the same presentation or capabilities that I’m interacting with and that can add friction to our interactions. Fortunately, being neurospicy means I’m already very familiar with people interacting with a different understanding of the situation than the one I have, so I feel pretty well-equipped to have that problem and don’t mind it.

Of course, I’ll need to write software to support this version of a social web, the version I want, because it doesn’t exist yet. But that’s also a problem I’m well-suited to having, because I’ve never encountered a situation I couldn’t turn into a problem that software needed to be written to solve.

What does that software look like? Probably a lot like a blog with ActivityPub integration, a dashboard to surface replies, and possibly the ability to quote all or part of a reply. I specifically don’t want comments or replies to show up automatically, because I don’t want to host other people’s content that I need to be responsible for and moderate.

It might have a “like” button or something. Who knows.

Replies to other people that I want to write will probably be hidden from the timeline or deemphasized in some other way, because the core of the experience is blog-like. There’s probably a feed reader and ActivityPub client smushed together in the dashboard so I can read things other people are saying.

Content lives on my server that I host. Ideally, the software can be a single binary dropped on a $5 VPS with the maintenance looking like “have you tried turning it off and back on” and, if you really screw up, “muck around with some SQL I guess, good luck”.

I just, at my core, want to be able to read what my friends and colleagues and peers and nemeses and rivals and people I look up to and people whose work I’m interested in are saying. And I want to be able to say things to them. And I want to be able to see what they’re saying to me.

And I don’t want it to all disappear on me in like a decade when a company decides it isn’t making enough money off of it, or in a couple years when the poor jerk that got stuck with all the power and responsibility burns out and says “I’m done.”

And I have everything I need to get all those things, so that’s the social web I’m holding out for. Until I get it, I’ll shitpost on Mastodon but I expect that content to disappear at the drop of a hat. And I’ll maintain a BlueSky account but I probably won’t post there much because unlike Mastodon I knew all this about myself before posting anything, and it seems easier to not start than to stop. But I want to see what my friends only on BlueSky are saying, and so I’ll live in read-only mode while I fuck around pretending I’m gonna build something else.


Footnotes

  • 1 Christine Lemmer-Webber has forgotten more about social networking than I have ever learned, and I’m not fully sure why you’re here reading my nonsense instead of her vast body of writing. 
  • 2 This is not, to be fair, a problem unique to BlueSky; the web as a whole has this problem. But the content-addressable storage makes this situation worse because when web archives keep things online, they do so under a different URL in a noticeably different context. Content-addressable storage means that all hosts of the data are presented as equally authoritative because the whole point is you should be able to use them interchangeably. So if one doesn’t delete or update when you tell it to, to the user it is indistinguishable from you not deleting or updating it. It’s a subtle difference, but it is a new set of problems that needs wrestled with. 
  • 3 I keep saying Mastodon. There’s plenty of room here to argue about whether I’m talking about Mastodon or ActivityPub, or both. I find that argument boring and will not be having it. Feel free to assume I’m talking about whichever makes you happier for me to be talking about. 
  • 4 Here I’ll make the distinction. Mastodon absolutely did this, ActivityPub unequivocally did not.