This wiki does the sharing in the browser, not the server like most every other wiki ever. Let's look at the technology that makes this work.
Wiki relies on the perfect storm of creative commons, cross-origin resource sharing and javascript object notation. We can write this as a formula.
WIKI = CC + CORS + JSON
Everything we write we contribute to the commons using the attribution and share-alike license. This is all automatic so it is no extra work for you, except for figuring out how to live this way, which is hard. website
Javascript in the browser lives with some shackles designed to keep malicious code at bay. We add headers to everything we serve that say it can be read and used by javascript from other origins. This means we can share in the browser. website
The object notation describes key-value pairs where the values can be arrays or more objects or strings or numbers or a few other things. The inventor says there is never going to be a version two so everything we write in version one keeps working. Cool, eh? website
# Operators
If you want to own and operate a federated wiki server then you will have to master a few skills beyond logging in.
You will need a recent install of node.js. Bundled with a typical install is the v8 javascript interpreter and the npm node package manager. website
You will need a server too. We've had good luck renting servers from Digital Ocean. They are quick to setup and inexpensive to run. website
You will probably want a domain name for your server unless you already have one which you can reuse several ways. I've been happy registering domains at Name.com. website
You will want to claim every site you make if they appear on the open internet. We use Persona to manage the passwords you will use to prove your sites are your own. website
# Developers
Developers will want to download source from github for the parts of wiki that they will be modifying. We've moved active development to an organization called fedwiki. You will find all the pieces there. github
We code both client and server code in the CoffeeScript dialect of Javascript. This provides many conveniences but does add another build step in most cases. website
We build production files with the make replacement Grunt. The node package manager will load Grunt plugins we use in our builds. website
We've used a variety of testing frameworks but find that most new code falls under our build-time tests written and run with Mocha. website
We use jQuery where it helps but we don't expect it to make our application work everywhere. We assume html5 in most cases. We use jQuery UI for drag/drop. website
We've done several plugins with D3.js for building and manipulating SVG graphics. website