Part 1 | Part 2 | Part 3 | Part 4
Table of Contents
Shared editing in Gutenberg today and in the future
When can we use shared editing in Gutenberg
Could telemetry help with issues?
How can editor workflows improve with shared editing
How has the Gutenberg team reacted?
What's ahead for shared editing in Gutenberg?
Conclusion: How to get involved
Here on the Tag1 Team Talks show, Kevin Jahns (creator of Yjs and Real-Time Collaboration Systems Lead at Tag1) and Michael Meyers (Managing Director at Tag1) spoke with your correspondent (Preston So, Editor in Chief at Tag1 and author of Decoupled Drupal in Practice) about how collaborative editing can work in Gutenberg thanks to Yjs. In this multi-part blog series, we cover this prospect at length, and in this final installment to close out our exploration of Yjs in Gutenberg, we take a look at the coming milestones on the roadmap and how you can get involved in making shared editing a reality in Gutenberg as well.
Shared editing in Gutenberg today and in the future
Before proceeding to the next section, I highly recommend you read our first, second, and third installments of this blog series about Yjs in Gutenberg and collaborative editing in WordPress in order to check out some of the motivations behind the initiative, to learn some of the problems found during the implementation process, and to see how this could also become a possibility in the Drupal ecosystem as well. Those posts provide crucial context as we delve into the roadmap for Yjs in Gutenberg and how you can get involved in the community and share your contributions and feedback.
When can we use shared editing in Gutenberg?
Kevin believes that shared editing in Gutenberg will become a reality sometime this year. One of the elements he is focusing on first, as he shared during our Tag1 Team Talks episode, is to make the collaborative editing solution available behind a feature flag that can be enabled as an experimental feature in WordPress. Because it hasn’t yet been tested that well, and because Gutenberg itself remains experimental, Kevin wishes to take incremental steps toward the finish line. This doesn’t mean, however, that users shouldn’t be able to begin using this experimental feature with all the necessary caveats.
With the help of collaborative editing as an experimental feature in WordPress, the team can understand how users are leveraging the feature and quickly surface issues that arise. As for coming plans, creating a user interface that enables users to understand shared cursor locations and other collaborative cues is fundamental to any end-user experience when it comes to shared editing. For instance, how should collaborative drag-and-drop interfaces be handled in the CMS context? Perhaps another editor may want to see, in a visible affordance, that you are currently dragging that paragraph to a new location on the page at this very moment.
Could telemetry help with issues?
During our Tag1 Team Talks episode, I asked a question that is doubtlessly on the mind of anyone implementing an experimental feature: Does Gutenberg’s implementation of shared editing include any telemetry or instrumentation to track user behavior in order to better understand how they interact with the interface? Kevin admitted that it would be an interesting proposition, and in the early days, he and the rest of the Yjs team spoke about how to capture users’ edits and how to track how many deletions and insertions were effected in the interface. Telemetry, however, runs into a significant and prohibitive obstacle: the fact that potential telemetry data in shared editing could easily exceed collaborative data in size.
Michael quipped during our conversation that he wouldn’t want others to know how many times he routinely rewrites sentences, and I responded by offering up another potential use case for such telemetry: a Grammarly-like case where predictive intelligence could ascertain how certain writing should be improved in content. One of the aspects of shared editing in Gutenberg that is particularly fascinating for Kevin is the notion of knowing how much users are collaborating with one another in order to improve Yjs’ sense of conflict resolution. Because clients, in a peer-to-peer context, communicate so rapidly with other clients thanks to protocols like WebRTC, such minimal telemetry could potentially help advance the conflict resolution feature further. To be absolutely clear, however, users concerned about privacy can rest assured that there is no telemetry present in Yjs at the moment.
How can editor workflows improve with shared editing?
Collaborative editing also opens the door to a range of other interesting possibilities. For instance, Michael cites the case of a site Tag1 is building at the moment that operates in multiple countries, with many translations and localizations to manage. This implementation has a particularly labyrinthine workflow in which different distributors own disparate countries and the content delivered for those countries. Multilingual content is another area where collaborative editing could feature in an elegant way; imagine, for instance, collaborating with another peer halfway around the world to provide as live a translation as possible for content that needs to go live as soon as possible in a variety of languages and localization schemes.
How has the Gutenberg team reacted?
One of the central questions is how the WordPress community and particularly the Gutenberg team have responded to shared editing in the Gutenberg context. Kevin responded by stating that he has received a significant amount of feedback. When the Gutenberg team first witnessed the possibilities of shared editing in Gutenberg, they were impressed that peer-to-peer offline editing is now a reality. As Kevin admits, one of the questions they asked was: “This seems very complicated; how is this possible?” Kevin sheepishly agrees that it seems like nothing short of magic and too good to be true.
Kevin believes strongly that implementing this as a feature for the vast majority of content management systems in use today is no longer an impossibility. After all, the eventual mission of this initiative is to enable a workflow in which editors can simply install WordPress with Gutenberg and have shared editing be available, immediately and out of the box. As he said on our Tag1 Team Talks episode, Kevin looks forward to hearing from actual users and about the challenges that end users have faced while leveraging the new collaborative editing interface.
What’s ahead for shared editing in Gutenberg?
Matt Mullenweg has long waxed poetic about JavaScript in the WordPress community, but he has also mentioned the exciting potential engendered by collaborative content creation in the Gutenberg context. After all, such editorial collaboration is a highly desirable feature for many people, but many of the seemingly intractable challenges intrinsic to such an implementation have made it seem far out of the realm of possibility and at least a few years down the WordPress roadmap. However, Michael spotlights this project as a case study where with a smidgen of funding and effort, we can accelerate some truly futuristic opportunities like shared editing in Gutenberg within a matter of months rather than years, as would have seemed the case only a few years ago.
The funding and support Tag1 has provided to this initiative represents, according to Michael, a “tremendous acceleration” that ensures the continued dominance of WordPress in the CMS landscape. After all, WordPress has long displayed innovation well ahead of its time in the form of the Gutenberg editor and other initiatives, and Michael is hopeful that future funding can accelerate the pace at which these forward-looking projects happen. Michael states that many in the WordPress community are deeply excited about the prospects represented by shared editing in Gutenberg, especially the working demo that has already gone great lengths to win community members over.
Conclusion: How to get involved
Kevin jokingly requests that community members of both WordPress and Yjs make his life hard by giving him unsparing feedback about how shared editing in Gutenberg works for them. After all, you yourself can also try out collaborative editing in Gutenberg today, available as a pull request on the Gutenberg GitHub repository. Kevin states that he will continuously push relevant updates to the project, and there is documentation already available in the pull request about how to experiment with the prototype on your own local machine. To get this going on your own WordPress site, it’s sufficient to install the plugin directly, and Kevin encourages all users to submit comments when things go awry.
This final installment in this four-part blog series about shared editing in Gutenberg with Yjs represents a fever pitch of content we have released at Tag1 Consulting about Yjs and the variety of possibilities it enables. We recommend, if you’re interested in learning more about how Yjs can enable similar collaborative use cases for your organization, reaching out to yjs@tag1consulting.com with any questions about Yjs, along with opportunities for consulting services and paid support for collaboration through Yjs. Thanks to Yjs, CMSs like WordPress and Drupal can finally realize a dream that long seemed an impossibility and, at the very least, a fantasy fit for the movies.
Special thanks to Kevin Jahns and Michael Meyers for their feedback during the writing process.
For more Yjs content, see Yjs - Add real-time collaboration to any application.