Real-time collaboration

When you have multiple content editors working on the same set of pages, it is very important to be sure that each one knows what others are doing so that they don't work on the same content as the same time and don't overwrite the content on "the first save wins" way.

Since React Bricks v3.4.0 we introduced the Collaboration feature, so that now it's easier to work on the same app with no worries. Discover the choices we made and the solution we implemented.

Conflicts avoidance and conflicts solve

There are mainly 3 ways to avoid conflicts at all or solve them as they happen:

A. Pessimistic lock

Easier for users

B. Optimistic lock

like git, merge commit or branch...

C. Real-time collaborative editing

Like Google Docs or Notion... more complex to implement Not sure it is better for marketing!

What we chose

React Bricks uses a very efficient pessimistic lock system. The first user who start editing the page gets the control and sets the lock on the page: no other user is able to edit the page until it is released.

When the user saves the page or change page without saving, the page is released, so that other users may edit it.

To improve the system, we could try to have a fine-grained lock (for example at block level instead of page-level), but we think that the page is really the right unit of content to reason about, so...

When a user needs to apply urgent changes to a page, there is the "force unlock" button which forces the release (unlock) and gives the control to that user.


1. Presence on the App

Every editor can see who are the users logged in the App in a certain moment, so that they know who is working on the app content.

2. Presence on the Page

You can also see the users who are viewing a page and the one who has write permission (with the pink border).


Back to the Blog

Subscribe to our newsletter!

Be the first to discover our latest news. No spam, promise.