Visual Realtime Collaborative Editor

Last modified by Thomas Mortagne on 2023/10/23 00:14

cogCollaboratively edit wiki pages in realtime with friends and colleagues
Developed by

Caleb James DeLisle, Yann Flory, Ludovic Dubost

Active Installs30
4 Votes
LicenseGNU Affero General Public License 3

Installable with the Extension Manager


This extension is superseded by the Realtime WYSIWYG Editor since XWiki 13.9.

RtWysiwyg is a visual Realtime Collaborative Editor which extends the XWiki WYSIWYG editor.


If a document is currently being edited in Realtime, the normal "This document has been locked for editing" screen will appear but will allow you to join the Realtime Collaborative Session if applicable.


And of course if you are uncomfortable with realtime editing, you can click on the ALLOW REALTIME COLLABORATION checkbox to return to normal editing at any time and your preferences will be preserved.


Reminder for users: even though you are in a realtime session, you will still have to save your document when you are done editing it.

Reminder for admins: the RtWysiwyg editor makes use of WebSocket which requires an open port from the users to the wiki, this port number and the hostname of the wiki can be specified in configuration, for more information see WebSocket.

Note for developers : If you want to check if realtime collaboration is allowed by a user, it is recommended to use the value stored in the localStorage. You just have to check if localStorage.getItem('realtime-disallow') is null or empty (realtime allowed) or equals to 1 (realtime disallowed).

Note: the source tab can be used during realtime sessions in 1.27+ but others users should not be editing simultaneously.

Prerequisites & Installation Instructions

We recommend using the Extension Manager to install this extension (Make sure that the text "Installable with the Extension Manager" is displayed at the top right location on this page to know if this extension can be installed with the Extension Manager). Note that installing Extensions when being offline is currently not supported and you'd need to use some complex manual method.

You can also use the following manual method, which is useful if this extension cannot be installed with the Extension Manager or if you're using an old version of XWiki that doesn't have the Extension Manager:

  1. Log in the wiki with a user having Administration rights
  2. Go to the Administration page and select the Import category
  3. Follow the on-screen instructions to upload the downloaded XAR
  4. Click on the uploaded XAR and follow the instructions
  5. You'll also need to install all dependent Extensions that are not already installed in your wiki

Release Notes


This new version brings compatibility with XWiki 11.2+'s new features for conflict and merge.
It removes the internal conflict checking which brought an issue when adding a image to the page, which is better handled by XWiki's new core feature.


Fix a save&view error in wiki edit mode


Fix parse errors with the latest version of XWiki
Fix conflicts with RTWiki and RTForm (experimental)


Fix a JavaScript error that could occur on the lock page


Update dependency to realtime-frontend 1.19:
Fix 404 error when trying to keep the remote changes after a merge conflict
Fix an error with the version not updating in realtime after a save and view
Fix UI issues with warning messages half hidden in fullscreen mode


Add more checks to make sure the document can't be saved with outdated content


Fix a JavaScript error with Internet Explorer introduced in version 1.30


Make the warnings and errors visible in fullscreen mode.
Auto-accept a realtime request after 30s if the user doesn't answer.
Display an error when a user is trying to save while someone else has made changes to the document.
RTWYSIWYG-78 Another user wants to start a realtime session" message hidden if editor is used fullscreen.
Keep the document locked when one user of a realtime session clicks "save & view"


Fix cache issues (new cache busting system)


RTWYSIWYG-76 Display a warning message in case of concurrent offline editing
RTWYSIWYG-75 Request a realtime session when a document is locked


RTWYSIWYG-73 Incompatibility between 9.8.1 and Realtime package
RTWYSIWYG-72 Source button Support


RTWYSIWYG-71 Avoid issue with tomcat7, xwiki 9.x and response.getOutputStream
RTWYSIWYG-72 Source button Support


Fixed issue with translated documents
Added French Translations


RTWYSIWYG-67 Updated version of chainpad, netflux-chainpad and CKEditor bringing fixes to realtime editing and merging


RTWYSIWYG-64 Macros create fighting between browsers using a different language


RTWYSIWYG-63 Use the version 1.9 of Realtime frontend


Use the new Realtime Frontend with reconnecting websockets to re-enable editing after a connection failure


Ability to use Realtime WYSIWYG in XWiki >= 8.2 (with CkEditor as the default WYSIWYG editor).
Fix issues where users were not completely disconnected from realtime when they unchecked the box.
Improve the error messages when an error occurs.


Fix an issue where errors were sometimes displayed in the browser's console when another user joined the session.


Update dependencies for CkEditor (v1.7) and Realtime Frontend (1.1)
Ability to use macros in RtWysiwyg
Fix style issues creating fights between browsers

Refactor the application to use the new Realtime Frontend extension.


Upgrade ChainPad to fix:
Fix quote issue in HyperJSON:
Fix issue with ordering of maps in HyperJSON (this causes fights):


Improved simultaneous typing and upgrade to most recent version of RTBackend in order to fix


Version 1.14 brings minor improvements to the Realtime WYSIWYG initialization process.

It changes how we identify the presence of CKEditor, as per WYSIWYG-44:

 prefer URL to resources for identifying presence of CKE

If the document lock screen is encountered, it also adds some descriptive text before the lock override link, informing the user that they will be joining a WYSIWYG realtime session (and not any other kind).

This closes RTWYSIWYG-43

 add text above 'join realtime' describing the type of session


Version 1.13 addresses issues that arose when using the RTWiki and RTWYSIWYG extensions at the same time.

If an RTWiki session is already in progress while you attempt to start a Realtime WYSIWYG session with CKEditor, the document lock screen will instead prompt you to join the ongoing RTWiki session.

For best effect, update your RTWiki extension to version 1.18 or later.

Closes RTWYIWYG-46 and RTWSIWYG-47.



 Websocket URL is invalid

If a falsey url is provided by the XWiki environment, the realtime initialization script will abort, rather than trying to create a websocket and failing. This is usually the result of having installed the realtime back end without restarting, or some other incorrect installation procedure. See the documentation for more details.


 Websocket failure during initialization can result in a locked CKEditor

CKEditor is locked by the realtime session while it initializes. iIf the websocket initialization fails, the editor will abort early. The early abort procedure now involves a step to unlock the editor and fall back to default, single-user behaviour.


 Source tag is not removed in Chrome

The removal of the source button is now applied on a stricter condition.


 bug report button leads to bogus URL

More careful serialization of bug report URL values from the server to the client result in correct behaviour. If the URL is not defined in the Administration panel, the button will not be displayed.


Version 1.11 introduces a new "bug button" which will navigate to a URL in a new tab (once you have configured the URL in your Wiki).

Wiki Administrators can configure this URL by going to their Wiki Administration Panel. Under the "APPLICATIONS" sidebar there will be an entry for "Realtime WYSIWYG". This configuration panel exposes a field for an "ISSUE TRACKER URL".

This release also closes RTWYSIWYG-34, in which browsers would occasionally have their cursors stuck inside of an element which did not accept input (typically BR tags).

It also closes RTWYSIWYG-35, handling rendering errors instead of panicking and displaying an error.

Finally, it closes RTWYSIWYG-33, by adding a more specific test condition to detect the CKEditor stylesheet. This is the condition it uses to determine whether it should attempt to launch the Realtime code, which adds a checkbox to allow or disallow realtime collaboration.


rtwysiwyg-1.10 updates to CKEditor-ui-1.4, and includes a critical bug fix.


This is a minor version which patches an error in the serialization process and exposes debugging variables via a global variable `window.REALTIME_DEBUG`.


This release addresses a bug triggered by leading spaces within classes, like so: " cke_show_borders", which translated into invalid css identifiers, like so: "..cke_show_borders".

Additionally, this release has reintroduced usage of the ErrorBox API, which will let users know when there has been a deserialization issue.


This version Closes RTWYSIWYG-17 and RTWYSIWYG-16.


This release syncs a browser independent representation of the DOM.


Dependencies for this extension (calebjamesdelisle:rtwysiwyg 1.37):


Get Connected