# react-on-rails-rsc License

Beginning with version `19.2.1`, the `react-on-rails-rsc` npm package is a
commercially licensed related component of React on Rails Pro. Production Use
requires the appropriate paid subscription or Complimentary OSS License. The
royalty-free uses defined in Section 4 remain permitted subject to the EULA,
including its attribution requirement.

The package includes portions of Meta's `ReactFlightWebpackPlugin` in
`src/webpack/RSCWebpackPlugin.ts`. Those portions remain governed by the Meta
MIT notice reproduced after the canonical commercial terms.

## Canonical Commercial Terms

# ShakaCode React on Rails Pro – End User License Agreement (EULA)

_Version 2.3 — 2026-07-14_\
© 2015–2026 ShakaCode, LLC. All rights reserved.

---

## 1. Definitions

- **Organization** – the single legal entity identified in the order (e.g., GitHub Sponsors, invoice).
- **Licensee** – the Organization or any other person or entity exercising royalty-free rights under Section 4.
- **Production Use** – any use of the Software in connection with a live application, website, or service accessed by end users **other than**:
  - evaluation or testing
  - classroom instruction, tutorials, workshops, coursework
  - recorded demos, livestreams, or videos
  - personal/hobby experiments not offered as a service
- **Complimentary OSS License** – a license issued under Section 4.1 at no charge to a qualifying open-source Organization.
- **Covered HTML Document** – an HTML document containing output rendered by the integrated React on Rails Pro product.
- **Attribution Provider** – the part of the integrated React on Rails Pro product that generates and inserts the Generated Attribution on behalf of the product as a whole.
- **Generated Attribution** – the complete, non-visual HTML comment emitted by the Attribution Provider, including its license-status suffix.

---

## 2. Grant of License (Per-Organization)

Subject to this Agreement, ShakaCode grants the subscribing Organization a **non-exclusive, non-transferable** license, during the applicable license term, to install, internally modify, and use React on Rails Pro (“Software”) in the Organization’s own applications, websites, and services, whether accessed internally or by public end users.

This grant does not permit redistribution or sublicensing of the Software, offering the Software itself to third parties, or using one Organization’s license for another Organization or consulting client.

---

## 3. Consulting Firms and Individual Consultants

- **Consulting Firms** – this license covers only the firm’s own applications, websites, and services, whether accessed internally or by public end users. Each client Organization requires its own license for any Production Use.
- **Individual Consultants** – this license covers only the consultant’s own applications, websites, and services personally operated by them, not client Organizations. Each client Organization must obtain its own license.

---

## 4. Non-Commercial / Educational / Demo Use (Free)

Free, royalty-free use is permitted for:

- classroom instruction, training, workshops, coursework;
- tutorials, blog posts, livestreams, or videos;
- personal/hobby projects not used in production;
- demo apps showcasing coding techniques.

**Note:** This clause does **not** permit any Production Use by any entity (commercial, non-profit, or individual). All Production Use requires a paid subscription under this Agreement, except as provided in Section 4.1.

**4.1 Open-Source Project License (Complimentary)**

ShakaCode may, at its sole discretion, issue a complimentary "oss" license to an Organization that meets **all** of the following criteria:

1. The Organization deploys the Software as part of a project whose source code is publicly available under an [OSI-approved license](https://opensource.org/licenses).
2. The Organization's annual revenue (or total funding received, if pre-revenue) does not exceed USD $1,000,000.
3. The Organization applies by emailing [justin@shakacode.com](mailto:justin@shakacode.com) and provides truthful information about the project and Organization.

**Terms of Complimentary OSS Licenses:**

- The attribution requirement in Section 6 applies and may not be waived.
- Complimentary OSS Licenses are granted for a fixed term of one (1) year from the date of issuance and may be renewed upon request.
- ShakaCode may revoke a Complimentary OSS License (i) immediately upon written notice if the Organization violates this Agreement, or (ii) on thirty (30) days' written notice if the Organization no longer meets the eligibility criteria.
- All other terms of this Agreement apply (including Sections 5, 7, 9, and 12), subject to the modifications for Complimentary OSS Licenses in Section 7.

---

## 5. Restrictions

The Organization shall not:

1. redistribute or resell the Software or derivatives;
2. remove, obfuscate, or disable required attribution;
3. use the Software to build a directly competing product exposing substantially similar functionality;
4. **circumvent, bypass, modify, disable, or tamper with any license validation mechanisms, license checks, or authentication systems;**
5. **reverse engineer, decompile, or disassemble the Software for the purpose of circumventing license restrictions;**
6. **create, use, or distribute any tools, scripts, patches, or modifications designed to enable unauthorized use of Pro features;**
7. **access or use the Software outside the rights granted by this Agreement, including any Production Use without a valid, active paid or Complimentary OSS License.**

---

## 6. Product-Level Attribution (HTML Source)

Every Covered HTML Document must retain exactly one complete, unmodified Generated Attribution in its HTML source. The Attribution Provider emits this comment once on behalf of the integrated React on Rails Pro product. A related component, including `react-on-rails-rsc`, has no independent obligation to insert another attribution comment when it does not control the HTML document or generate or insert the Generated Attribution.

This requirement applies to paid Production Use, Production Use under a Complimentary OSS License, and every royalty-free use permitted by Section 4.

The Generated Attribution uses the following form, where the status suffix is generated by the Software:

```html
<!-- Powered by React on Rails Pro (c) ShakaCode | STATUS -->
```

For a valid license credential, the status suffix is `Licensed` and does not identify the Organization. Expired, invalid, and missing license credentials use `LICENSE EXPIRED`, `INVALID LICENSE`, and `UNLICENSED`, respectively. `UNLICENSED` indicates that no license credential was present; that status alone does not establish a violation because the use may be permitted by Section 4.

The Licensee may not remove, modify, obfuscate, or disable the Generated Attribution.

---

## 7. Fees; Term; Termination

Paid subscriptions may be purchased or renewed at [pro.reactonrails.com](https://pro.reactonrails.com/) or through another ShakaCode-approved order channel.

Fees and billing terms are as agreed in the applicable order (e.g., GitHub Sponsors subscription or annual invoice).\
For paid subscriptions, the license remains active only while fees are paid. ShakaCode may suspend or terminate for non-payment or material breach. Complimentary OSS Licenses remain active for the term specified in the grant, subject to the revocation terms in Section 4.1.\
Upon termination, lapse, or revocation, the Organization must immediately cease use and remove the Software (including derivatives) from all Production systems and repositories, except for (a) non-commercial uses explicitly permitted in Section 4, or (b) Complimentary OSS Licenses revoked under Section 4.1(ii) for eligibility changes, in which case the Organization has thirty (30) days from written notice to comply.

---

## 8. Updates & Support

While subscribed, the Organization receives software updates and reasonable support (email or issue tracker, business hours). No specific response or resolution times are guaranteed unless set out in an order or separate SLA.

---

## 9. Verification / Audit

If ShakaCode reasonably suspects non-compliance, the Organization will cooperate in good faith to verify compliance, including enabling inspection for attribution presence and providing a usage statement. ShakaCode will use commercially reasonable efforts to minimize disruption.

**9.1 Detailed Audits**\
ShakaCode or a certified auditor acting on its behalf may, upon reasonable request and at ShakaCode’s expense, audit the Organization’s use of the Software to verify compliance with this Agreement. Audits may be conducted by mail, electronically, or by in-person visits during regular business hours and shall minimize disruption to the Organization’s business. If the audit reveals a material unauthorized use, the Organization shall reimburse ShakaCode for reasonable audit costs.

---

## 10. Feedback & Contributions

By submitting feedback or improvements, the Organization grants ShakaCode a worldwide, royalty-free, irrevocable license to use and incorporate them.

---

## 11. Intellectual Property

The Software is **licensed, not sold**. ShakaCode retains all rights, title, and interest, including all intellectual property rights.

---

## 12. Confidentiality

License keys and any non-public materials are ShakaCode confidential information. The Organization will protect them with at least reasonable care.

---

## 13. Warranty Disclaimer

> EXCEPT AS EXPRESSLY PROVIDED IN §8, THE SOFTWARE IS PROVIDED “AS IS,” WITHOUT WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED.

---

## 14. Limitation of Liability

To the maximum extent permitted by law, ShakaCode is not liable for indirect, incidental, special, consequential, or punitive damages.\
Direct damages are limited to amounts paid in the 12 months preceding the claim.

---

## 15. Indemnification

The Organization agrees to defend, indemnify, and hold harmless ShakaCode and its affiliates from any claims, losses, damages, liabilities, costs, or expenses (including legal fees) arising out of the Organization’s use of the Software or breach of this Agreement.

---

## 16. Export Compliance

The Organization agrees to comply with all applicable export laws and regulations, including restrictions on export, re-export, or redistribution of the Software.

---

## 17. Attorneys’ Fees and Costs

In any enforcement or legal action arising under this Agreement, the prevailing party shall be entitled to recover reasonable attorneys’ fees and costs.

---

## 18. Governing Law; Venue

This Agreement is governed by the laws of the **State of Hawaii**, USA. Exclusive jurisdiction and venue lie in the courts located therein.

---

## 19. Miscellaneous

- **19.1 Severability**\
  If any provision is held invalid or unenforceable, the remainder shall continue in full force.

- **19.2 Waiver**\
  Failure to enforce any provision is not a waiver of rights.

- **19.3 Assignment**\
  The Organization may not assign this Agreement without prior written consent.

---

## 20. Entire Agreement; Order of Precedence

This EULA and any order (pricing/term) are the entire agreement. If there is a conflict, the order controls.

## Third-Party Notices

The shipped `src/webpack/RSCWebpackPlugin.ts` source and its compiled
`dist/webpack/RSCWebpackPlugin.js` artifact include portions derived from Meta's
`ReactFlightWebpackPlugin`. The following notice applies to those portions.

### Meta Platforms, Inc. MIT License

Copyright (c) Meta Platforms, Inc. and affiliates.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
