The Immutable Web

A few months ago, I started thinking deeply about the idea of immutability on the web, and what kinds of consequences it would have.

Immutability in programming languages has very interesting features, most of which I learned while trying to implement an Immutable Dict type in Python (i.e. a tuple with non-index keys).

In particular, immutability brings with it immense benefits in multi-threaded programming, where one thread may modify the value of an object that an unrelated thread is relying on.

The web is the ultimate example of concurrency, in that you have a distributed system of unrelated actors across time and space working on the same data sets for different purposes. It is perhaps the most important place to see immutability, but instead its contents are extraordinarily unstable.

Tim Berners-Lee wrote (in 1998!) about how Cool URIs Don't Change. We've progressed a bit since then - I haven't seen cgi-bin in awhile - but it's notoriously hard to keep things around online. Archive.org does a tremendous job trying to preserve copies of the web for posterity, but even that is a broken model, since it isn't truly immutable.

Posthaven was founded on the idea of a website that never goes offline (based mostly, I would guess, on the experience of the founders having to shutter Posterous after being acquired).

I finally started thinking about what a place on the web that contained truly immutable content might look like, how it might function, and what sorts of uses it might have.

So, I hacked together immut.io. It saves anything to a unique URL based on its content. It is truly immutable, and uses it's Headers as such - using the longest expire times possible for its content.

Since URLs are based on the contents of the file, in theory, it acts sort of as a reverse search engine: you provide content, and immut.io will tell you where on its server to find it - forever. Whether or not this content has been uploaded before is irrelevant, since it's immutable.

So check it out, and see if you can make something fun with it. I'm excited to see what you build on the immutable web.