Self-hosting day-to-day services is a pretty cool experience, but as adoption grows among your relatives and close friends, the responsibility to keep them healthy and secure grows as well. When I started hosting a Matrix backend (Synapse), I created accounts for myself, some family members, and a few close friends. More friends and family followed, but I suggested they create accounts in the default homeserver hosted by the Matrix.org foundation. The reason being that their server will surely be more stable, and I don’t want to have dozens of people asking every time I break my homelab.

When my aunt, a non-tech woman in her sixties, told me, “Element was not working; it says something like it cannot connect to the server” for her, my first thought was there was something off with her phone. After all, if it’s working for us all and not for her, it must be something on her end. The day after, my sister-in-law told me she didn’t get a message about a theater night we organized, and I started suspecting there was something off, not just for my aunt, but for some other users.

It was not until I saw this toot by The Matrix.org Foundation that I realized what was going on. The accounts of my aunt and sister-in-law were created in the homeserver run by the foundation, while the rest of my family used mine. This realization brought two ideas to mind:

  1. As a decentralized protocol, the failure in one of the nodes (even if the biggest) did not disrupt activity on other nodes.
  2. If a protocol is decentralized, but most people use the same instance, the purpose of decentralization is kind of defeated.

The problems of being the biggest provider

First things first, this article is in no way a criticism of the Matrix.org Foundation and Element teams, which are doing excellent work to bring and support this technology. I admire and deeply respect their work.

The natural answer to the questions raised above is “Cool, let’s spawn new servers!” but that comes with additional questions related to funding, operational costs, moderation, maintenance, etc. A few months ago, The Matrix Foundation published a blog post explaining why they made the decision to introduce freemium and premium accounts on the server they host:

We’ve kept the matrix.org homeserver around so far, despite its costs, as we consider it essential to seed the network in support of the nurturing part of the Foundation’s mission: despite Matrix being decentralised by design, users need a trusted place to create a free Matrix account to try it out in the first place.

However, we can’t continue to bear the cost of the server as is, and before we get to the extreme position of being forced to turn it off leaving its 370k monthly active users in the awkward position of finding a new home for their account, we’ve decided to try to alleviate some of these costs by setting-up a freemium offering and proposing premium plans in addition to the free ones.

I cannot blame them for decisions like this one. In a world where we’re used to having Internet services like mail, chat, blogging, etc. for free (not quite, as we are often forced to give away our privacy, but you get the point), when a service provider decides to charge for some features, the message is not always welcome. In many cases we’ve seen corporations offering free services until they have a sufficiently large customer base to start monetizing it. I don’t think this is the case, and I trust them when they say this is a survival measure.

We have to realize that digital services have running and operational costs, and as users, we have to pay them one way or another.

In some cases, you just have to go through a paywall. Plain and simple. And it kind of makes sense. Let’s say running a certain service costs €1000 yearly for 200 users. Paying 5€ each may be the most sustainable way to keep the service running. This approach may also be used by a for-profit company, offering free software as a service, and getting a profit margin out of it. Sometimes, the cost per user is so low that one individual can handle the costs, and gift the service to the community. However, this doesn’t escale for millions of users, in which hase funding a foundation that carries the heavy weight may be sensible as well.

All these options come with some drawbacks as well. Paid subscriptions for every service may leave some people out, as not everybody can afford a paid subscription for a mail service, a chat, a blog, social media, etc. You also need to make sure you’re not locking to a vendor, as otherwise you will be at their mercy in terms of security, costs, and features. If a provider doesn’t apply security patches, dramatically raises the running costs, or limits the features in a way you don’t agree with, you should be able to move on to another provider, taking your data with you. Relying on an individual who selflessly provides a service to the community puts, in my opinion, too much pressure on one’s shoulders. That’s the reason why I don’t open my Synapse server to the general public. I cannot guarantee an acceptable uptime because this is a side project for me, and I would not like thousands of users relying on my pet project. The community could be at risk if, at any point in time, that person has to quit (costs, time, death, etc.) putting the users in a difficult situation. The problems of having a single foundation running the service for 99% of users defeats the distributed nature of the protocol and all its benefits, so that option is also not ideal to me.

Sustainable funding of infrastructure

If you ask me what the solution is, I don’t think I have one. Sad but true. However, analyzing the cost, power, and governance implications of the options depicted above, there is another solution I think may be better than the rest. I think local communities should fund and operate Internet services for the neighborhoods.

When I say local communities, I don’t mean public institutions. Very often we’ve seen how public services have been used to control activism and dissidence, and I don’t think we should have the fox guarding the henhouse. Even though there are some measures that limit what the service provider can do with your data (E2E encryption, limiting the data provided, etc.), it is still too much power in the same hands. Plus, governments change regularly, and as a citizen, I don’t want my services to be impacted by whoever is ruling this year. When you’re using software as a service, even if it’s FOSS, you have to implicitly trust they are not running a modified version of the software. How can I know the software my local administration is running doesn’t have a backdoor for intelligence agencies? We’ve seen many governments that are very willing to have access to encrypted information from their citizens, so again, I would not trust local authorities for this duty.

If it’s not public institutions, what do we have left?

At least where I live, there are multiple organizations and associations fighting for different projects (ecologism, feminism, anti-militarism, housing, childhood, political parties, anti-racism) that co-exist in physical spaces, sometimes occupied, sometimes not, to develop their activism. In some of these spaces, groups of tech people (hackers, makers) gather to work on their projects, organize talks, and in general promote a use of technology that is beneficial for the wider public.

I think hacklabs are the best option to host internet services.

Wouldn’t it be beautiful if a hacklab offered internet services to the different collectives that gather in the social center? What if that extended to the neighbors that participate in the collectives? Or any neighbor that requests it?

In terms of funding, I don’t think this is inherently different from the rest of the alternatives. Just because a hacklab is running the service doesn’t mean it runs for free. But it’s up to the hacklab to decide what they need and how to fund it. A small hacklab with a dozen people may run with donated hardware almost for free. A bigger hacklab serving tens of thousands of neighbors may use membership fees to keep running. Or they may have a scheme where those who can afford it pay more, and those who cannot get it for free.

Hacklabs and social centers are not free of power fights and corruption, and it is possible that at some point you’re no longer aligned with the decisions made in the hacklab, and you want to move somewhere else. If you’re lucky, you may find another social center with a different governance nearby. In my limited experience, these kinds of spaces are run kind of horizontally, so it may be possible to highlight what’s being mishandled and make a change. It may not be easy, but at least you’ve got better chances than trying to make Big Corp change any of their policies.

Maybe we’re a bit too far from this scenario, but it’s definitely one I would feel comfortable with. And I think it’s a sustainable way to bring free software to non-technical people. At the end of the day, if you need self-hosting skills to have an email account, we will always be at the mercy of big corporations.

Have a great day!