As my attention drifted to other things over the next couple of days, the idle part of my mind whittled away to the core of what bothered me so much about the current state of the web and open source software. It eventually occurred to me that this industry is failing in its work in two critical ways:
- We are exploiting the labor of open source software maintainers and expecting community members to remedy that exploitation via donation capitalism.
- Our mental model for how we build for the web is too reliant on canned solutions to unique problems.
The first of these failures is both abjectly depressing and utterly predictable in a hypercapitalist society. Large corporations are benefitting from the labor of open source software maintainers with no meaningful regulation compelling them to be compensated. When something is free, a different sort of price is paid. When an open source offering becomes popular, the maintainers are inevitably buried in feature requests and issues they have to address—typically during their unpaid free time. When an open source offering becomes simultaneously popular and an indispensable part of toolchains, a small group of people are asked to do important work for free. Crowdfunding or other flavors of donation capitalism are not the solution, but rather a blood-soaked bandage that relies on the goodwill of a community that appears to be increasingly entitled to free labor.
The second of these failures is almost equally depressing. As the web has matured, we've adopted a mindset that prioritizes velocity over thoughtfulness. The default behavior of the web is something I like to call "the document web", where each navigation is synchronously driven by the server. Everything we've been trying to do since Web 2.0 has been one long effort in escaping this inextricable part of how the web behaves. The result is a parade of escape hatches from the web's default behavior. We're told that these escape hatches—pushed and marketed as critical software by hugely influential tech companies—are necessary in order to deliver good user experiences.
I don't want to fritter away my remaining years in this industry by engaging in an endless string of framework migrations, deciding that the sole dependence on some golden dependency is a "best practice" only to find out later on that an almost religious adherence to that "best practice" has failed in some intractable way. Nor do I want to abide by so much wasted effort brought on by those migrations which have the unfortunate side-effect of leaving open source software maintainers open to exploitation by well-to-do corporations and abuse by ill-tempered and demanding community members.
Lighthouse is a valuable tool, one I'm sincerely grateful for. But wielding it in such a way that tells people which libraries and frameworks to use doesn't get us away from the problem of canned web development and the exploitation of free labor in open source software; it only further entrenches us in it.
Feel like reading more? Head on back to the article list!