Understanding TinyMCE's GPL License
TinyMCE is a veteran editor. When I looked into it, I noticed it uses the GNU GPL. That led me to ask: can I use it commercially? Can I fork it? Time to unpack GPL.
Explanation
Here’s a summary adapted from a Zhihu answer:
The GPL’s purpose is to ensure code remains open source and free to use. Its defining trait is the copyleft effect—if a company ships a product using GPL code, in theory it must open-source its own codebase as well.
Emphasis on “in theory.” Large companies often have ways to sidestep the requirement. In 2015, for example, Xiaomi was accused of violating the GPL. MIUI builds on Android, whose kernel is GPL-licensed Linux, so MIUI should be open-sourced. Xiaomi’s reply? “We’ll open source it soon,” then delayed indefinitely without outright denial.
Example
Consider a commercial SaaS product using TinyMCE. You must follow TinyMCE’s licensing terms. GPLv2 allows the usage, but only if you meet certain conditions:
- Distributing source code: If you modify TinyMCE, you must provide those modifications to anyone who receives your product. If you don’t plan to ship the site’s source, this might not apply—provided you never touch TinyMCE’s source.
- Copyleft clause: Any derivative of TinyMCE must also be licensed under GPLv2. If integrating TinyMCE makes your site a derivative work, you would need to publish the site’s source under GPLv2. There’s debate about whether loading TinyMCE via JavaScript counts as a derivative; some say no if it runs as a separate program.
- Dynamic linking: If your site links to TinyMCE dynamically (for example, through JavaScript), it’s often treated as separate, which might sidestep the copyleft. Interpretations differ, so legal advice is best to ensure compliance.
- Because your site is publicly accessible, review GPLv2 carefully and consider legal counsel so you don’t unintentionally violate the license.
Conclusion
If my web project relies on the GPL version of TinyMCE—even with no modifications—I’m still required to follow the GPL, meaning the whole project must be open source. The alternative is to obtain a commercial license.
So, for commercial work where I want guaranteed compliance, the GPL build of TinyMCE is not the safe route.
Other Open Source Editors
There are other solid options besides TinyMCE.
For example, monaco-editor uses the MIT license, so it’s freely usable in commercial products. Visual Studio Code’s editor is built on Monaco.