2 min read

Going Sovereign

Marc-Uwe Kling's talk for Digital Independence Day got me thinking: if we want people to escape Big Tech, are we as developers actually building software that makes this possible?

Recently, I rewatched the talks from 39C3 in Hamburg. The talk that inspired me most and really got me thinking was Marc-Uwe Kling's talk for Digital Independence Day.

Over the past few years, I've developed what I suspect many of us have: an increasingly uneasy relationship with storing all my personal data with Big Tech. Recent political and economic shifts have only amplified that discomfort.

That's why I find the idea of Digital Independence Day so compelling—even though the name, the perceived framing, and everything around it have sparked some rather heated and at times wildly exaggerated debates. But that's not what I want to discuss here. Instead, I would like to focus on the one central question that DI.DAY aims to plant in our minds:

Does it have to be this way, or can I meet my needs with a solution outside Big Tech?

For me, “outside Big Tech” matters more than “within the EU”. Sovereignty in this context has nothing to do with national sovereignty—the focus must be on personal data sovereignty. How and where I achieve that is, initially at least, beside the point?

In principle, I can pursue two approaches: find a different provider, or self-host.

It's the second approach that has prompted me to ask whether we as developers are actually offering the right solutions—or whether we need to do better.

If you look at the setup guides for many tools I could self-host for myself or my family, they typically begin with “you'll need to have Docker installed”. If you're unlucky, you'll also need to provision a database server.

For the keen hobbyist looking for a new, absorbing pastime, that's probably fine. But is it the right approach for enabling ordinary people to escape Big Tech? I don't think so.

I believe that if we as developers want to support this movement, we have to embrace the pattern that made apps—and, long before that, shareware—so successful:

  1. Download the software
  2. Run it
  3. Follow an interactive walkthrough for minimal configuration
  4. Done.

We have the technology. With Rust, Go, and similar languages, I can bundle an entire web application—including all its assets—into a single executable. For most use cases with one to ten users, SQLite with sensible defaults is perfectly adequate as a database, if a database is even needed at all.

From this minimal starting point, you can, of course, scale up—horizontally or vertically—adding Postgres, Redis, nginx, OpenSearch and so on as requirements grow. Perhaps you want to offer file hosting for your entire club or organisation.

I believe we developers need to give users an app-like experience for their self-hosted applications—so they can find their way into this wonderful world.