Collaborative Editor

Notes on replacing the wiki editor with a real-time collaborative editor.

See Etherpad-lite integration in Crabgrass

Options

  1. etherpad-lite – github.com/Pita/etherpad-lite
  2. sharejs – sharejs.org
etherpad sharejs
easily embedded? yes yes
backend node.js node.js
frontend javascript coffeescript flavored javascript
operational transforms? yes yes
actively developed? yes yes
popular on github? yes yes
database sqlite, mysql (required) couch, reddis, postgres (optional)
user interface yes, complete application no, just a library that provides similar functionality.
history? yes no
user colors? yes no
chat? yes no
wysiwyg formatting? limited none, yet
sync primitive text text or structured json
license Apache v2 MIT

elijah> I am leaning toward sharejs, because I think it is cleaner and more lightweight than etherpad-lite. We don’t need/want the additional features etherpad-lite has. I think we probably just want it db-less, but it would be trivial to add mysql support. I am not a fan of coffeescript, however. In the long run, I am intrigued by the sharejs model and imagine we could make it so that all page types, not just wikis, are real-time collaborative.

Other related projects

Nice list of collaborative editors:
en.wikipedia.org/wiki/Collaborative_rea...

nowpad

Realtime text collaboration with Node.js, Express.js and Now.js
NowPad adds realtime text collaboration to parts of your website such as textareas, allowing multiple people to work on the same document at the same time (while seeing each others changes as they are applied). The benefit of this over traditional collaborative editing is two people would be editing the same document, they’ve both made changes, one person saves, and the other has to make the choice “lose my changes, or lose his changes”. Nowpad keeps and applies both your changes as they happen

opencoweb.org
The Open Cooperative Web Framework provides JavaScript enablement of concurrent real-time interactions among remote users and external data sources. This emerging class of applications is referred to as cooperative web applications. The framework handles remote notification of user changes, the resolution of conflicting changes, and convergence of application state using Operational Transformation algorithms. The objective of the framework is to support cooperative web concepts across all browsers and devices

gooogle mobwrite

MobWrite converts forms and web applications into collaborative environments. Create a simple single-user system, add one line of JavaScript, and instantly get a collaborative system.

www.sameplace.cc

This is a firefox plugin that is a whole chat application. It supports writing shared web applications, allowing you to add stuff like a chess game, whiteboard, or possibly a collaborative editor (without installing new plugins once sameplace is installed). It uses XMPP.

xmpp4moz

A library used by sameplace to add XMPP capability in a firefox/mozilla plugin.

Infinote Protocol

Gobby is now based on a more robust XMPP-based protocol.

Jinfinote

A javascript implementation of the infinote (gobby) protocol.

DimDim

There is an open source version of dimdim, which is a fancy flash-based online meeting application.

Desktop clients

These are not applicable, because they are desktop applications. but they are interesting examples of UI.

gobby
pretty nice, and somewhat stable now. ssl, gtk, has a server that can persist the docs. riseup uses gobby heavily.
gobby.0x539.de/trac

MateEdit
gobby for KDE: sourceforge.net/projects/mateedit