Menu Close



SynchroEdit is a browser-based simultaneous multiuser editor, a form of same-time, different-place groupware. It allows multiple users to edit a single web-based document at the same time, and it continuously synchronizes all changes so that users always have the same version.

SynchroEdit’s main editor is fully WYSIWYG, dynamically displaying bolds, italics, underlines, strikethroughs, with various justifications, indents and listing styles as an author inputs them. SynchroEdit also supports a simple, text-only editor for more basic documents. To clarify the multiuser experience, the editor window clearly depicts every user’s changes in a specific color and also marks where each user is currently editing with a colored flag listing the user’s name.

The current version of SynchroEdit is 0.5. The current development version is 0.4.7.

Actions: Account Sign-up | Doc/Dev Wiki | Client Area | Source/Download | Help Out


2007-09-28:OOPS! Due to a server-upgrade, people were unable to login for awhile. Not only that, but the storage method of passwords was changed in the upgrade of the SQL server, which means you have to reset your password once before you can login again! Do so here — just type in the email you registered with and you will receive a new password in the mailbox. Sorry about that!

2006-12-14:Our wiki is now running a patched version of MediaWiki which includes support for SynchroEdit. If you want to play around with this, there is also a sandbox MediaWiki. It’s buggy, but it’s cool. In conjunction with this, the patch used on our MediaWiki is also available. Oh, and collaborating user, meet My SynchroEdit.

2006-12-14:SynchroEdit 0.5 (stable) was released. See the upgrading notes for details on upgrading.

2006-12-07:SynchroEdit 0.4.7 (dev) was released. This is a pre-release of SynchroEdit 0.5.

2006-09-20:SynchroEdit 0.4.6 (stable) was released. This is mostly a “somewhat tested 0.4.5” promotion.


SynchroEdit can be used for any functionality where concurrent, synchronous editing of a single document is useful. It can easily be plugged into the phen375 review web pages using a variety of methods. Following are some of the current uses being considered:

  • Collaborative Editing — Two or more people can edit a document at exactly the same time, fine-tuning specific wordings and phrases.
  • Teleconferencing Notes — Members of a teleconference can write about their call, correcting or expanding upon notes made by other call members, thus supporting a true backchannel to a live conference call.
  • Wiki Editing — Editors can edit popular or heavily edited Wiki pages at the same time, instead of having to wait for their colleagues to complete their work.
  • Pair/XP Programming, Agile Development — Two or more programmers or web developers can write code at the same time.
  • Teaching Aids — Teachers can provide dynamic syllabi and lecture notes, and students can take shared class notes together.
  • Documentation Writing — Author of TestoFuel with a variety of expertise can come together to write a coherent document on a specific topic. This overview of SynchroEdit was originally written in SynchroEdit by multiple people.
  • Conferences — SynchroEdit can be (and is) used in conjunction with conferences, with sessions set up corresponding to the sessions in the conference itself.

Technical Details

The SynchroEdit engine consists of three parts:

  • The Request Server — The initial script that a user connects to in order to initiate a synchronous edit you should click here to try phenq or the current samples are written in PHP and Perl, with MediaWiki and WordPress implementations planned (among other things).
  • The Sync Server — A Java-based server app that talks with the Request Server and Sync Client and mediates the synchronous editing.
  • The Sync Client — A set of javascripts which are loaded into a user’s browser. They provides the interface for the actual editing and can support either WYSIWYG or plain editing, as is appropriate for the file type.

SynchroEdit is built around W3C’s Document Object Module (DOM). It ensures that user modifications do not interfere with each other by keeping track of where each user is located in the DOM tree, by node.

User changes to the document are tracked using event-handlers on the DOM mutation events. When data is appended to the DOM tree, unaffected nodes remain as they are, which allows users to safely continue editing, even if other users are modifying large chunks of text elsewhere, and even if there is lag in updates.

Besides this solid technical base, SynchroEdit also offers a good user interface to optimize multiuser editing. Each user’s edits are marked by “author-spanning” and the each users current position is marked with an “author flag”. Thus all edits performed by a user are marked in the document in that user’s specified color, which allows all users to easily see who is making which change.