Ritzy Editor

A rich text editor for the web that uses custom editor surface and layout engine just like Google Docs, and has collaborative editing support built-in from the ground up.

Live Demo


[1] IE10+ and evergreen browsers supported, perhaps earlier browsers will work too.

Note that the code is alpha quality.

Longer Introduction

The Ritzy editor is a rich text, real-time character-by-character collaborative embeddable browser-based editor. It shuns use of the contentEditable attribute in favor of a custom editor surface and layout engine, exactly like the approach implemented by Google Docs.

In addition, and also like Google Docs, Ritzy is built with real-time collaborative editing support from the ground up, unlike most browser-based editors that require third-party plugins or that do not support it at all. The underlying mechanism for this is a causal tree CRDT.

Ritzy implements all the basic expected text editing functionality, such as bold, underline, strikethrough, superscript, subscript, selection via keyboard and mouse, cut, copy, and paste. More capabilities will be added as needed or as third-party contributions are received.


The commercial server-side solution will handle storage, communications,
security, availability, and provide a simple but powerful server-side API for
developers to interact with the editors under their control, and the data they
contain. Some of the features of this API may include:

  • Create, archive, and destroy text replicas.

  • User identification and specification of authoring labels.

  • Set and modify access control.

  • Get editor contents (snapshot + real-time bidirectional push).
    ** Integration with various server-side libraries e.g. Akka, Vert.X, RxJava,
    Kafka, etc.

  • Set or modify editor contents.

  • Show server feedback on editor surface e.g. comments/errors/word highlights.

  • Get revision history.

  • Get editing statistics e.g. authors, character count overall and by author,
    word count overall and by author, time spent editing overall and by author, and
    so forth.

  • Isomorphic rendering of editor's server-side and client-side for performance.