#106 – Anil Gupta on the Challenges Posed by Multi Collaboration in WordPress

Transcript

[00:00:00] Nathan Wrigley: Welcome to the Jukebox podcast from WP Tavern. My name is Nathan Wrigley.

Jukebox is a podcast which is dedicated to all things WordPress. The people, the events, the plugins, the blocks, the themes, and in this case, the challenges posed by multi collaboration in WordPress.

If you’d like to subscribe to the podcast, you could do that by searching for WP Tavern in your podcast player of choice. Or by going to WPTavern.com forward slash feed forward slash podcast, and you can use that URL in most podcast players.

If you have a topic that you’d like us to feature on the podcast, I’m keen to hear from you, and hopefully get you, or your idea featured on the show. Head to WPTavern.com forward slash contact forward slash jukebox, and use the form there.

So on the podcast today, we have Anil Gupta. Anil is the CEO and co-founder of Multidots, Multicollab, and DotStore. His companies serve a wide range of customers, from large publishers and news companies to WordPress users.

Of specific interest to this episode of the podcast is Multicollab, which offers a WordPress plugin that allows for Google docs style collaboration, including commenting, suggestions, and real time editing.

When Google docs was first brought to the market, it was a pretty big deal. Perhaps not the first to offer a real time collaborative interface, it was certainly the first to gain widespread adoption.

Fast-forward to today, and it’s more or less inconceivable that you’d create documents which were not editable by multiple people at the same time. Most modern online software ships with this built in. The extraordinary became the norm and the expectation.

But what’s about WordPress? As the largest CMS, WordPress still lacks this functionality, but hopefully not for long.

Phase three of the Gutenberg project, the phase that we’re in at the moment, aims to make it possible for many users to amend content at the same time. The beguiling simplicity of the Google docs interface makes it seem like this would be a trivial feature to add into WordPress, but this is not the case. Unlike proprietary software, in which the vendor owns and manages the whole stack, WordPress is used by many different people, in many different ways. They might have a shared server, or a range of plugins, and this all complicates the picture.

Anil talks about how his team decided to tackle this problem for their own plugin, and he explains some of the hurdles that they’ve experienced along the way. They’ve taken a cautious approach, developing different features one at a time, working through the technical challenges with commenting before moving on to real time editing.

Anil paints a picture of a bright future for WordPress, once this new feature set is completed. But it’s also interesting to see how many challenges the developers will need to overcome before it can be shipped in a future WordPress update.

If you’re interested in finding out about the future of editing content in WordPress, this episode is for you.

If you want to find out more, you can find all of the links in the show notes by heading to WPTavern.com forward slash podcast.

And so without further delay, I bring you Anil Gupta.

I am joined on the podcast today by Anil Gupta. Hello Anil.

[00:03:56] Anil Gupta: Hey Nathan, how are you?

[00:03:58] Nathan Wrigley: Yeah, great. It is an absolute pleasure to have you on the podcast. Anil and I have spoken on various occasions before, but we’ve never had a one-to-one conversation, certainly not about this subject. But we’re going to be talking today about phase three of the Gutenberg project, and in particular, about the ability to collaborate on documents inside of WordPress. How that might come about. What some of the technical barriers might be.

Now in order for Anil to be a credible person on this podcast, it’s probably a good idea to give him the opportunity to introduce himself, and let him talk briefly about the projects that he’s working on, or worked on which overlap what we’re going to talk about.

So Anil, this is just an opportunity really to give your bio, so that our audience know that you know what you’re talking about. So over to you.

[00:04:42] Anil Gupta: Absolutely. So I’m a CEO and co-founder of Multidots, Multicollab and Dotstore. So these three brands serve very different group of customers. Multidots is more like our WordPress agency side of the business, where we help large publishers, news and media companies for their WordPress migration. So whatever CMS they’re using, we help them to migrate to WordPress.

Our second brand Multicollab, which is a WordPress plugin, a Google Doc style collaboration, that doesn’t exist at this moment in WordPress. But with this plugin, you can use commenting, suggestions and real time editing. And that’s one of the topics that we are going to talk about today.

And the third brand is called Dotstore, which serves small e-commerce business owners. So if you have a WooCommerce store, we provide bunch of different WooCommerce plugins that helps you to get more sales and better performance, and all those good stuff.

Apart from these three brands, I also have a podcast called Peaceful Growth, where we talk about some of the strategies on how to grow in life and business, in a more peaceful and balanced way.

[00:05:43] Nathan Wrigley: Well, thank you so much. That’s great. So now we know all about you, well, not all about you, but some things about you. Let’s get into the subject at hand, which is going to be multi collaboration inside of WordPress. And I think really, to begin with, let’s imagine in the conversation that we’re going to have, that we are just creating posts and pages. Let’s leave it at that for now, because that will mean that the conversation is easier to understand. And I guess I’m just going to hand it over to you to ask why we need this kind of feature inside of WordPress.

And just before you begin answering that, I’ll say, if you’ve never used Google Docs or Office 365, then it may be that you don’t even know what we’re talking about. So this is the ability for a variety of people to log into something at the same time, the same document, and be editing it synchronously. So if you were to edit something, I would see your edits the moment that you made them, and in that way we can collaborate.

It is still a mystery to me how this actually happens on the backend, but it certainly isn’t a part of WordPress. At the moment if somebody’s editing something, you are locked out, if it’s not you. And you have to wait until they’re finished, and that might even mean a phone call or an email to tell them, are you finished yet? And this all seems a little bit Victorian, you might say. It’s really from a different era, now that everybody’s got collaborative editing. But, why do we need it in WordPress? What’s wrong with what we’ve got right now?

[00:07:04] Anil Gupta: Good question. I would say there are multiple reasons, as well as benefits, of collaboration. But let’s start with the reasons. Traditionally if we go back, when WordPress was launched 18, 20 years ago, the sole purpose of the WordPress was to provide a platform where content creators, publishers, or bloggers, they can create the content easily and quickly, right? And it solved the purpose.

But, in the last 10 years we have observed that anything that we do digitally now, it’s not a single or solo creation. You collaborate, we collaborate with others in regards to creating and producing stuff. Now, if you look at the content publishing, content creation applications, I think Google Docs or Microsoft Word, or any application for that sake, you know, if you look, they kind of like already saw this need, as the internet bandwidth and infrastructure got better. The need to collaborate together and create content together, actually increased, right?

So 10 years ago, when Google Doc and all other content creation app, they already kind of started working on adding the collaboration as a part of their content creation platform. And in last five years, all the modern content creation platform, whether it’s Canva or Notion, they kind of all also have started introducing the collaboration.

And unfortunately, WordPress doesn’t have collaboration. And why we need a collaboration, you know, the one reason I see is like, now we are not creating the content alone. You know, like even if you are a blogger, you have at least someone you know, that you would like to share your piece of content before you publish it. And then they will share some of the ideas like, okay, you know we should add some graphics here. And just that collaborative communication.

And now, yes, there are other apps that we use, maybe Slack, Zoom, Loom. Like a lot of different other communication apps that we might be using, in order to achieve this feature. But because all other content creation apps has all these features inbuilt, now it has become an expectation for anyone who is either using WordPress or switching to WordPress, that I would have the same collaborative tools that I was using in my previous content creation apps.

Last thing I would say is since pandemic, you know, that like earlier a lot of people were kind of like working from the same office, so they will be more collaborating over the floor, and just like, you know, or the tea and coffee conversation. Now, as we all are virtual, working from remote places and all that. So then it’s not real time, where like, you know, two people can be available. The time zone differences, and a lot of things actually creates that space, where the need for async communication has also been increased. And that is where also, if we have all the collaboration features in the WordPress, that will be helpful.

[00:09:54] Nathan Wrigley: Yeah, it’s interesting because I am of a certain age, and I started using WordPress at a time when, well, not necessarily WordPress, but I started using CMSs at a time where there was absolutely no expectation that anything was collaborative. And so I’m kind of okay with it. It’s not perfect, I would love for collaboration to be in there, but I’m used to it, and this is just how WordPress works. I understand that if somebody’s editing something, I have to wait a little bit.

But I’m thinking in particular about my children, and the fact that they’ve been brought up in an era where this is the bare minimum of what a document workflow would be like. You begin creating it, you put a title in, and then maybe even the next step, rather than writing the content, is to click the share icon, wherever that may be, and to get your fellow collaborators in.

So I know, for example, that schools throughout the UK are using all the different suites that you mentioned, to enable them to hand homework in. And their staff can edit things, and modify things, and correct their work and all of that. And it’s just the bare essentials. And so somebody like me, it’s fine. I’m used to it. But the next generation, the people that are growing up, the people who are, let’s say, I don’t know, 20 or below, there’s no way that it’s acceptable to not have collaborative editing. It’s just too strange, alien. And if that’s the case, it will probably not be used.

You know, you log into WordPress for the first time, see it cannot do that, and then think, well, I’ll go to somewhere that can. And as we know, WordPress is in a competitive landscape. We’ve got the SaaS apps out there, the Wixs and the Squarespaces, and I don’t actually know if they can do these features.

[00:11:36] Anil Gupta: I think Wix does, yeah.

[00:11:37] Nathan Wrigley: Right, okay. So we think that some of them do, and the fact that they’ve got their own architecture, you know, they own all of the infrastructure, and they can put the resources into place for that. It’s probably more straightforward to them to do that. So that leads us to the next thing really, which is, when we’re talking about this, are you able to just flesh out the landscape a little bit?

Do you have any insight into what specifically is in the proposal for sharing within WordPress? Because Google Docs, you share a doc. Google spreadsheets, you share a spreadsheet, and it’s fairly constrained. We’d be sharing something, which can be filled up with a myriad of different things, little blocks. You know, it might be a paragraph block, or a YouTube block, or a image block, or goodness knows what array of blocks you may put in. Do you have some insight into exactly what’s inside the spec for Gutenberg phase three, this collaborative era?

[00:12:30] Anil Gupta: Yeah. So Matías, lead architecture of Gutenberg, he kind of shared a full roadmap of what we can expect in phase three, which is a collaboration phase of Gutenberg. It has workflows. So the one thing is, as soon as you have this, all the collaboration features, you know, we need to also control the workflow. Like who will approve, who will publish, because multiple people are on the document. You know, where we want to control, or design a workflow in a way so that, if somebody’s still drafting, someone else doesn’t just publish it accidentally, right? So there are like a lot of, I would say, some workflows.

And then second I would say, which is their async communication. So async is where multiple people can update, contribute to a piece of content, without need of being online. All the changes are synced. And then, it also has some inline commenting. So we can provide some, select any piece of content, a block, a text, table or image, and leave some comments that like, hey, I don’t like this image. Can we change that? Or, what do you think? Like, ask someone else’s opinion.

And then, specifically talking about the phase three, I think they also have the whole admin panel. So I think they’re working on the admin panel. I’m not sure if directly related to collaboration, but as a part of the phase three, they are working on revamping the admin interface.

If we look at the focus only on the collaboration, I would say async communication, inline commenting, and some level of workflows. You know, those are the three big things that I see will be there in phase three.

[00:14:00] Nathan Wrigley: Yeah, there’s an awful lot packaged into that, isn’t there? Just as you were speaking there, a whole myriad of things were coming into my head. And I should probably rewind and say, if this is achieved, it will be in a vanilla version of WordPress. I know that you have a solution where you can add a plugin, and we’ll come to that later. You can talk about some of the hurdles that you’ve had to overcome.

But in a vanilla version of WordPress, everybody will have this functionality, should it be achieved. And at the moment, in a vanilla version of WordPress, the publishing flow is really, pretty straightforward. You log in, and you basically click publish. But you’ve just introduced a whole raft of different things.

So workflows, let’s take that. You know, if you’ve got seven people, eight people, a hundred, who knows. Any number of people who are editing in there, there may be a myriad of different permissions. This person is able to do this, and this person is able to do that. But finally, only these three people can publish things.

So we need to come up with a visual way of surfacing that inside the UI so that, I don’t know, if six people have been in, and they’ve edited this, is everything that they’ve done okay? Can we just have a quick scan through it? None of that exists, really, at the moment. Third party solutions can bring that to bear, but none of that really exists.

The whole async thing, well, that’s removed entirely at the moment, because you just click either update or, you know, you click publish, and whatever you’ve got on the page or the post is what is saved. And it’s as simple as that. Where, you’re saying that maybe if somebody, I don’t know, it goes offline temporarily. We have to have some way to keep their content, so that when they come back online, it somehow gets synced.

And anybody that’s been involved in building or developing realises, you know, if things get outta sync pretty quickly, it’s a hot mess. And trying to untangle, well, when did that happen? Who put that in, and when did they do it? That’s going to be interesting.

And then yes, of course, the whole inline commenting thing. You forget, don’t you? If you don’t use the comments in a, let’s say a Google Doc again, you forget that there’s that whole interface, which doesn’t come to bear unless you use it, which enables you to give commentary on things. To say, I think you should modify this, this is fine. And you can tick things off, and it’s almost like a little task management system.

And then it sends out a slew of emails to say, oh, somebody’s edited this, that, and the other thing. And, you know, it makes decisions about how many emails to send out based upon the rapidity of the changes going on. So there really, really is a lot in there that needs to be, first of all, figured out, and then made visible to us in a way which is intuitive, and that the next generation can understand without having to think too hard. That’s a lot, isn’t it?

[00:16:42] Anil Gupta: It is, yeah. And I think, all these little things, if we keep it into account, like email notification that you mentioned, and if somebody’s already editing a document, there are some changes which are not approved, you know, whether we should be able to publish it or not. There are a lot of little things that we need to think about when we are creating this solution.

But most importantly, people who used to use WordPress, you know, the way as we talked about, you know, you go on a post and start drafting the content, and select some blocks here and there, and then you go ahead and publish it. So now when multiple people are collaborating, yeah, you need to pay attention to all those different things.

Permissions that you mentioned, yeah, I think that’s something that, even in our plugin, we are kind of getting a lot. That the default WordPress roles, we kind of think a little bit more about on that too, in regards to like, hey, I don’t want this person to approve any changes, you know. It should be this person. Though that person can edit anything, but they will not be able to accept any changes, or close the comments.

So those are like a lot of little things that need to be there. And user experience, I think will be a very big thing that we need to pay attention to as well, so that we don’t overwhelm the people who love WordPress, simplicity of the WordPress, and when they see all this stuff, is like, why? What’s going on?

[00:17:55] Nathan Wrigley: I do wonder on what level the granularity of permissions works. So, is it all done by the role-based system? So, you know, if you have a certain role, you can go in and edit any post or any page. Or, would it be nice to have it on a more granular level? So, okay, although this person has this particular role, which would preclude them from editing this, I want to allow them to edit this one special thing, because it’s right in their wheelhouse. So, okay, even though they’ve got this role, I want them to adopt a different role, just for this one post.

And then maybe even delving deeper inside the post or the page itself. What about the ability to just edit certain blocks? So paragraph blocks, yes, go for it. But the YouTube block, no, no, no, that’s not for you to be editing. Or the images, no, you can’t do that. You know what I mean? You can get really granular. And I guess it’s a question of how granular we want that to be, and how do you surface that in a way which is easy to understand?

And then you mentioned also, the visual cues that you’re getting inside of these third party solutions, like Google Docs. You can really see what somebody is doing. So you get this little icon, which is within the document, it kind of stays out the way a little bit. You know, it’s a very thin, little couple of pixels wide icon with a color. But you can see, okay, that’s where somebody’s cursor is, and if they highlight a portion of text, because they want to delete it or something, you can see that that’s highlighted.

In WordPress that might span several blocks. Whereas in a Google Doc it’s just, it’s all one thing so it doesn’t really matter. But it may be that it highlights, you know, you highlight two paragraph blocks and a heading block, then you’re going to delete those. How does that all get done? How does it get saved? How can you revert changes that are made? Boy, there really is a lot going on in here.

[00:19:34] Anil Gupta: It’s a massive technical problem that we need to solve, in order to provide this feature, as well as offer that in a way so that it still is helpful. You know, to help them to create and published content faster, not slowing them down.

[00:19:47] Nathan Wrigley: The thing about this is, you can’t really release something that isn’t working perfectly, in the scenario that it’s been created for. I don’t know, we tackle, user permissions first. That has to be perfect before it’s released. It can’t be kind of, okay, just test this out a little bit and see how it goes.

It has to be bulletproof, the moment it ships into WordPress Core. And I think that some of the things that came into Gutenberg, and went out of Gutenberg, and got changed in Gutenberg, that was more or less okay, because it didn’t interrupt the publishing workflow. It just, maybe things surfaced on the front end slightly differently. Or there was a block that was suddenly now available, which wasn’t available there before. And all of that was okay. But if we’ve suddenly got things which mean, well, no I can’t publish anymore, that’s not working for me. Oh, okay, that’s not so good.

So in the background, what are you thinking ought to be in view here? You know, are you thinking that it should just be core blocks at the beginning, the blocks which WordPress ships with? Should they be the things that are tackled? Should it be attached to just posts and pages and custom post types, leave all of that. Templates, leave all of that. Patterns, leave all of that. Do you have any intuition as to how deep it should go at the beginning, to make it even feasible to get off the ground?

[00:21:00] Anil Gupta: Yeah, so I think that’s a really good question. The reason is, as we talked about, like collaboration is a massive problem. And you can’t try to change everything in one go, you know. So you need to take a different part of the collaboration, and slowly build it in a way so that, yeah, you don’t basically put the whole house down, right?

I’m not sure what’s the WordPress Core’s approach is, but when we started working on Multicollab, our approach was, let’s focus on the one feature at that time. So what we did is, we first launched only inline commenting, so no real time editing, so we don’t have to worry about the permissions and all that. No real time editing, just inline commenting.

So in any piece of content, you can select it, whether it’s a blog, whether it’s media, whether it’s a text. You select it, and it’ll give you little comment box, where you can add a comment like, hey, I need some feedback on this, or changes here. And you can also mention anyone who is a WordPress user. So you type in at, then you can select a user, and they will be notified, and they can see and come back to the WordPress post. And they will see like, oh, somebody wants my feedback and opinion on that, and they can reply there.

So that was the first thing we launched. And we perfected that inline commenting almost for like a two years. So we focused on that, to make sure that works. And what you mentioned, one of the big challenge with the WordPress is, everyone has themes, plugins, and blocks, right? So, what sort of blocks are they using in Gutenberg setup, or what sort of plugins are they using?

Like Yoast SEO also manipulates the page editing interface and workflow. So that’s why we decided like, alright, we’ll just start with the inline commenting. We slowly increased it. We still have a compatibility metrics where we continue to tell them like, hey, at this moment, this 20, 25, or 30, or 60, however many blocks are like, this is what it supports.

And then we slowly started focusing on more popular plugins, and their blocks. So then, slowly, we are increasing the compatibility to more blocks. But that’s something that it’s very hard to do it in a day one.

[00:22:59] Nathan Wrigley: Do you mind if I just interrupt there? So, that’s really interesting. So, did you have to take each of the Core blocks one at a time, and provide some engineering in the background that made it so that that block was available to be editable in a Multicollab setup? So you had to do the paragraph block, and then the heading block and then, okay, aspects of the group block, which might break something else, we had to deal with that.

So you had to do that first. And then, because all the third party vendors who’ve got the blocks and the block suites and, you know, there’s a lot of those now. You’re having to tackle those because they don’t necessarily work. So immediately my head is this multiplying problem of, how do we reign that back in? How do we get it so that everything is engineered, so that it will be collaborative? So let me just ask that question again. Did you have to do the blocks one at a time, is basically what I’m asking?

[00:23:51] Anil Gupta: So the approach that we took, first, we actually, instead of blocks, we were focusing on the type of content. So whether it’s a text, whether it’s media, you know, or whether it’s a dynamic content. Dynamic content is, you know, where you are not typing it in, but it’s just pulling in from, let’s say, from the database, and pulling in like featured post, right? Or let’s say testimonials. So you don’t type in and it’s already coming in from somewhere else like, you know, and then you just curating that.

So we kind of started that like, okay, how should we actually treat a text? And it doesn’t matter whether it’s a custom block, native block, or someone else’s block. As long as there is a text in that, how we should treat that. If there is a media, how we should treat that. We kind of started that. And that was our phase one. So it doesn’t matter what block you have, as long as you have text media and like couple of things, it will work.

Later on, once we achieved that, the second phase was how we make sure that we don’t have to edit anything in the code, but still our inline commenting works for whatever the blocks are. Our developer observed that, if blocks are custom blocks, are designed and developed based on following the Gutenberg’s guideline then our plugin was working. But if they don’t follow the Gutenberg guideline, if you just kind of, you know, do on your own thing, that’s where our inline commenting, and some of the things that we were doing was not functioning.

So now in our phase three. So right now we have, as long as your Gutenberg blocks is following, custom blocks, they’re following Gutenberg guideline, doesn’t matter what kind of blocks you have, it will work. And we also did an approach where, if for some reason your block is very complex, then instead of the content inside the block, you can highlight the entire block.

So that’s where we started with like, okay, we can’t actually do much about what is in the block, but you can still give a comment on entire block. It’s working, like most of the blocks where we doesn’t support, you can still select the entire block, and leave a comment on the block. Like, hey, there’s something needs to look in there. But they will not be able to select a particular text, or image inside the block and highlight that.

In our phase three, that is where we are working on. Doesn’t matter what blocks you have, but how we can manipulate the HTML DOM model. So it’s called Document Object Model, right? So the entire page is basically a DOM structure. So now we are working on how we can use the DOM JavaScript and HTML manipulation, so that you don’t need to worry about any block compatibility, it will automatically work with all the blocks. That’s our phase three.

[00:26:20] Nathan Wrigley: It does sound like there is going to be a lot of work for the Core WordPress team, to tackle this from some of the experiences that you’ve just highlighted. It is very much an iterative approach. And I guess time will tell how they decide to tackle that.

Do you have any intuition on the, backend I guess is the wrong word. But there are some people who are able to afford really complicated server setups and, you know, they’ve got powerful hosting and all of that. And you kind of get the impression that a lot of this is going to be calling back and forth to the server, constantly. Because if you imagine that there’s seven people editing a document at once, that’s seven bits of information that needs to be flying, more or less in real time, the entire time.

Whilst that might be possible to have, if you’ve got an expensive hosting set up, which is configured for this. Do you have any intuitions that if you’re on more affordable hosting, like a shared host and you’ve just got a basic plan, do you see this becoming a problem, because of the amount of data that’s going to be flying back and forth, and the power of that computer, acting as a server? What do you think?

[00:27:21] Anil Gupta: So when it comes to collaboration, and as we talked about, inline commenting, suggestions, like any edits that you make becomes suggestion, and then the real time editing. So I feel like these three are the big pillars of collaboration. Now when we launched Multicollab, you know, we launched with inline commenting, and then we launched suggestion mode, and now recently we launched the real time editing. The third piece of the collaboration.

First two piece, inline commenting and suggestion mode. So that’s something that we tested, and we found that it doesn’t require any fancy server configuration. Whatever server or hosting that you’re using right now, that will be sufficient. Because in that we are not using any peer to peer connection, because we haven’t introduced the real time editing yet. As long as you’re using those two features for the collaboration, you’ll be good with pretty much whatever server you have right now.

But the moment you introduce real time editing, that is where the server and the whole performance thing actually becomes very critical. And that’s where the challenge with the WordPress is, that all other content creation apps, and the platform, they are cloud. They’re hosted in cloud, so they have a control on the computing power, and the cloud infrastructure. They can scale the cloud infrastructure because everyone sign in and access the same cloud. One other way, they don’t go and take a piece of source code and install and use it on their own server, right?

So for that, especially this real time editing, where multiple users simultaneously can edit, and all those things that we talked about. That you highlight the cursor where other users are in the post, and if they make any changes, the changes also sync with the other people who are editing, or working on right now.

That is where a server comes into the picture, and our team actually put together a server requirement. Like, what’s the minimum level of server configuration that we need in order for real time editing to work? And that is actually a challenge that we are still working on, and finding a way to see that, what are those major hosting companies, like managed hosting, the big hosting companies. And if their current server infrastructure meets the realtime editing or not.

And that’s why we launched the realtime editing, at this moment. But it’s still on a beta and it’s by default off. One way we are handling this problem, is we are giving them an option like, hey, if you want to use the realtime editing, it requires certain level of server performance and power. If you have it, then here is the instruction that you can follow, and then you can use the real time editing. If you don’t have it, then you can use our server. So we have created our own server, you know, a massive server where all these async communication happens. The data is encrypted and all of that, but yes, we are giving the choice that, hey, if your server doesn’t support it, then you can use our server. So it’s kind of like cloud, so we have created our own little cloud, which they can use for this async communication.

[00:30:19] Nathan Wrigley: So, is that a fairly seamless experience? So firstly, that answer is fascinating. So there is a roadblock, there is a server configuration, at least in your experience, which renders the whole enterprise of synchronous editing painful, impossible, perhaps. And if you are prepared to read the documentation, and get yourself onto a server which you have determined is suitable, then it’ll work. Otherwise, here’s a button for you to press.

Is it as straightforward as that? You just sort of click a button and you are taking over that heavy lifting on the server. But it’s purely just for those sync transactions. It’s not for anything else. It’s not for keeping the content of the post, it’s just the bits and pieces that are firing to do the synchronous work, right?

[00:31:00] Anil Gupta: That’s very true, yeah. So the way we have done is, right now, if you download multi collab, it’s default, set it to our server, because we want to have them try it and test it. And then they can change it like, no, I don’t want to use your server, I want to, let’s say, configure my own server. Then you just turn that feature off, and you can take over.

But if you want to use our server, you don’t have to do anything. It’s just built in, and it’s already all the server variables, and everything we have already put into the plugin. So when you go, you just turn on the real time editing, and you can start using the real time editing without making any changes in your server.

[00:31:35] Nathan Wrigley: It’s kind of an interesting idea because, on the one hand, it creates a marketplace for people such as yourself to offer that service. You know, if you want to have synchronous editing for a hundred people, and for it to be absolutely bulletproof, here’s a plugin which connects to a service, which will give you the horsepower in order to do that.

But at the same time, the way that it’s been described, phase three feels like the enterprise is to get this working for everybody, out of the box. And from what you are saying, obviously, you know, maybe technology will improve, and browser capabilities will improve, and all sorts of things will improve. Maybe this will be possible.

But it does feel like the offering is, this is going to be available to everybody. And it would be strange for a Core feature like that to have some kind of paywall attached to it. Now, I know that we’ve got examples throughout the ecosystem of obviously extra things that you can add in. But if it’s going to be available in Core, it seems odd to then be saying, well actually, your version of Core on that server isn’t going to cut it. I’m sorry, you’re going to have to part with some money.

That feels almost like straying away from what the promise of it is. Do you understand what I’m trying to say? It feels odd to offer something in Core, which then you have to pay for because your server doesn’t live up to it. But then again, that’s just the way it might have to be, I suppose.

[00:32:57] Anil Gupta: Yeah. I think that’s where I’m also curious to see how WordPress Core is going to address this problem. Because, based on our research, for last one and a half year we have been working on async and real time editing. We tried WebSocket, WebRTC, pretty much like bunch of different, all of the protocols, we tested it out.

And one thing that we are seeing repeatedly is that, yeah, the server plays a very, very big role, hosting, specifically plays a big role. And the WebSocket needs to be enabled, and also depending on how many requests, and all of that. So there are like a lot of things that needs to be happen, before even you can turn on and use the real time editing.

And if WordPress Core is targeting that it will work seamlessly out of the box as you install the plugin. And especially like, you know, if you don’t have all this WebRTC, WebSocket, or whatever the server infrastructure is required. It’s a big question for me, how they’re going to tackle that problem, because at this moment we don’t have a solution.

And that’s why we created this. Like we bought this massive server computing power so that it can support that. The people who are using our plugin, they’re paying for that services, and they’re aware about it. But WordPress Core, I think the goal is to kind of like have that for free, so that you can use and install it. And I’m not sure how they’re going to solve this problem.

[00:34:13] Nathan Wrigley: Yeah and, what does graceful failure look like in that scenario? So if a modest server can cope with one or two people, what happens when you reach the limit of that? So you’ve added in another five people, and suddenly everything’s under strain, it’s no longer working. How do you inform, or how do you encourage the user to do things differently?

Because the last thing you want to do is lock people out of the editor, or something goes wrong in the editor, and it all becomes a problem, I can no longer publish things. Three of us are locked out, and now we can no longer get back in, or we couldn’t collaborate in the way that we thought we could. It was working better yesterday than it’s working today. Those kind of things.

And that seems an almost insurmountable technical challenge to at the moment anyway. We’re recording this at the end of 2023. It seems like an almost insurmountable challenge to be able to do that and provide it for everybody out of the box, even on the most straightforward, modest hosting package. So, yeah, I guess only time will tell.

Are there any other things that you’ve had to tackle, trying to get this done, that you would like to share? Is there any technical challenges that you’ve faced, or quirky experiences that you’ve had and things that you didn’t anticipate on the road that you now look back and think, oh, oh boy, I wish we’d thought of that in advance.

[00:35:32] Anil Gupta: Yeah, I think the big piece, what I see is the inline commenting, suggestion, and real time editing like beside this server configuration for the real time editing. I think one is, it’s whole new learning curve. You know, so let’s say when you’re using the WordPress and now when you introduce all these features, there is a learning curve for the content creators.

It’s not a technical challenge, but I think it’s more like adaptation challenge. And one thing that I think we did good and it was a decision, like a very deliberate decision that we want to keep the interface as close to Google Doc. Because Google Doc, I believe, is something that has already set a bar, you know. So when people are very familiar with like how to use the share button, how to invite someone, and leave the inline commenting. And if you kind of like try to introduce completely new interface for the collaboration, then that will also be a big learning curve.

So that’s kind of like feedback that we got initially, when we try to be a little bit more innovative, like, let’s try to, you know, provide the best collaboration interface. It didn’t go well. We were like no, we want Google Doc. We want Google Doc style and that kind of like become our roadmap.. So if you are using MultiCollab right now, using the share button, the sidebar activities, inline commenting, suggestion mode, pretty much like all those features works very similar to how you use the Google Doc.

So you will not see that big difference when you come to WordPress, that you will feel like it’s Google doc style interface. And challenge for us was to build that on the top of Gutenberg. I think that was a big, both technical, as well as a UI and user experience challenge.

[00:37:13] Nathan Wrigley: Given that this is coming down the road and, let’s imagine a future where everything works and the team that are behind this managed to pull everything off, and it’s absolutely perfectly working and everything’s fine. How did you decide that you wanted to get into this business?

Because before we hit record, I asked you that question. I said, did you decide to have this business knowing that it was coming into Core? And if that’s the case, why did you do that? Because it seems almost like you’re setting yourself up to have a business which is going to be replaced by something that’s free.

But you’ve got intuitions around that. I guess it’s around what you can package, which may exceed what the endeavor of Core is. We’ve been assuming that it would try to do everything all at once for everybody, and of course that may not be the case. It may be a very, a slim implementation. So just talk us through that. How anxious are you about phase three eating your company’s lunch?

[00:38:11] Anil Gupta: So when we started working on MultiCollab, I already was aware the phase three was already announced. They already mentioned that we are going to focus on collaboration. So it wasn’t a surprise in the beginning. The way I saw that as an opportunity, I feel like even where we know that when WordPress Core built or design anything, they try to focus on the 48% of the web. You know, it’s like a lot of small, medium businesses, bloggers. So basically they have to kind of like put it to together, something that’s targeting for a very wide audience.

On the other side, we focus, a lot of our features, like real time editing, inline commenting, these are all free, so you don’t have to pay for using those features. There are some pro level features while custom roles and permissions is concerned, Slack integration. So some of our publishers who use collaboration, they also like integrate that with their Slack and some enterprise tools they use.

So that’s where we see an opportunity that we can provide the tailored, custom solutions, to this 20, 30% of the pro users who wants things a little bit differently and more customizations.

Also by design, you know, the WordPress Core is going to be slow because, you know, everything they have to build, they have to do. It’s a massive force. And on the other side, like we have only one thing, this is the only project that we have. We don’t have like bunch of other phases that we have to worry about. So, that’s something that we, in last two years, we had made a new release every month. You know, so every month we have a new release, fix a bunch of different things, improve different things.

So I think that turn around is something that we were able to do much faster than probably WordPress Core can do. And the support is something that I feel like that is the only focus that we have. And I think we have seen that again and again in the WordPress and all other economy where, we have so many page builders, right?

Like still they’re thriving, despite Gutenberg is free. It’s in built and all that, but still, Elementor. And same goes for the bunch of other features like commenting for example. There are like bunch of different commenting solutions because what WordPress offer, post commenting is not enough, or not the way other people wants it.

[00:40:20] Nathan Wrigley: Yeah, I think it’s really interesting, and my guess is that the conversation in the WordPress space for the next 18 months at least will be highly focused on this topic. And the fact that people are talking about it, and the fact that you’ve already done a lot of work inside that space. Actually, when I think about it a little bit more, maybe it puts you in a kind of a pole position to have those conversations.

And also you can build on top of what Core produces. And it may be that there’s parts of the code that you’ve already written that can be removed or replaced by what’s in Core, and you can build on top of that. So yeah, that’s an interesting approach, and WordPress’ history does show that, doesn’t it?

And the page builder example is perfect. There isn’t just space for one. The audience inside the WordPress community is so vast that you can have myriad different solutions to the same problem. And although WordPress might be tackling collaboration in some form, it may be that other people wish to have a different form of collaboration, or an extended feature set in the collaboration space. So yeah, that’s a nice answer and it, certainly implies that you’ll be around for the foreseeable future.

Anil, before we wrap it up, I just want to give you an opportunity to tell us where people can find you if they want to reach out to you, where would be the best place to do that?

[00:41:41] Anil Gupta: For me personally, I have a newsletter slash blog, where I write a lot about different things that I’m experimenting, and talk a lot about my businesses and podcast and all that. So that place would be my blog, that is anilg.substack.com. But for MultiCollab, it’s very simple, we have actually very good advantage if you search for WordPress collaboration or just multi collab, you’ll see a lot of resources that we have published and our website comes because we don’t have a competition at this moment.

[00:42:10] Nathan Wrigley: Google is your best friend, and probably will be for the foreseeable future. So Anil, thank you so much for sharing your insights into multi collaboration in the WordPress space. We’ll see how this all develops, but thank you so much for chatting to me today, I really appreciate it.

[00:42:24] Anil Gupta: Thanks for having me. And uh, yeah, it was a blast.

On the podcast today we have Anil Gupta.

Anil is the CEO and co-founder of Multidots, Multicollab, and DotStore. His companies serve a wide range of customers, from large publishers and news companies to WordPress users.

Of specific interest to this episode of the podcast is Multicollab, which offers a WordPress plugin that allows for Google Doc-style collaboration, including commenting, suggestions, and real-time editing.

When Google Docs was first brought to the market, it was a pretty big deal. Perhaps not the first to offer a real time collaborative interface, it was certainly the first to gain widespread adoption. Fast forward to today and it’s more or less inconceivable that you’d create documents which were not editable by multiple people at the same time. Most modern online software ships with this built in. The extraordinary became the norm, and the expectation.

By what about WordPress? As the largest CMS, WordPress still lacks this functionality, but hopefully not for long. Phase 3 of the Gutenberg project, the phase that we are in at the moment, aims to make it possible for many users to amend content at the same time.

The beguiling simplicity of the Google Docs interface makes it seem that this would be a trivial feature to add into WordPress, but this is not the case. Unlike proprietary software in which the vendor owns and manages the whole stack, WordPress is used by many different people, in many different ways. They might have a shared server, or a range of plugins, and this all complicates the picture.

Anil talks about how his team decided to tackle this problem for their own plugin, and he explains some of the hurdles they’ve experienced along the way. They’ve taken a cautious approach, developing different features one at a time, working through the technical challenges with commenting, before moving onto real time editing.

Anil paints a picture of a bright future for WordPress, once this new feature set is completed, but it’s also interesting to see how many challenges the developers will need to overcome before it can be shipped in a future WordPress update.

If you’re interested in finding out about the future of editing content in WordPress, this episode is for you.

Useful links

Peaceful Growth podcast

Anil’s blog

Multidots

Multicollab

DotStore