If I'm being honest, I feel like a lot of the technology we use day-to-day isn't super necessary if not actively harmful. But some technology is really helpful in the right context, like how moving a court hearing online can help people avoid being abducted by ICE.
So we still need some technology, and the goal should be using technology that's accountable to and understandable by the people using it. The self-hosting movement has been on a mission to get technology into the hands of individuals, but I feel like they've never really succeeded in making it accessible outside of techy people. The only people I know of who self-host are people who have been "investing all their skill points" into tech for a good part of their lives.
One interesting project that's trying to achieve that goal is Co-op Cloud. They have their heads in the right place, but I feel like they're fighting a losing battle due to the design of all the normal self-hosted apps like NextCloud, Jitsi, Matrix Synapse, etc. All these apps were designed to run in a POSIX environment, with the ability to read/write arbitrary files, open arbitrary network connections, spawn arbitrary process, and make arbitrary syscalls. They were designed to need special external databases like Postgres, which are also designed with similar expectations. These apps have also existed for a long time, which means they've accumulated highly complex config files and still have lots of insecure defaults.
Maintaining apps like those can be painless if you know what you're doing, but if you don't, you're one wrong step away from data loss, breaches, downtime, or show-stopping/head-scratching bugs. This risk doesn't go away with tools like YunoHost which try to hide this complexity behind one-click deploy interfaces.
How can we possibly build technology that is "accountable to and understandable by the people" if most of the self-hosted apps have this complexity problem? I don't think self-hosters have properly confronted this question, yet they wonder why most people prefer to use proprietary Big Tech solutions in exchange for some tracking and advertising.
What's the fix?
Heck if I know. I can think of two ideas though:
- Tech workers should probably be doing more outreach/education in their communities to improve tech literacy. This requires educating yourself as well, since a lot of you have some pretty bad takes and ingrained myths from years of having your paycheck depend on the tech industry's blood-sucking tactics. After all, it was tech workers who tricked CEOs and world leaders into thinking that AI (and previously blockchain) will solve all their problems.
- New open-source, self-hostable projects should choose much simpler tech stacks, such as by not requiring separate processes/containers. Does this mean apps will have less features and less mass scalability? Yes, but I see this as a desireble side effect. I'd like to see people participating in more smaller communities and having less dependence on tech in general.
Something that can help with both of those ideas is reading and following the Permacomputing Principles, a great guide which the Co-op Cloud folks have contributed to. As we continue to operate in the midst of a polycrisis, we should be using our expertise as tech workers to build resilient and people-centric alternative systems.