Economic Musings on Federated Networks

An uncomfortable reality of open source and free networks is that a lot of it is built by, and thrives on, nearly 100% free labor.

Economic Musings on Federated Networks

This is largely a brain-dump of ideas, largely derived from comments I've made within Lemmy communities about responses to my latest article, "Lemmy's Image Problem".

TL;DR: it came out that some devs of one of the biggest platforms in their respective space neglected to bring in some very basic functionality regarding the ability for users, mods, and admins to delete images that were uploaded. When a user asked about having this functionality, especially in the context of GDPR compliance, the devs acted like a bunch of entitled dicks, effectively bellowing at the person for daring to make such demands of their time.

I generally think these guys are being a bunch of assholes.

However, some people in the comment threads challenged my point of view, and stated that users have no rights to demand anything from developers who give away their work for free.

I have thoughts.

Sorry for the Brain-dump

There's this idea that open source projects are doing unpaid labor, with volunteer contributors hammering away at vast, complex pieces of code. It's a popular project, maybe even a critical piece of infrastructure.

The issue list is growing higher and higher. People are demanding all kinds of things that the platform can't do, and a whole ecosystem of things depend on the continued maintenance of these unpaid volunteers for years and years and years.

Businesses might even profit off of this labor, making more profit than the dev ever hopes to be paid. The extractive nature of capitalism means that the developer may barely see pennies for every hour of labor completed.

Source: XKCD. I think about this all the time.

These are 100% real problems that open source projects deal with every day. It's stressful, intolerable, and god-awful. The entire model of funding and supporting such efforts is fundamentally broken.

Where Fediverse Software Differs

To be clear, I'm not saying that none of the above things can happen to a Fediverse project. I saw a lot of crazy bullshit when I did Community Management for Diaspora. It's insanely hard work, and you're usually herding cats with too few resources while users get upset for whatever the reason of the day happens to be.

But, there's an attitude in how the Lemmy devs responded that just rubs me wrong. Weirdly, I think it's the hostility mixed with the sense of entitlement. Let me explain:

Ridiculous Feature Requests

I've seen a lot of bullshit feature requests before, where some wide-eyed nerd strings together a bunch of buzzwords in a really emotional way. Here are a few of my favorite ones:

I'm not able to find my favorite example of all time, given that both JoinDiaspora and GetSatisfaction are dead now. But I'll try my best to act it out.

Feature Request: P2P post-DNS Architecture

Hey, Diaspora team! You're doing a bang-up job building a new kind of social network that's open source and federated. I have a small problem: I think relying on HTTP for data federation is misguided. There are other options.

You should instead adopt an architecture that does not depend on DNS or HTTP, and instead follow a purely peer-to-peer model using distributed graph databases over a transport layer like XMPP instead. The fact that you are instead building on bog-standard web technologies means that Diaspora will never truly be decentralized. Please correct this egregious error!A Visionary Genius

Jesus Fucking Christ.

Here's the thing: none of these ideas are necessarily bad, on their own. But, there's a reason we stopped taking suggestions. It's primarily because users sometimes have no concept of how much work something takes, don't always know what they actually want a project to do, and sometimes don't realize that an idea might not even fit with what someone is trying to build.

If you were trying to build a video chatting app, it probably wouldn't make sense for me to open a request and demand that you add a section to it that holds various cooking recipes that I found online. It betrays the function of what the app even is, but it also gets in the way of what the app is supposed to do.

Reasonable Feature Requests

The mythical "Reasonable Feature Request" can be distilled to three things:

  • The feature is in service to what the app does, without fundamentally changing the whole thing.
  • The feature builds on existing structure and conventions, rather than inventing new ones from thin air.
  • The feature fulfills a tangible need that is currently missing and noticeable enough that people consistently ask why it's missing.

In the case that we're talking about with Lemmy, the various feature requests the guy made fulfill every requirement:

  • This is a social communication platform, and to keep it social, some management tools for assets and content are necessary.
  • Media and images are all handled by pict-rs, we just need an easy way to delete uploads that we no longer want to be there
  • Users need to be able to delete sensitive images, and Admins/Mods need the ability to delete illegal content, both categories of things can be accessed in the storage area by anyone with the correct URL.

The response by the Lemmy devs was unwarranted, shifting from "I'm busy and not going to do this, a volunteer should do it instead", and "HOW DARE YOU DEMAND US TO DO THINGS FOR YOU, YOU'RE NOT A FUCKING LAWYER AND I DON'T HAVE TO LISTEN TO YOU."

To say that this is jarring and asinine are beside the point. What's really bizarre is that this platform is four years old. People have been raw-dogging their servers in production for this entire time, with tooling that is barely acceptable, and potentially a world of liabilities.

What About Those Poor Devs?

More than a handful of people have doubled down and stated that they think the Lemmy devs are in the right, and that no one should demand anything from people working for free. Ostensibly, I agree with the premise, but not the reality:

  • These devs are bringing in a substantial amount of money in grants, crowdfunding, and sponsorships.
  • The devs are building a federated social platform, and their network depends on the volunteers self-hosting it to grow.
  • The project's ecosystem and the growth of the platform both feed into the funnel of grants and money.

First: I would never say that living off of open source crowdfunding money for income is easy. It's not. You tend to make sacrifices or find other ways to sustain yourself while this is happening. That can demand a lot from people running a project.

Here's the thing, though, and it's really, really important when it comes to Fediverse platforms: the people running your platform, the people advocating for it, the people building apps for it, the people donating their time, effort, and money to you...well, they're your primary stakeholders.

The cost of an instance

I'm going to say something that probably will shock absolutely nobody: hosting a node in a federated network is not profitable. I would go out on a limb here to say that most people running instances are paying out of pocket for everything on their server, and pulling in negative dollars every month.

What does this mean?

The operators, who to some degree help the project gain visibility, support, and money, are themselves doing unpaid labor:

  • Community Building
  • Moderation
  • Curation
  • Hosting infrastructure
  • Fending off Hate Speech /CSAM / targeted harassment / extreme violence & gore / etc
  • Dealing with weird user influxes every time a big social network really fucks up.

It's actually a huge deal. The network runs on people willing to put in the money, effort, time, and mental and emotional labor to keep services running. If a service goes down and never recovers, the users of that instance are shit out of luck, and have to start all over with making connections.

Trust & Safety Matters

There are a lot of factors that go into the success of a Fediverse project. The common denominator is relatively simple to understand: good optics of a project leads to more users, leads to more communities, leads to people building all kinds of apps and tools for those communities, leads to more people being willing to donate to a project.

Building goodwill with these people, your stakeholders, is absolutely crucial to this cycle. You don't have to honor every superfluous request that comes your way. But neglecting to provide reliable tooling for protecting an instance is an extremely dangerous move: the longer an instance just hangs out without the necessary tools to protect itself from the worst of the worst, the worse the problems become over time.

Things are bad right now

It's so bad that the only recourse for admins right now, aside from defederation or shutting down entirely, is to rely on third-party tools because the core platform gives you almost nothing to handle them sufficiently.

This isn't to say that third-party stuff is bad. Quite the opposite, it's a godsend. But, if your core architecture doesn't account for those needs directly, your platform is going to increasingly face a third-party ecosystem where things become rickety and brittle and break easily.

In Conclusion

Think of it like how Bethesda has a tendency to pump out a buggy, unstable, barely-finished game, and then lean very heavily on unpaid volunteer modders to gradually make their game awesome, or at the very least, playable.

Bethesda at the very least makes money. The Lemmy devs make some money, but their current strategy of leaning on others to do essential and important work to supplement their platform is an appalling choice. The fact that they've barely made any considerations to fixing this in core, since the beginning of the project, is not a great sign.

At the end of the day, a project is nothing without the people who use it and support it. Without investing in essential quality-of-life features that will help their instances weather the storm, people will ultimately decide to either move to a different project, or pack up and leave the network forever.

In either case: where does that leave you?