Table of Contents
Collaboration is key to content management workflows, whether from the editor, marketer, or developer perspective. Nonetheless, one of the remaining unexplored areas for effective content collaboration on the web are content management systems (CMS). Because of technical limitations, CMSs have long been hamstrung in their ability to provide the sort of rich collaboration workflows other applications like Google Docs enable out of the box. Fortunately, collaborative editing in storied CMSs like WordPress and Drupal may soon be a reality thanks to Yjs, an open-source framework for shared editing.
On our recent Tag1 Team Talks episode, featuring Kevin Jahns (creator of Yjs and Real-Time Collaboration Systems Lead at Tag1), Michael Meyers (Managing Director at Tag1), and Preston So (Editor in Chief at Tag1 and author of Decoupled Drupal in Practice), we discussed some of the incredible opportunities that collaborative editing in ongoing projects like Gutenberg and future content management use cases enables. In the first installment of this multi-part blog series, we discuss the motivations for why so many CMS practitioners are now considering collaborative editing an increasingly must-have feature.
In the second and third parts of this series, we discuss some of the implementation challenges surrounding collaborative editing in Gutenberg, and in the final installment, we cover the roadmap ahead for shared editing in WordPress and how you can get involved.
For editorial teams, collaborative editing is nothing new. After all, ecosystems like Google Drive and Microsoft Office 365 have long enabled the concept of collaborative editing. Indeed, many editors prefer to use these applications precisely because of the shared editing features they tout. This has led to a corresponding decrease in the amount of content editing directly in content management systems, though this may be about to change thanks to the advances in collaborative editing frameworks. But given the proliferation of collaborative editing tools around the web, why should CMSs explore shared editing features for themselves in the first place?
Content management systems (CMS) like the long-prominent WordPress and Drupal are exceptionally well-positioned for content creation and content workflows that support the delivery of content through web and non-web channels. On our Tag1 Team Talks episode, Kevin recalls setting up his first WordPress site, a blog with some articles, and being impressed by the capabilities that CMSs have on offer. For many people, content creation in CMSs is a key element of CMS feature sets, though this is just one in a wide array of features. Gutenberg, a visual editor for WordPress editors, is an impressive new project that empowers editors with a richer editorial experience.
However, one of the key outstanding issues in content management systems is the lack of truly collaborative editing. Kevin sees this is a major unaddressed opportunity for CMS communities. His vision is to bring shared editing to “every user, every editor, every platform.” As the creator of Yjs, he aims to bring collaborative editing first to WordPress Gutenberg before expanding the scope of his dream to other ecosystems. Michael remarked during our conversation that “everything old is new again,” where despite the fact that WordPress users have access to Gutenberg, many editors are still using Google Docs due to its advantages when it comes to team collaboration. Nonetheless, Michael argues, content collaboration needs to become table stakes in CMS workflows for content management frameworks to successfully differentiate themselves from competitors.
As we have seen in previous episodes of Tag1 Team Talks, one of the primary value propositions and unique differentiators provided by Yjs is the fact that it enables shared editing beyond just text. Yjs supports collaborative editing not only for text but also for applications like collaborative drawing, drafting, and a variety of other possibilities. And Google Docs, as an example, has only a limited ability to provide collaboration on media beyond text. One exciting potential use case for Yjs and collaborative editing in the CMS is the concept of collaborative layout building.
After all, one of the key benefits of CMSs like WordPress and Drupal is the fact that they support both content creation and layout building — the control of both structured content and its presentation. By building the foundation for a Gutenberg editor that includes collaborative content editing, we can open the door to exciting new futuristic features like collaborative layout building. There may even be, in the future, a WordPress plugin for Gutenberg that enables drawing pictures or even collaborative whiteboarding without the need for heavy-duty image editing software. Imagine the opportunities this would open up for content management systems!
To illustrate this further, consider a scenario in which two editors can collaborate together not only on the same textual content but also the way in which a landing page is laid out. In the context of existing editorial workflows, this would include the ability to gather input and feedback on such a collaborative layout before the page goes live, just like a normal page of content. From the perspective of both structured content and presentation, both of which a marketer would ideally have control over, the idea of reviewing both the content and its layout is a deeply compelling notion.
Drafting content collaboratively can be an altogether rewarding experience, but CMS practitioners know well that collaboration on content must go beyond the textual content in which CMSs traffic. There may, for instance, be a need for a short outline collaborative edited in preparation for content production, or a drawing of high-resolution images that eventually will become SVGs in the final product. With the concept of real-time collaboration, content management systems could go well beyond the auspices of simply creating a finalized document of text; content management is about non-text content too.
In collaboration with Tag1 Consulting, the WordPress Gutenberg team is currently working to bring collaborative editing to the Gutenberg project. One of the baseline requirements of collaborative editing in Gutenberg is the following notion: “You simply install WordPress and it works.” There should, at least for the vast majority of users, be no need to add new servers and installation requirements for real-time collaboration to be a core feature. In other words, the expectation should be as if collaboration were table stakes, a baseline requirement for Gutenberg users.
Kevin recalls his first time building a WordPress site, when WordPress worked on any server environment with the cheapest hosting available. The vast majority of developers won’t have the resources to set up a fully collaborative editing suite directly on top of a WordPress stack that enables high performance and rapid processing of requests at the velocity needed for today’s user expectations. Because content collaboration needs to be as close to real-time as possible, this was a chief concern for the Yjs framework and the Gutenberg project.
The Gutenberg team also came with their own requirements for the proof of concept of collaborative editing in WordPress. WordPress and Gutenberg simply need to work immediately once published to a server. There should be no need to register for an account and add a third-party client in order to make real-time collaboration a reality on WordPress Gutenberg. In addition, collaboration needs to be performant and not block the typical WordPress server process. As an illustrative example, Google Docs sends every keystroke to a central server to ensure content synchronization and conflict resolution, but on smaller instances this sort of friction could undermine functionality, as many requests in succession are difficult to handle in a performant fashion.
As expected, the WordPress Gutenberg team is deeply concerned about supporting continued high performance on WordPress sites, and Yjs enabled a solution for such situations. In addition, key requirements like shared cursors to have awareness of where other editors are working (a fundamental aspect of Yjs that we discussed in a previous Tag1 Team Talks episode) are essential to the end user of a collaborative content editing experience. In the end, because expectations for shared editing are so high, user expectations are rightfully also elevated, with the concepts of shared cursors, version diffing, offline editing, and seamless collaboration on the same content all constituting an optimal shared editing experience.
Collaborative editing has long been a pipe dream for most content management systems, and many editors have been content to continue operating as usual in collaboration platforms like Google Docs. However, thanks to the emergence of tools like the open-source collaborative framework Yjs, enabling collaborative content creation in traditional CMSs like WordPress and Drupal is now a reachable reality. Moreover, the possibility of shared editing beyond text, including exciting applications like layout building and drawing, opens the door to a promising future for content management systems well beyond where they are today.
In the first installment of this blog series, we examined some of the motivations for a collaborative content editing experience in content management systems like WordPress and Drupal. Content collaboration goes well beyond the usual applications of simple text documents and extends into the realm of more exciting potential areas such as layout building. In the next installment of this multi-part blog series on collaborative editing in Gutenberg, we take a closer look at the requirements for content collaboration on Gutenberg and some of the challenges around implementation that surfaced during the process.