Decentralization, democracy, and agency
Twenty years ago this month, I started my professional career in web development.
I don't say that to establish myself as a Top Expert or to make myself feel old, but it has made me think about what's changed, and what hasn't, over that period of time. There are enough articles and blog posts about how the web used to be, or the web we lost. I agree with many of those points–there are other points I'd like to make here.
For all the change that's happened in last twenty years, the remarkable thing is that the fundamental characteristics of the network haven't really changed. It's still decentralized, it still works over HTTP, and you can still put up your own little site on your own server, if you like. That structure is still there.
This was a huge part of the excitement around the web: it was deeply democratic in its architecture. No one needed to get permission to join, or pay a licensing fee to be part of the network. You needed access to a networked computer, and the knowledge–neither of those have ever been evenly distributed–but the technical architecture was incredibly exciting.
While those elements remain true, much has changed. What's changed are the cultures, tools, and economies around it. For the most part, it's been dominated by large corporations and centralized services. Even many open source projects, free for anyone to use, are built by (and optimized for) large corporations with teams of professional developers. It's fantastic that that work is made available, but there are uses and communities that are being ignored.
I wrote about some of these issues in Anti-capitalist human scale software about a year ago, and in a talk on Human scale technology (and punk rock) at Eyeo last June.
I think those claims still hold, but I have other things on my mind now.
With the rise of authoritarianism in the United States, and the seeming inability of the minority party to affect any meaningful change, I have been wondering: does the web, where I've spent my entire professional career (including working for the Obama 2012 tech team), does any of this matter?
Can thinking and working in this domain be anything but a distraction from the depressingly pressing issues at hand?
It's something I struggle with every day.
I do know that the web won't be the thing that saves us. And I know that, when properly considered, designed, and implemented, it can be an enormously powerful component of a larger strategy. (And if you want to help do that, I strongly suggest you join Ragtag.)
This isn't just a question of how we split our time between programming and protesting, though. I think there's something deeper.
Authoritarian: Favoring or enforcing strict obedience to authority, especially that of the government, at the expense of personal freedom
"Strict obedience" can be thought of in terms of enforcement (laws and policing by the state) but it is also a necessary consequence of technical systems that cannot be changed by the people who use them. Computers are notoriously inflexible–that is precisely why they are inherently inhumane. They demand obedience.
The parallels aren't just a rhetorical trick. We live with our technological and political systems. They are part of the fabric and substance of our everyday existence. That is significant, but it also goes deeper: their embedded values and philosophies are inescapable.
The systems we use everyday can have insidious effects: we internalize them, and they constrain our imaginations. When everything around us mirrors the same structural properties, those positions and impositions become invisible to us–we don't even realize that they're there, or that it could be any other way.
This isn't to say that big systems have to be evil–far from it–but when everything is this way, our democracy, our agency, our freedom, and our imagination are all at risk.
Well before the election, I started working on a project that was a direct consequence of my thinking about small scale, human scale technology. It's a project called Altcloud, open sourced on Inauguration Day 2017.
It's still a work in progress, but it's meant to embody and explore some of these values.
With Altcloud, you can run one (cheap) server for a whole bunch of projects, without any additional setup or cost per project.
All the configuration and data storage is file based, so you just need to run one server program.
It does some fancy stuff like authentication and authorization, but it's all based on text config files, and you don't have to reload a server or recompile an app to see changes.
It can handle multiple domains, and automatically sets up free SSL certificates for all domains, at time of first access. (Setting up a new domain is as simple as creating a new folder in the root directory and loading the url in your browser.)
It does some other stuff, too: read about it on the project page if you're curious.
If you want to use it, or contribute to it, cool. But I also made this to show that this kind of approach can work.
In other words: you can buy the album, or you can start a band. But at least know:
You can make something.
You can make you own rules.
The web is still free.
With apologies (and gratitude) to whoever thought to put this on a guitar pedal circuit board, I've taken to including the follow comment in the source code for my small web projects:
<!-- May the bits passing through this server somehow help to bring a little more peace to this troubled world. -->
█ Jesse Kriss, 1 Feb 2017