Back to weaving
Building The Next Web
Theseus is pretty much the standard hero we've come to expect from the Greek Cinematic Universe. He was conceived after a cryptically on-brand statement from the Oracle of Delphi led Princess Æthra to become simultaneously impregnated by both King Ægeus of Athens and Poseidon, but he then grows up with neither of his dads in the picture much. As a young man, upon discovering his royal ancestry, he decides to travel to Athens to claim his kingly birthright. But instead of going the safe way — by sea — like some normie, he instead chooses the land path which takes him past no fewer than six openings of the Underworld. Because #YOLO
. Long story short: he makes it, and goes on to enjoy the reputed delights of Athenian family life as his stepmom tries to kill him twice, then his cousins try to kill him again, and later his (human) dad jumps off a cliff to his death because he forgot to use white sails instead of black on his ship.
Sail colour aside, that ship is what I'm getting to. Theseus sailed it back from Crete where he had just slain the Minotaur, escaped the Labyrinth, saved the children of Athens, and abandoned Ariadne like a threadbare sock. The Athenians were so thankful to get their children back that every year afterwards they commemorated the event by taking that ship on a pilgrimage. Over the years, whenever one of the ship's planks would (inescapably) rot, they would replace it with new timber; and they kept doing for long enough that eventually every one of the ship's planks and all of its parts were replaced by newer ones.
This is the Ship of Theseus thought experiment which has been keeping philosophers employed for centuries: if every component of the ship were replaced one by one over time, is the resulting ship the same as the initial one?
You could ask the same question about the Web. HTTP/3 is a binary multiplexed UDP protocol, HTTP/0.9 was just text over TCP (and it didn't even have headers or response codes, it could only transmit HTML). We used to show off just how good we were at making intricate 800x600 layouts with nested tables and transparent pixels, in ways that would get you laughed out of the room by today's responsive subgrid crowd. People hated XHTML so much that they all flocked to JSX. Flash used to be universal and has vanished; SVG used to be niche and is now banal. You would get in trouble for touching a colour outside of the 216 websafe palette but eval
and document.write
were rad. We wrote Perl. We wrote PHP. Some wrote CFML and Java applets. We wrote VBScript in the browser. Firefox extensions ran on RDF, as did some feed syntaxes, at least on one of those happy weeks when you could find two people who agreed about a feed syntax. We had addresses, then URLs, then URIs, then IRIs, briefly XRIs, and then URLs again. A few things have stuck around the whole time, but you'll have a hard time making the case that they define the Web.
That's why it's been so hard to agree about what the Web is: the Web is architected for resilience which means that it adapts and transforms. That flexibility is the reason why I'm talking about some mythological dude's boat. Altogether too often, we consider some aspects of the Web as being invariants when they're potentially just as replaceable as any other part. This isn't to say that there are no invariants on the Web. For instance, it would make no architectural sense to talk of a Web without user agents — it's a foundational component and necessary constraint. However, browsers — which are often considered immovable — are only one implementation of the user agent component to which we can imagine alternatives with different properties.
This is the kick-off post in a series in which I'm going to explore things that we could change about the Web. As I embark on this series, I promise this:
- I will be ruthlessly dedicated to user agency and to an ecosystem view of technology in society.
- I will only consider things that I can see a path to building in practice, no matter how different or ambitious they may be (even if it may hard in some cases).
- I will be opinionated as fuck.
The odds are pretty good that I will be wrong, possibly even very wrong. You're going to dislike some, or perhaps all of it! My point isn't to jump straight into building these ideas — even though I do believe they point in a better direction and are feasible — but rather to break out of the incrementalist rut and stagnant vision that the Web finds itself mired in. It's not in a good place and I feel the need for more vision work and much more thinking about architectural interventions that can bring about radical change. If nothing else, it can help us gain a sense of direction, perhaps stir up discussion. Proceeding via small, incremental changes can be a laudable approach, but even then it helps to have a sense for what it is that those small steps are supposed to be incrementing towards. After all, a headless chicken takes it one step at a time as well.
Topics might include: user agency, a philosophical grounding (I'm no technosolutionist), search, social media, browsers, tabs, ads, money, primitives that lock content down, compositionality, intelligence, governance, legal frameworks, local-first, self-certifying protocols, content addressing, user interfaces, app models, commerce, privacy, ecosystem services, resilience, and (I suspect) cats. Maybe some AI. Maybe identity if I ever understand it well enough. It's a big Web out there, it'll take some time to churn this all out.
No group has ever managed to align on a definition of the Web, and the odds are that that debate will continue. Philosophers across the millenia may have focused on figuring out whether the Ship of Theseus would remain the same ship if you changed every single one of its planks over time, but they may have missed the reverse problem: if you don't replace each and every plank as it decays, then eventually the whole thing will rot and you definitely won't have the same ship any more, or any ship at all for that matter.
We're not far from not having a Web left. It's been so captured by pathologies of command and control that it's falling apart at the seams and life is draining from it. Some of our load-bearing planks are quite distinctly stinking of rot and our ship is taking on water. It's time to scrape off some barnacles and get to work.
This post is part of a series on reimagining parts of the Web. You can read the other entries in the series at:
- Building the Next Web
- The Web Is For User Agency
- You're Gonna Need A Bigger Browser
- Web Tiles
- ActivityPub Over ATProto
Acknowledgements
Many thanks to the following excellent people (in alphabetical order) for their invaluable feedback: Amy Guy, Benjamin Goering, Ben Harnett, Blaine Cook, Boris Mann, Brian Kardell, Brooklyn Zelenka, Dave Justice, Dietrich Ayala, Dominique Hazaël-Massieux, Fabrice Desré, Ian Preston, Juan Caballero, Kjetil Kjernsmo, Marcin Rataj, Margaux Vitre, Maria Farrell, and Tess O'Connor. Needless to say, anything dumb and stupid in this article is entirely mine.