Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Example app using Operational Transformation

branch: master

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 profiles
Octocat-spinner-32 src
Octocat-spinner-32 util
Octocat-spinner-32 .gitignore Moving the submodules from src/vendor to src/node_modules so that I w… April 14, 2011
Octocat-spinner-32 .gitmodules
Octocat-spinner-32 LICENSE

Operational Transformation Example

This is an implementation of a real time collaborative document editor which uses my Operational Transformation library.

Works with Node 0.4.X.

Installing and Running

$ git clone
$ cd operational-transformation-example/
$ ./util/
$ cd src/
$ node r.js server.js
25 Apr 21:56:13 - Your node instance does not have root privileges. This means that the flash XML policy file will be served inline instead of on port 843. This will slow down initial connections slightly.
25 Apr 21:56:13 - ready - accepting connections
Listening on port 8080

Now just open a couple tabs in your browser and point them to and you can create and collaboratively edit a plain text document between the tabs. (At the time of this writing, April 25th 2011, you have to use firebug or some other web inspector to find out what the document ID is so that your second tab can join the first's session).

Utility Scripts

  • ./util/

    Run this to set up a fresh dev environment after you have cloned this repository. Pulls down dependencies, runs the RequireJS converter script on third party modules, etc.

  • ./util/

    Reset the environment as if it were a fresh clone of the repo. Will need to call ./util/ once more to start developing again.

  • ./util/

    Will eventually create optimized builds of the client javascript. I haven't gotten around to this yet though; it has been a low priority.

Something went wrong with that request. Please try again.