Overview

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 | Sandbox Demo | Doc/Dev Wiki | Source/Download | Help Out | SE BugZilla

News

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.

2006-08-29:SynchroEdit 0.4.5 (development branch) was released earlier today. It has been given a nice facelift, as well as numerous cool new features. Check it out!

2006-08-23:EditThisPage (which is basically developed by the people behind SynchroEdit) released a new version (0.7a1) which supports plugins, and the one plugin currently in place happens to be support for SynchroEditing within EditThisPage. It's cool, but experimental.

2006-08-18:SynchroEdit 0.4.4 was released and is available in the stable repository and as a bundle (synchroedit-0.4.4-bundle). See the source/download page and/or the wiki for further information.

2006-08-15:Upgraded to EditThisPage 0.6b3 0.6b4.

2006-07-11:Version 0.4.2 was released. Mostly a bug-fixer and version-tweaker.

2006-06-16:Tested and works under the latest version of Flock.

2006-06-08:Due to a server move, we had some downtime today. We're back up now, on a new location.

2006-06-02:SynchroEdit 0.4 was released and is available in the stable repository and as a bundle (synchroedit-0.4-bundle). See the source/download page and/or the wiki for further information.

2006-05-15:SynchroEdit 0.3.9 was released and is available in the development repository and as a bundle (synchroedit-0.3.9-dev-bundle).

2006-04-20:Packbell apparently had a rough 48 hours of major downtime, which unfortunately affected the SynchroEdit web site and wiki. We're back up and running though, but email is still being sorted out. If you sent something recently and received no reply yet, you now know why.

2006-04-04:Version 0.3 of SynchroEdit is now officially stable and available from SVN or as a tarball. Check out the download page for more information.

2006-03-22:Want to help make SynchroEdit rock? Check out the Help Out page for details on how you can contribute to the development of SynchroEdit!

2006-03-10:SynchroEdit is now listed on FreshMeat. The development repository has also reached version 0.3RC1, which includes a number of fixes and a transition to Perl/CGI from PHP.

2006-02-15:The latest version of Camino (1.0) has been tested and works in SynchroEdit.

2006-02-03:Thanks to the guys over at RecentChangesCamp.org for their assistance in testing the code, the bug which caused colorized tags to be "chopped off" has now been found, and addressed. You are encouraged to grab the latest development sources as soon as possible, to address this issue. Update: The stable branch has now been updated with the new code.

2006-01-18:We are aware of the issues in Firefox 1.5, and are in the process of addressing them. The issues are specifically that connecting from the same computer to a synchroedit server more than once results in invalid behavior. Meanwhile, either downgrade to FF 1.0.7 or don't connect to the same SynchroEdit server more than once per computer. Update, 2006-02-02: This will not affect other users of the session. It will also only affect a user if they connect to the same synchroedit session twice. Connecting to two different sessions should not cause any issues (feel free to submit issues to the wiki if you find any!).

2005-11-15:A subversion repository is now up for the server and client files. For further information, click here.

2005-11-09:The new client and server are now online and the links have been updated to point at the new version.

2005-11-04:The last couple of weeks, we've been working on converting the SynchroEdit solution into using XUL-less and certificate-less communication, which is now completed. We expect to replace the existing sandbox with the new version within the next couple of days.

2005-10-17:The SynchroEdit server is undergoing a transfer to a new host, which means some downtime and/or issues. We apologize for the inconvenience. Things should be stabilized shortly.

2005-10-07:We've had a lot of alpha users pounding on SynchroEdit in the last few days, thus Sandbox hasn't been very stable and it sometimes crashes during the day. If you connect to the Sandbox and you don't see a column of names on the right side, or you start typing and you don't see your user name in a flag to the right of your cursor, the server may need to be restarted. Check back in a few hours. This week we are concentrating on other issues, but we'll work on these stability bugs next week.

2005-10-04: A number of blogs have begun to link to this SynchroEdit site, but they have been missing one key idea. SynchroEdit is an open source project -- we are making available our source code and creating an open protocol, not a proprietary service. This means that anyone who wishes to will be able to add SynchroEdit's features to their own web service or application. Thus comparing us to a service JotLive or Writely isn't quite correct.

2005-10-03: This week we are focused on removing the requirement to use a signed javascript for the connection from the server. Instead, we are attempting to use an odd variant of XmlHttpRequest where we force the server connection to the client to remain interactive and never close (i.e. keep readystate == 3). As soon as this is complete we will move toward allowing a web service approach for establishing new SynchroEdit documents.

2005-09-23: The sandbox is still publically available for demonstration purposes, but instead it being totally open we are asking people to sign up for an alpha account first.

2005-09-16: SynchroEdit is functional as an alpha release. It works correctly in modern Mozilla browsers, currently tested with Linux, Windows XP, and Mac OS X. Development of SynchroEdit has been led by Kalle Alm and Christopher Allen. Financial contributors to SynchroEdit include SocialText and the Bainbridge Graduate Institute. It will be released as Open Source later this fall.

Usage

SynchroEdit Screen Shot SynchroEdit can be used for any functionality where concurrent, synchronous editing of a single document is useful. It can easily be plugged into 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 — Authors 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. 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.

SynchroEdit Diagram