Technically...
Velvet: This one happens on IRC.
Max: Of course.
Max: Here's what we need: Max: * Every user becomes "editor", that is, has a branch. Max: Each branch is a full copy of the entire repo. Max: Each user can choose how they merge their branch Max: to the many other branches Max: of the other editors Max: of the world. Velvet: * Everyone is expected to log in as "anon" Velvet: whenever they post Velvet: on anyone's branch Velvet: especially their own. Max: * git records everyone's commits to all branches Max: as "anon". Max: (This is after authentication.) Max: * Each branch editor can identify who can access Max: by IP. Velvet: * IPs are forgotten regularly Velvet: like every 30 mins of inactivity Velvet: everywhere on the site. Velvet: (That's a trust thing. Velvet: Use [tor](http://torproject.org)) Max: I'm sure there's more. Velvet: The whole UI! Velvet: * Each visitor to a site Velvet: sees the master branch by default. Velvet: * There's a menu to choose Velvet: other versions of this file Velvet: from other branches. Velvet: * These branches can be local or remote. Velvet: * There are preferences to select defaults for a logged-in user Velvet: on how to order the alternate versions in the menu, Velvet: on which branch shows by default on your start page, Velvet: on colors to use inline to identify alternate versions Velvet: in specified branches. Velvet: And the culture: Velvet: * Some branches are anon-open. Velvet: This means anon can add to them directly. Velvet: The editor reverses any changes Velvet: they don't like. Velvet: * Some anon-open branches are specifically for Velvet: incoming new entries. Velvet: * Their editor works to, for example: Velvet: wash entries clean of spam Velvet: or get rid of silly ones Velvet: or select for underground politics. Velvet: * But others go through. Velvet: Until so much piles up Velvet: that it's useless, Velvet: and the user resets to (pulls) someone else's branch Velvet: hopefully relevant. Velvet: Or rather, Velvet: closes changes to (archives) the old branch, and Velvet: creates a new anon-open user-branch. Velvet: * When a user adds to their own branch Velvet: text first goes through some Velvet: (pref-selected) Velvet: anon-open branch Velvet: with a random time-delay Velvet: within (preffed) maximum. Velvet: Only after the delay is it picked up Velvet: and committed to their own branch.