Technical Article => Web => JavaScript

ReactJS is an open source JavaScript library used for writing user interfaces. It revamps the way developers write web applications. More and more front end developers start to use this Facebook crafted library in their products or projects nowadays.

However, although ReactJS is an open source library under BSD license, it doesn't mean there is no risk to freely adopts it in your products. If you are building or plain to build some products which may compete with Facebook or its subsidiaries, your license for using ReactJS will be revoked immediately. Kind of surprise, right?

In fact, in its Github page, Facebook adds one additional patent grant in its License section which puts some additional restriction on its use cases.

What is this patent grant? It claims that you can use this library freely but need to refraining from building something which may threat Facebook or its subsidiaries, otherwise you are not allowed to use this library.

The license granted hereunder will terminate, automatically and without notice, if you (or any of your subsidiaries, corporate affiliates or agents) initiate directly or indirectly, or take a direct financial interest in, any Patent Assertion: (i) against Facebook or any of its subsidiaries or corporate affiliates, (ii) against any party if such Patent Assertion arises in whole or in part from any software, technology, product or service of Facebook or any of its subsidiaries or corporate affiliates, or (iii) against any party relating to the Software. Notwithstanding the foregoing, if Facebook or any of its subsidiaries or corporate affiliates files a lawsuit alleging patent infringement against you in the first instance, and you respond by filing a patent infringement counterclaim in that lawsuit against that party that is unrelated to the Software, the license granted hereunder will not terminate under section (i) of this paragraph due to such counterclaim. A "Necessary Claim" is a claim of a patent owned by Facebook that is necessarily infringed by the Software standing alone. A "Patent Assertion" is any lawsuit or other action alleging direct, indirect, or contributory infringement or inducement to infringe any patent, including a cross-claim or counterclaim.

For developers, especially architects, you need to be cautious before deciding to use ReactJS in your products. If you have the potential to compete with Facebook, you should consult with your lawyers. But it's not the end of world. There are alternatives to ReactJS, AngularJS and Vue are two of them. These alternatives are well maintained and used by many developers as well.