Almost 19 years ago, when I was Byte magazine's executive editor and Web developer, I received the following email:
From: Ward Cunningham
Date: May 22, 1996 at 11:23:10 AM PDT
To: Jon Udell
Jon -- So what do you think of wiki? I put it up a year and a half ago
when HTML authoring tools were in short supply. I think it has held up
pretty well, though I suppose its days are numbered. Still, there is
something about it we call WikiNature that is in short supply on the net
and in computers in general. Regards. -- Ward
What I thought when I saw that wiki was that maybe I should stay quiet about it. The Portland Pattern Repository was a collaborative effort to define the practices and principles that inform the agile software movement. And the wiki Ward mentioned -- the world's first! -- was the petri dish in which that culture grew. It was wide open. Anyone could edit a page. Those who did conversed eloquently and distilled a set of memorable patterns:
It was the most beautiful thing I'd yet seen on the World Wide Web.
My fear was that by drawing attention to this wonderful and seemingly fragile website, I might destroy it. In the end I did write something. I'm sorry to say I can't find the article now or recall exactly what I wrote, but Ward says: "I recall you omitted the link, which was enough."
As it turns out that wiki was less fragile than I feared -- and its days were more numerous than Ward had expected. But on Feb. 1, 2015, this notice appeared:
Wiki Wiki System Notice
After twenty years of service I'm pleased to announce a complete rewrite of wiki as a single page application with a distributed database which will last us for at least 20 years, maybe 200.
We've recently endured abuse that has moved our conversion date forward before we were fully prepared. I apologize for this. Expect the new to be well aligned with the capabilities of the modern internet with plenty of opportunity for participation that was not possible before. Thank you all.
The rewrite, known as the Smallest Federated Wiki, is a GitHub work in progress and a laboratory in which a number of key ideas are percolating. First and foremost, it is decentralized. There are many servers, none privileged, each hosting a set of pages under the control of an owner. But content flows freely among servers. I can drag a paragraph from a page on your site into a page on my site. Or I can fork the entire page onto my site. If I make changes, you may or may not choose to merge those changes back into your site.
A conventional wiki, says Mike Caulfield, is "a relentless consensus engine." A federated wiki may eventually yield consensus, but it promotes what Ward Cunningham calls a chorus of voices. Does that sound like a pipe dream? Perhaps, but so did wiki, agile practices, and decentralized version control.
This new wiki is composed of a server and a client written in CoffeeScript. The server is a minimal persistence engine that's designed for scenarios ranging from laboratory control systems to academic server farms. The pages it stores contain only JSON, rendered by the client, which does most of the work. Two JSON objects comprise a page: the story (a set of items) and the journal (which remembers how items were added, edited, moved, or deleted). You add items to the page by means of plug-ins that inject paragraphs of plain text, HTML, or markdown, as well as images, video, equations, raw data, charts, and computations.
The browser displays multiple pages arranged as a horizontal lineup that may include a mixture of pages from your server and pages from other servers. The lineup can be a composable pipeline for data. I can load a URL from your site that flows a data set from one page into a chart on the next, then fork your page of data, change it, and compare the two charts. Every time I edit my copy of the data set, the journal records a new version. If somebody else forks my page, she'll have the whole history: your original data set, your changes, the version I forked, and my changes.
The federation as a whole includes all the servers running this software. But as a user of an individual server I am part of a "neighborhood" that forms dynamically as I navigate to remote pages, visit pages with special references to pages elsewhere in the federation, or load pages that were forked from elsewhere in the federation. The neighborhood defines the scope for search and for resolution of links by page name rather than by fully qualified URL.
Over the holidays I participated in an exploration of federated wikis with a group of educational technologists. There was plenty of head-scratching because -- I'll be honest -- this new wiki does things we didn't expect, in ways we didn't understand. I've worried, as I did years ago, whether it's wise to draw attention to this brave experiment.
But I can't help myself. Everything about federated wiki makes my spidey-sense tingle. Everyone who's used it sees a different set of emergent possibilities. It reminds me that magic can still happen on the Web, especially when Ward Cunningham is waving his wand.