Behind the scenes of open source projects, however, there is always the question of sustainability. Jason Chen, the maintainer of QuillJS, wrote in 2017 that “being free to use, open source sustainability remains a challenging topic for many projects and the ecosystem at large. Maintainers, like all people, have limited time, particularly for unpaid activities.”
Open source projects tend to rely on volunteers or the generosity of a tech company who uses it in their own, larger, systems. A few are maintained by commercial open source companies.
In this post, I run through the strengths and weaknesses of each of these models, and the open core business model we use here at Tiny as a commercial open source company. I’ll also outline our thinking for the new commercial packages available from Tiny.
Models for open source projects
ProseMirror is one of the best examples I could find of volunteerism in rich text editing projects. Marijn Haverbeke, the founder of ProseMirror, captured his spirit in 2015 when he announced the project:
Sometimes I lie awake at night, feverishly searching for new ways to load myself down with more poorly-paying responsibilities. And then it comes to me: I should start another open-source project!
Well, that's not really what happens. But the effect is the same. I keep building complex, demanding pieces of code and then giving them away. The actual mechanism is usually that I think of some technical concept, find out that it hasn't been done yet, and through some mix of curiosity and ego, just have to see if I can do it.
As an open source project gains in popularity, it is easy for a volunteer to burn out and move on to other things. Many projects fall dormant, and many NPM packages are unmaintained. What was fun to work on initially, can become a drag over time. Donations are sparse, even for the most popular open source projects.
Sometimes, though, volunteer projects can evolve into something more sustainable. And this is what has happened to ProseMirror. Marjin has remained involved and larger companies have gotten involved. It has arguably evolved into the next category – tech company benevolence.
Tech company benevolence
Tech companies who fund the development and maintenance of a project can produce outstanding projects. Google sponsoring Tensorflow, Microsoft developing TypeScript, or Facebook’s shepherding of React are great examples. An example of this sort of project in the rich text editing space would be Trix, a rich text editor built by Basecamp for their needs.
The projects that attract the most funding tend to blossom beyond their initial internal-driven use case into marketing or recruiting tools for large companies. It becomes more than benevolence – the companies see value in allocating full-time employees to the projects over the long haul, and investing in community engagement in a way that goes beyond their strict internal engineering needs.
In most cases, however, this doesn’t happen. Companies can only justify working on a project for their own needs, not the needs of the community. Benevolence only goes so far. And, indeed, sometimes the teams that originally developed it move on to other things. In the RTE space, this happened when the Guardian newspaper deprecated the Scribe editor project.
Commercial open source software
The final way in which open source projects thrive over the long-term is when they are built by a commercial open source software (COSS) company. At Tiny, we have built our business around open source and we fit this definition.
It didn’t start that way, however. TinyMCE started much like many of the projects mentioned above. Johan “Spocke” Sörlin and Joakim Lindkvist worked on it as part of a bigger project and decided to open source it. It was only in 2015, that we decided to become a true COSS company.
When we began building a startup around TinyMCE we experimented with different business models for commercial open source. We tried a support and services model similar to Red Hat and didn’t like the way it incentivized a hard-to-use or buggy open source version.
We also did “dual-licensing” of LGPL and commercial licenses which did work, but only to a very limited degree. LGPL is quite a permissive license that most companies are comfortable using. It may have worked better if we had moved to a less permissive license such as GPL the way CKEditor has with version 5, but we felt this could hurt adoption. By 2016, we settled on an open core (OC) business model and it has worked out well for us since then.
In the OC model, our core platform is open source, and add-ons and support (“the crust”) are premium only. Examples of other OC companies include Gitlab, Redis and Confluent. It is a freemium business model that is similar to all sorts of tech companies - from Dropbox to Spotify.
In the past several years, Tiny has released 13 premium plugins. We focus on user-facing features that a skilled developer could potentially build and maintain, but given the relatively affordable price, their companies would rather get it from us. Engineering and product managers tend to worry about the costs beyond development such as design, testing, bug fixing and maintenance in an ever-changing front-end development environment. Buying first-party plugins from us, often bundled with support and license of the core editor, typically makes a lot of economic sense.
One of my favorite quotes about commercializing open source is from Marten Mickos, once the CEO of MySQL, when he said that to make money from open source, “you need to come to terms with the idea that some people will spend any amount of time to save money. Other people will spend money to save time. It is that philosophical difference between people that makes the business model. You reach out with the open source software to reach everybody. You reach out with a business model to those who are ready to spend money in order to save time.” We have taken Marten’s words to heart in how we evolve our business model.
With all this in mind, we have a responsibility to both our open source and commercial communities to package and price our premium products appropriately. So, we are excited to announce a new approach to how we are packaging our premium plugins that will open up more opportunities for new and existing users of TinyMCE.
Read more about it in the related article - New commercial packages for TinyMCE.