The web needs a unix

• Created by: Domonkos Poór

Hero image for The web needs a unix

I have a complaint about the web. I want to be careful with it, because the same openness that produced the complaint is the thing I value most about the web.

The complaint is this. The web is wasteful at the technical level. A site that displays text ships megabytes of JavaScript. Most sites look the same, because most of them run the same kind of framework. They are slow, and they are heavy, and the heaviness buys very little.

This is not a new observation, and it is not a complete one. The web is also where a curious person can publish anything, reach anyone, and build without permission. That is worth a lot, and it is the reason I have a website at all.

But the default has drifted. Building a page now means adopting a framework, a build chain, and a dependency tree, to produce something a single HTML file could do.

The thesis

Tero Piirainen argued that the web needs a unix. Not a new framework, but small, composable, standards-based tools, in the spirit of the original unix tools. His point was that the web platform is already capable, and that the layers we put on top of it mostly hide it.

I think he was right. I agreed with the thesis when I first read it, and I still agree with it.

The project that carried it

He built Nue. His essay The UNIX of the Web is the clearest statement of the thesis. It reached version 2.0, and then it stopped. The author (likely) burned out, and the project never gained the community it needed to survive him.

Several things went wrong, and I do not think the idea was one of them.

  • It was ahead of its time: The web-dev scene, while visibly feeling that things aren't quite right, wasn't ready to admit to its error. Only now, years later, and well into the memory crisis are we starting to see lightweight web getting more traction.
  • The name was too close to vue. It was not memorable, and search results were a problem.
  • It never found enough contributors. A project with one author has a bus factor of one.

I ran this site on Nue. When the project stopped, I migrated the site to Astro out of necessity, not preference.

The pragmatic path

Astro, and in fact, Nue itself, are not the unix vision. Nue was perhaps closer, but it still relied on the completeness of a browser to function. Similarly, Astro is a build tool, and it has its own weight. But it is much closer to the spirit than the alternatives. It renders static HTML, and it ships no JavaScript by default. A content page is a content page.

I did not choose it because it is perfect. I chose it because it is the pragmatic version of the same idea, and it is maintained by a team rather than a single person.

There is a smaller and stranger cousin in the same family. Gemini drops HTML, CSS, and JavaScript entirely and ships text over its own protocol. It is a real answer to the bloat, and it is a hard sell. I mention it because the thesis taken to its end looks like this, and it is worth knowing that the end exists.

In closing

I do not hold the keys to the solution to the web's bloat.

I have a preference, and I have a practice. I prefer small tools that I can read. I prefer static output. I prefer the platform to the abstraction. I prefer a project that will outlive its author.

That is not a solution. It is one person's practice. But the thesis is still sound, even though the project that carried it is not. Right idea, wrong timing, and a bus factor of one.