Yesterday, I wrote a private note on my organization Slack channel educating people on React license. We use React in few of our projects.
Everyone please read this as it is important to understand what you get into when you decide to use React or any of the Facebook’s open source project. All open source projects uses some form of license like Apache, MIT, BSD, etc.
Facebook uses BSD license along with the patent clause. BSD license is a very open license, that allow you to do anything with React. The culprit here is patent clause. The use of patent clause means following:
If you file a patent claim against Facebook or React, then your React patent clause will be revoked automatically. Facebook will in return counter claim that you violated Facebook’s patent clause so you are doomed now.
On the surface this doesn’t mean much to us as most of us are not in the capacity to sue Facebook.
But devil is in the details, Patent clause give Facebook the power to held any organization hostage that uses Facebook open source projects. To get the point through. Let’s take an hypothetical example that Facebook decided to offer a tool that infringes your company’s IP. Facebook can force your company to allow them to use your patent for free. Otherwise, your license will be revoked and you might have to rewrite the application as it uses React. As we all know rewrites are very costly so an organization might be forced to accept Facebook request.
Apache foundation and WordPress has decided not to use React in future. They are planning to move to some other open source project.
Couple of hours later, Facebook made a press release stating Facebook has decided to relicense React and few other projects. This is great news for the community but this will be applicable from React version 16. React 16 is rewrite of React from scratch. Also, majority of other Facebook open source project have the patent clause. It would be interesting to see if Facebook relicense other projects as well or not.
The decision to relicense React came after backlash from the community. I think the biggest influencer in this decision is WordPress deciding not to use React in their project.
Matt Mullenweg from WordPress wrote in his blog,
the Gutenberg team is going to take a step back and rewrite Gutenberg using a different library. It will likely delay Gutenberg at least a few weeks, and may push the release into next year.
Thank you WordPress. You forced Facebook to make this change.
Thank you for writing about this! I had no idea. Now I wonder what else I am using that has similar traps. I am thinking of Java Spring and Angular at the moment.