Blogory.org Two Collaborative Rich Text Editing Components: Firepad and WriteURL

In this article I compare and contrast Google FirePad and WriteURL. Read More

Two Collaborative Rich Text Editing Components: Firepad and WriteURL


Google FirePad and WriteURL are both collaborative rich text editing components for the web.  You add some javascript to your web page, and multiple people can simultaneously edit the documents.  Lots of tools allow you to collaboratively edit ascii or unicode strings.  But there are fewer libraries which allow you to graphically edit rich text. 

For the last 30 years people have been talking about software component reuse.  WriteURL is the first product I have seen that accomplishes this, and so I am comparing them with the presumptive market leader Google Firepad. 

The Problem

Let us say that you have a legacy website and you want to add collaborative editing to it.  It is difficult to do because the design constraints are different.  Web servers are designed to handle thousands of users.  They take a request, process it, and drop the connection.  Collaborative Editors are very different.  They allow a small group of people to collaboratively edit a document.  Neither Firepad nor WriteURL publish their scalability numbers, but it is probably quite easy for 5 people to edit a document, and maybe possible for as many as 15 users to simultaneously edit a document.  Google docs limits simultaneous editors to 50 people.  Has anyone participated in such a large group?  No limit on how many people can read a document.  And while that is a much smaller number of users, it is also more computationally demanding.  The server needs to keep alive the connection, even if it drops.  One needs something like Node.js, or Python Co-Routines on the server. 

Worse yet, you now have to run a messaging server in addition to your web server.  There are a number of products that address this market.  Google FirePad and WriteURL are two of the important ones which can be easily integrated into your website, support Rich Text Editng, and run the servers for you.  

A more detailed evaluation of the different products is contained in the above link.  There are so many products, it is quite unbelievable.  If I got any of the information incorrect, please be so kind as to post your comments on the relevant pages. 

So back to comparing FirePad and WriteURL. 

KISS

What I love about WriteURL is the simplicity of their approach.  I just get the read and write URLs.  No need to mess with authorization.  In contrast, in Google Firepad, I have to create complex security rules using a JSON api, or a data-centric json editor.  WriteURL is the much simpler approach. 

Privacy

We live in the post Snowden Era.   Hopefully he will win a Nobel prize.  Personally I am hugely concerned about this issue, I am the guy who built PrivaCV.com.  

Firepad and WriteURL are very different when it comes to privacy.  Google Firepad is based in the United States where there are minimal privacy safeguards.  WriteURL is based in Europe where there are much stronger privacy safeguards.  In Europe you have to declare how you use people's private data.  WriteURL has no such declaration, so I presume that they do not do anything with your data.  Indeed they do not even know who you are.  Perfect. 

Rich Text Editor

   Both products have a rich text editor written in Javascript. The writeURL editor is very nice.  The FirePad editor is a bit odd.  It is based on CodeMirror.  Code Mirror is a technical editor for ascii or unicode strings.  It provides syntax checking for different programming languages.  It is very strange to have modified it to do rich text editing.  From a software perspective it seems like an odd design choice. 

Stay tuned.  My next article will document integrating WriteURL with my web servers.  I invite you to subscibe if you want an email when it is released. 

Did I miss anything?  Your comments are most appreciated.  Please use the form below to email me any suggested changes. 

 

 

 

 

 




Powered by Zopache, Grok, Zope and ZODB