During a Q&A session at WordCamp Europe 2020 online, Matt Mullenweg mentioned that Gutenberg contributors were considering dual licensing for embedding Gutenberg in mobile apps, along with the requirement that they would need to get an agreement from all contributors. WordPress mobile engineer Maxime Biais has just published a proposal for discussion, recommending dual licensing the editor under GPL v2.0 and MPL v2.0.
“The GPL v2.0 license is a blocker for distributing the Gutenberg library in proprietary mobile apps,” Biais said in the corresponding GitHub issue. “Currently the only known users of Gutenberg on mobile are the WordPress mobile apps which are under GPL v2.0 (WordPress for Android, WordPress for iOS). Mobile apps under the GPL v2.0 are not common and this limits Gutenberg usage in many apps.
“Rich text editor libraries in the mobile space are lacking. There is no well known open source rich text editor for Android or iOS. We believe that Gutenberg could be a key library for many mobile apps, but that will never happen with the GPL v2.”
Mobile app developers are limited by the GPL, because it requires the entire app to be distributed under the same license. The team is proposing dual licensing under MPL v2.0, a weaker copyleft license that is often considered to be more “business-friendly.” It allows users to combine the software with proprietary code. MPL v2.0 requires the source code for any changes to be available under the MPL, ensuring improvements are shared back to the community. The rest of the app can be distributed under any terms with the MPL v2.0 code included as part of a “larger work.”
“The idea here is to keep some of the WordPress-specific modules under the GPL v2.0 only; some of them are not needed and not relevant for using Gutenberg in another software. Ideally, there would be a different way of bundling the project for being used in WordPress or in a non-GPL software,” Biais said.
The GitHub ticket has several comments from developers who hope to be able to use the editor in their own projects. Radek Pietruszewski, tech lead for a collaborative todo app called Nozbe Teams, has been requesting a relicensing of Gutenberg since October 2019.
“Our tech stack is essentially React on web and React Native on iOS and Android,” Pietruszewski said. “We’re a tiny company, and so we share >80% of app’s codebase between these 3 platforms.
“Our app sorely lacks a WYSIWYG editor. We had a working implementation on web, but we decided to scrap it, because there was no way to port it on iOS and Android. There are pretty much no viable rich text editors for iOS or Android, yet alone both. But even then, shipping three completely separate, but somehow compatible editors would be a vast amount of work.”
When Peitruszewski originally made his case to the mobile team, he identified Gutenberg/Aztec as a basic infrastructure that has the potential to enable many different apps:
And that infrastructure is sorely lacking. There are very few rich text editor libraries on both iOS and Android — and most of them suck. And if you want an editor that has a shared API for both platforms… you’re stuck. There are no options – Gutenberg is the only game in town (and it’s really good).
And it’s very hard to create this infrastructure. WYSIWYG editors are very hard, and it takes entire teams years to develop them (and they still usually suck). Almost no-one has the resources to develop it just for themselves, and if they do, they’re unwilling to open-source it.
Automattic’s mobile app engineers have struggled to get regular contributions to the apps, despite them being open source. Dual licensing Gutenberg could open up a new world of contributors with the editor being used more widely across the industry.
“While we might not be big enough to be able to tackle a challenge of developing a rich text editor from scratch, we’re big enough to contribute features and bug fixes to open source projects,” Pietruszewski said.
Matt Mullenweg was the first comment on Biais’ post in favor of the change:
I think Gutenberg has a chance to become a cross-CMS standard, giving users a familiar interface any place they currently have a rich text box. There are hundreds and hundreds of engineers at other companies solving similar problems in a proprietary way, it would be amazing to get them working together but a huge barrier now is supporting Gutenberg in mobile apps, which every modern web service or CMS has. (Hypothetically, think of Mailchimp as a possible consumer and collaborator here, but it could be any company, SaaS, or other open source CMS.)
Unless any major blockers come up in further discussion, this dual licensing change appears to be on track to move forward. Biais noted that a similar license change has already happened on Aztec-Android and Aztec-iOS. The last hurdle is gaining the approval of all the original code contributors or rewriting the code for those who decline to give approval.
Once Gutenberg can be used under the MPL v2.0, the editor will gain a broader reach, with people already on deck wanting to use it. Other companies and projects that are normally outside WordPress’ open source orbit will also have the opportunity to enrich Gutenberg’s ecosystem with contributions back to the project. At the same time, the MPL 2.0 protects Gutenberg from companies that would try to re-release the code as a closed-source project.