Skip to content

Update Pro URLs to pro.reactonrails.com, fix step count & license wording - #2669

Merged
justin808 merged 8 commits into
mainfrom
jg/2668-pro-url-migration
Mar 18, 2026
Merged

Update Pro URLs to pro.reactonrails.com, fix step count & license wording#2669
justin808 merged 8 commits into
mainfrom
jg/2668-pro-url-migration

Conversation

@justin808

@justin808 justin808 commented Mar 18, 2026

Copy link
Copy Markdown
Member

Summary

  • Replaces ~60+ instances of https://www.shakacode.com/react-on-rails-pro with https://pro.reactonrails.com across docs, source code, templates, and READMEs
  • Fixes AGENTS_USER_GUIDE.md step count from "four steps" to "three steps" to match docs/pro/upgrading-to-pro.md (Node renderer verification is part of step 3)
  • Aligns all license/pricing messaging with EULA §4: "A paid license is required for all production deployments" with a note that startup-friendly pricing is available. Removes "free or low-cost" language that contradicted the license terms

Fixes #2668
Closes #2636

Test plan

  • Verify no remaining shakacode.com/react-on-rails-pro URLs with grep -r
  • Verify no remaining "free or low cost" language with grep -ri
  • Spot-check key files: README.md, CHANGELOG.md, upgrading-to-pro.md, AGENTS_USER_GUIDE.md
  • Confirm URL paths with suffixes (e.g., /docs/installation/) resolve correctly on pro.reactonrails.com

🤖 Generated with Claude Code


Note

Low Risk
Low risk documentation/config messaging updates plus minor generator/CLI text changes; no functional runtime behavior changes beyond updated user-facing URLs.

Overview
Updates references to React on Rails Pro across docs, READMEs, templates, generators, and Node renderer logs to use the new pro.reactonrails.com / reactonrails.com/docs/pro URLs (including RSC and node-renderer deep links).

Clarifies Pro upgrade/install guidance by consolidating the Node renderer verification into step 3 (so the guide is now three steps), and updates multiple user-facing messages to emphasize that a paid license is required for production while keeping evaluation/non-production usage guidance. Also adds new Lychee link-checker exclusions for Pro pages still being deployed and a few flaky external links.

Written by Cursor Bugbot for commit 9dd51fb. This will update automatically on new commits. Configure here.

Summary by CodeRabbit

  • Documentation

    • Updated React on Rails Pro links to the new dedicated domain (pro.reactonrails.com) across docs, guides, tutorials, and examples.
    • Revised Pro licensing messaging: production deployments now require a paid license; added startup-friendly pricing/contact guidance.
    • Streamlined upgrade/setup and generator guidance and clarified various user-facing instructions.
  • Chores

    • Updated CLI/post-install messages, warnings, and README references to point to the new Pro site.

…ding

- Replace ~60+ instances of https://www.shakacode.com/react-on-rails-pro
  with https://pro.reactonrails.com across all docs, source, and templates
- Fix AGENTS_USER_GUIDE.md step count from "four steps" to "three steps"
  to match docs/pro/upgrading-to-pro.md
- Align license messaging: all production use requires a paid license,
  with startup-friendly pricing available on request. Removes "free or
  low-cost" language that conflicted with EULA §4.

Fixes #2668

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Mar 18, 2026

Copy link
Copy Markdown
Contributor

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

This PR standardizes React on Rails Pro links and updates licensing copy across the repo: it replaces occurrences of https://www.shakacode.com/react-on-rails-pro/ with https://pro.reactonrails.com/ and changes “free/very low cost” phrasing to state a paid license is required for production, with startup-friendly pricing/contact guidance.

Changes

Cohort / File(s) Summary
Root docs & guides
README.md, CHANGELOG.md, AGENTS_USER_GUIDE.md, .claude/docs/analysis/PHASE_7_8_CHECKLIST.md
Replaced Pro URLs with pro.reactonrails.com; updated licensing wording to require paid license for production and adjusted agent guide step/upgrade wording.
OSS docs (many)
docs/oss/... (api-reference/, building-features/, configuration/, core-concepts/, deployment/, getting-started/, migrating/, upgrading/, introduction.md)
Unified Pro URL updates and replaced startup-free phrasing with paid-license-for-production messaging across OSS docs and feature pages.
Pro docs
docs/README.md, docs/pro/*
Updated Pro links to pro.reactonrails.com, adjusted licensing phrasing and contact instructions; minor copy edits.
Package READMEs & LLM context
packages/react-on-rails-pro/README.md, packages/react-on-rails-pro-node-renderer/README.md, llms.txt
Switched documentation/context links to the Pro domain.
Runtime & build messages
packages/react-on-rails-pro/src/ClientSideRenderer.ts, packages/react-on-rails-pro-node-renderer/src/master.ts, packages/react-on-rails-pro-node-renderer/src/shared/configBuilder.ts, packages/react-on-rails/src/StoreRegistry.ts
Updated user-facing warning/error/log message URLs and related string literals to the Pro site; no control-flow changes.
Generators & templates
react_on_rails/lib/generators/react_on_rails/*, react_on_rails/lib/generators/.../templates/*
Updated emitted success messages and template/header doc links to the Pro domain.
Gem / Engine / Pro library
react_on_rails/lib/react_on_rails/utils.rb, react_on_rails/react_on_rails.gemspec, react_on_rails_pro/lib/react_on_rails_pro/engine.rb, react_on_rails_pro/lib/react_on_rails_pro/license_task_formatter.rb, react_on_rails_pro/app/helpers/react_on_rails_pro_helper.rb, react_on_rails_pro/LICENSE_SETUP.md
Updated constants, post-install message, license renewal warnings, and in-file doc links to pro.reactonrails.com; one helper doc line wording tweaked.
Create-app emitter
packages/create-react-on-rails-app/src/index.ts
Changed emitted RSC Pro documentation URL to the Pro domain.
Tests & tooling
react_on_rails_pro/spec/react_on_rails_pro/engine_spec.rb, .lychee.toml
Adjusted test expectation to match new Pro domain; added Lychee exclude patterns for planned Pro docs URLs.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Poem

🐰 I hopped through docs, a tiny sleuth,
Links updated true — a tidy proof.
Pro paths set straight, the carrots gleam,
Licensing told plain, no muddled dream.
A nibble, a hop — the rabbit beams.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main changes: updating Pro URLs to pro.reactonrails.com, fixing step count, and adjusting license wording. It is concise and specific.
Linked Issues check ✅ Passed All coding requirements from linked issues #2668 and #2636 are met: ~60+ Pro URLs migrated to pro.reactonrails.com with path suffixes preserved, step count fixed from four to three in AGENTS_USER_GUIDE.md, and licensing/pricing messaging aligned with the license terms across all docs and source files.
Out of Scope Changes check ✅ Passed All changes are directly related to the stated objectives: URL migrations, step count corrections, license wording updates, and configuration exclusions. No unrelated modifications detected in the changeset.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch jg/2668-pro-url-migration
📝 Coding Plan
  • Generate coding plan for human review comments

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@claude

claude Bot commented Mar 18, 2026

Copy link
Copy Markdown
Contributor

PR Review: URL Migration + License Language Update

Overall this is a clean, low-risk documentation update. The mechanical URL replacement from https://www.shakacode.com/react-on-rails-prohttps://pro.reactonrails.com is applied consistently across all 56 files, and the license/pricing language changes align with EULA §4 as stated in the PR description.

Observations

Step count fix (AGENTS_USER_GUIDE.md) ✅
The "four steps" → "three steps" change is correct and now aligns with upgrading-to-pro.md, which already used "Three Steps to Upgrade". The Node renderer verification in the old step 4 is folded into step 3, consistent with the canonical upgrade guide.

Trailing slash inconsistency (cosmetic)
The new URL appears in two forms across the codebase:

  • With trailing slash: https://pro.reactonrails.com/ (runtime messages, gemspec, engine constant)
  • Without trailing slash: https://pro.reactonrails.com (most doc links)

Both resolve to the same destination, so this is cosmetic — but worth picking one and standardizing. The LICENSE_URL constant in engine.rb and the post_install_message in the gemspec are the most visible runtime-facing ones.

master.ts line length
The refactored "missing" and "invalid" license error lines are now quite long (100+ chars). The original code used multi-line string formatting — that structure was dropped in the URL update. Not a bug, but worth noting if the project has a configured line-length lint rule.

pro_helper.rb @see URL
The @see comment at react_on_rails_pro/app/helpers/react_on_rails_pro_helper.rb still carries a .md extension in the URL path (/docs/how-react-server-components-works.md). This was pre-existing and not introduced here, but worth fixing separately — docs site URLs typically don't include the .md extension.

New domain verification
56 files now point to pro.reactonrails.com. Worth confirming the domain is live and the path structure matches (especially the /docs/... sub-paths referenced in llms.txt) before merge, since broken links in error messages and generator output are user-facing.

Summary

No correctness bugs or regressions introduced. The changes are purely additive string/URL updates with no behavioral impact. Ready to merge once the domain is confirmed live.

logLicenseIssue(
'[React on Rails Pro] No license found. Get a license at https://www.shakacode.com/react-on-rails-pro/',
);
logLicenseIssue('[React on Rails Pro] No license found. Get a license at https://pro.reactonrails.com/');

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line is now 100+ chars. The original used multi-line formatting — consider restoring it for consistency with the surrounding style:

Suggested change
logLicenseIssue('[React on Rails Pro] No license found. Get a license at https://pro.reactonrails.com/');
logLicenseIssue(
'[React on Rails Pro] No license found. Get a license at https://pro.reactonrails.com/',
);

logLicenseIssue(
'[React on Rails Pro] Invalid license. Get a license at https://www.shakacode.com/react-on-rails-pro/',
);
logLicenseIssue('[React on Rails Pro] Invalid license. Get a license at https://pro.reactonrails.com/');

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same issue — long single-line call where the surrounding style uses multi-line formatting:

Suggested change
logLicenseIssue('[React on Rails Pro] Invalid license. Get a license at https://pro.reactonrails.com/');
logLicenseIssue(
'[React on Rails Pro] Invalid license. Get a license at https://pro.reactonrails.com/',
);

@@ -183,7 +183,7 @@ def stream_react_component(component_name, options = {})
# `rsc_payload_route` helper function. The returned data from this function is used internally by
# components registered using the `registerServerComponent` function. Don't use it unless you need
# more control over the RSC payload generation. To know more about RSC payload, see the following link:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pre-existing issue (not introduced here), but worth noting: docs site URLs typically don't include the .md extension — this likely produces a 404 on the published site. Consider removing the extension in a follow-up:

Suggested change
# more control over the RSC payload generation. To know more about RSC payload, see the following link:
# @see https://pro.reactonrails.com/docs/how-react-server-components-works

@greptile-apps

greptile-apps Bot commented Mar 18, 2026

Copy link
Copy Markdown

Greptile Summary

This PR performs a large-scale URL migration (56 files, 60+ instances) replacing the old ShakaCode subdirectory URL with the new pro.reactonrails.com domain, corrects the upgrade step count in AGENTS_USER_GUIDE.md from four to three steps (aligning with docs/pro/upgrading-to-pro.md), and updates all pricing/license messaging to reflect that a paid license is required for production deployments, removing the previous "free or low-cost" language that contradicted EULA §4.

Key changes:

  • URL replacement: All ~60 occurrences across docs, templates, Ruby gems, npm packages, and runtime error messages now point to the new Pro domain
  • Step count correction: AGENTS_USER_GUIDE.md now correctly says "three steps" instead of "four steps"; the old step 4 (Node renderer verification) has been folded into step 3, matching docs/pro/upgrading-to-pro.md
  • Licensing language: "Free or low-cost for startups" language replaced with "paid license required for production; startup-friendly pricing available" across README, CHANGELOG, docs, and generator output — consistent and intentional
  • Pre-existing minor note: react_on_rails_pro_helper.rb retains a @see comment URL ending in .md (/docs/how-react-server-components-works.md), which is an atypical extension for a web URL — not introduced by this PR but worth confirming resolves at the new domain
  • The test plan checklist item to verify all new URL paths resolve correctly at the new domain is important to complete before merging, as broken links would affect a large number of users across docs and runtime messages

Confidence Score: 4/5

  • This PR is safe to merge once the new domain URLs are confirmed to resolve correctly — all changes are mechanical text/URL replacements with no logic impact.
  • All 56 files contain only URL replacements, documentation rewording, and a step-count correction. No logic, algorithms, or functional code paths are modified. The one open risk is external: if pro.reactonrails.com URL paths differ from the old shakacode.com/react-on-rails-pro paths, the large number of updated links could introduce broken references at scale. The test plan already calls this out.
  • No individual files are problematic — the key action before merging is running the grep verification steps from the test plan and spot-checking that pro.reactonrails.com subpaths (e.g. /docs/installation/, /docs/node-renderer/error-reporting-and-tracing) actually resolve.

Important Files Changed

Filename Overview
AGENTS_USER_GUIDE.md Fixes step count from "four steps" to "three steps" (matching upgrading-to-pro.md), updates pricing language, and replaces Pro URL — all consistent and correct.
README.md Updates badge link and Pro section URL to pro.reactonrails.com; rewrites pricing blurb from "free or very low cost" to "paid license required for production" — intentional and consistent with stated EULA alignment.
docs/pro/upgrading-to-pro.md Updates pricing language to require paid license for production and removes "free or very low cost" wording; no structural changes, URLs already pointed to pro.reactonrails.com before this PR.
packages/react-on-rails-pro-node-renderer/src/master.ts URL replacement in license validation log messages — straightforward and correct.
packages/react-on-rails/src/StoreRegistry.ts URL replacement in two runtime error messages for Pro-only methods — straightforward and correct.
react_on_rails_pro/lib/react_on_rails_pro/engine.rb Updates the LICENSE_URL constant used in license-related messaging — correct and targeted change.
react_on_rails_pro/lib/react_on_rails_pro/license_task_formatter.rb Updates renewal URL in expiry/warning messages — consistent with engine.rb change.
react_on_rails/react_on_rails.gemspec Updates post-install message URL — straightforward replacement.
llms.txt Updates all six Pro documentation links from shakacode.com to pro.reactonrails.com — systematic and complete.
react_on_rails_pro/app/helpers/react_on_rails_pro_helper.rb Updates @see URL in a code comment; the URL retains a .md file extension (https://pro.reactonrails.com/docs/how-react-server-components-works.md) which is atypical for a web URL — pre-existing issue not introduced by this PR.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[PR: URL & Messaging Update] --> B[URL Migration\n60+ instances]
    A --> C[Step Count Fix\nAGENTS_USER_GUIDE.md]
    A --> D[License Wording\nAlignment with EULA §4]

    B --> B1[Docs & READMEs\n~30 files]
    B --> B2[Ruby Gems\nengine.rb, gemspec,\ngenerators, helpers]
    B --> B3[npm Packages\nmaster.ts, StoreRegistry.ts\nClientSideRenderer.ts]
    B --> B4[Templates\n.tt files, ERB, JSX/TSX]

    B1 --> E[Old: shakacode.com/react-on-rails-pro]
    B2 --> E
    B3 --> E
    B4 --> E
    E --> F[New: pro.reactonrails.com]

    C --> C1[4 steps → 3 steps\nFold Node renderer\nverification into step 3]

    D --> D1[Remove: free or low-cost\nfor startups]
    D --> D2[Add: paid license required\nfor production;\nstartup-friendly pricing available]
Loading

Last reviewed commit: "Update Pro URLs to p..."

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a045f7e7cd

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

'If installation fails, verify your Bundler/RubyGems setup for react_on_rails_pro, then rerun with --rsc.',
);
logInfo('Pro setup docs: https://www.shakacode.com/react-on-rails-pro/docs/installation/');
logInfo('Pro setup docs: https://pro.reactonrails.com/docs/installation/');

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Point setup links back to the host that actually serves the docs

I checked the new pro.reactonrails.com/docs/... targets introduced here, and they currently return 404s (for example /docs/, /docs/installation/, and /docs/node-renderer/basics/), while the previous www.shakacode.com/react-on-rails-pro/docs/... URLs still resolve to the Pro documentation. Because the same hostname swap was applied throughout this commit, the CLI, generators, and runtime warnings now send users to dead documentation pages whenever they need installation or troubleshooting help.

Useful? React with 👍 / 👎.

@github-actions

github-actions Bot commented Mar 18, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

Path Size
react-on-rails/client bundled (gzip) 62.63 KB (+0.01% 🔺)
react-on-rails/client bundled (gzip) (time) 62.63 KB (+0.01% 🔺)
react-on-rails/client bundled (brotli) 53.69 KB (-0.09% 🔽)
react-on-rails/client bundled (brotli) (time) 53.7 KB (-0.08% 🔽)
react-on-rails-pro/client bundled (gzip) 63.65 KB (-0.01% 🔽)
react-on-rails-pro/client bundled (gzip) (time) 63.65 KB (-0.01% 🔽)
react-on-rails-pro/client bundled (brotli) 54.67 KB (-0.03% 🔽)
react-on-rails-pro/client bundled (brotli) (time) 54.67 KB (-0.03% 🔽)
registerServerComponent/client bundled (gzip) 127.46 KB (-0.01% 🔽)
registerServerComponent/client bundled (gzip) (time) 127.46 KB (-0.01% 🔽)
registerServerComponent/client bundled (brotli) 61.65 KB (+0.02% 🔺)
registerServerComponent/client bundled (brotli) (time) 61.65 KB (+0.02% 🔺)
wrapServerComponentRenderer/client bundled (gzip) 122.02 KB (0%)
wrapServerComponentRenderer/client bundled (gzip) (time) 122.02 KB (0%)
wrapServerComponentRenderer/client bundled (brotli) 56.77 KB (0%)
wrapServerComponentRenderer/client bundled (brotli) (time) 56.77 KB (0%)

@coderabbitai coderabbitai Bot added review-needed documentation docs-cleanup Documentation cleanup or migration P3 Parked priority labels Mar 18, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (1)
react_on_rails/lib/generators/react_on_rails/pro_setup.rb (1)

81-83: Clarify evaluation vs production licensing wording in this message block.

The URL change is correct, but “Try Pro free!” can read as conflicting with the paid-production language used elsewhere. Consider tightening this copy to explicitly scope “free” to evaluation/non-production.

✏️ Suggested wording update
-          Try Pro free! Email justin@shakacode.com for an evaluation license.
-          For evaluation licenses or more info, see: https://pro.reactonrails.com/
+          Need to evaluate Pro in non-production? Email justin@shakacode.com for an evaluation license.
+          Paid licenses are required for production deployments. Startup-friendly pricing is available:
+          https://pro.reactonrails.com/
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@react_on_rails/lib/generators/react_on_rails/pro_setup.rb` around lines 81 -
83, Update the user-facing message in the MSG string in
react_on_rails/lib/generators/react_on_rails/pro_setup.rb to avoid implying
production use is free; replace "Try Pro free!" with explicit, scoped wording
such as "Request a free evaluation license" or "Get a free evaluation license
for non‑production use" and keep the URL change; ensure the updated sentence
clearly ties "free" to evaluation/non-production rather than production.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@CHANGELOG.md`:
- Line 194: The changelog has inconsistent history: the sentence at Line 194
claiming "No license token is needed for evaluation, local development, testing,
or CI/CD" conflicts with the attribution at version 16.3.0 (around Line 114);
update the changelog so the licensing behavior is historically consistent by
either removing or rewording the Line 194 sentence to match the change noted
under version 16.3.0, or move the licensing sentence into the 16.3.0 entry and
add a brief cross-reference in the release notes; ensure references to "version
16.3.0" and the sentence about "No license token is needed for evaluation, local
development, testing, or CI/CD" are aligned.

In `@docs/pro/react-on-rails-pro.md`:
- Line 53: Replace the awkward phrase "better performing server rendering" in
the sentence that begins "Default server rendering is done by ExecJS." with a
clearer, hyphenated phrase such as "better-performing server-side rendering";
update the surrounding wording to read smoothly (e.g., "If you want to use a
Node.js server for better-performing server-side rendering, contact
justin@shakacode.com."). Ensure the email/link and mention of React on Rails Pro
remain unchanged.

In `@README.md`:
- Line 6: The new Pro logo <img> tag is missing an alt attribute; update the
anchor's <img> element (the Pro logo image) to include a descriptive alt text
(e.g., alt="Pro React on Rails logo" or similar) so accessibility/MD045 is
satisfied and screen readers get a meaningful description.

---

Nitpick comments:
In `@react_on_rails/lib/generators/react_on_rails/pro_setup.rb`:
- Around line 81-83: Update the user-facing message in the MSG string in
react_on_rails/lib/generators/react_on_rails/pro_setup.rb to avoid implying
production use is free; replace "Try Pro free!" with explicit, scoped wording
such as "Request a free evaluation license" or "Get a free evaluation license
for non‑production use" and keep the URL change; ensure the updated sentence
clearly ties "free" to evaluation/non-production rather than production.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 5ac58746-e354-4899-915f-292e52276b2e

📥 Commits

Reviewing files that changed from the base of the PR and between e593cab and a045f7e.

📒 Files selected for processing (56)
  • .claude/docs/analysis/PHASE_7_8_CHECKLIST.md
  • AGENTS_USER_GUIDE.md
  • CHANGELOG.md
  • README.md
  • docs/README.md
  • docs/oss/api-reference/ruby-api-pro.md
  • docs/oss/api-reference/view-helpers-api.md
  • docs/oss/building-features/bundle-caching.md
  • docs/oss/building-features/caching.md
  • docs/oss/building-features/code-splitting.md
  • docs/oss/building-features/node-renderer/basics.md
  • docs/oss/building-features/node-renderer/debugging.md
  • docs/oss/building-features/node-renderer/error-reporting-and-tracing.md
  • docs/oss/building-features/node-renderer/heroku.md
  • docs/oss/building-features/node-renderer/js-configuration.md
  • docs/oss/building-features/node-renderer/troubleshooting.md
  • docs/oss/building-features/rails-webpacker-react-integration-options.md
  • docs/oss/building-features/turbolinks.md
  • docs/oss/configuration/README.md
  • docs/oss/configuration/configuration-pro.md
  • docs/oss/core-concepts/react-server-rendering.md
  • docs/oss/deployment/troubleshooting.md
  • docs/oss/getting-started/comparison-with-alternatives.md
  • docs/oss/getting-started/oss-vs-pro.md
  • docs/oss/introduction.md
  • docs/oss/migrating/migrating-to-rsc.md
  • docs/oss/upgrading/release-notes/16.1.0.md
  • docs/oss/upgrading/release-notes/16.2.0.md
  • docs/oss/upgrading/upgrading-react-on-rails.md
  • docs/pro/home-pro.md
  • docs/pro/major-performance-breakthroughs-upgrade-guide.md
  • docs/pro/react-on-rails-pro.md
  • docs/pro/upgrading-to-pro.md
  • llms.txt
  • packages/create-react-on-rails-app/src/index.ts
  • packages/react-on-rails-pro-node-renderer/README.md
  • packages/react-on-rails-pro-node-renderer/src/master.ts
  • packages/react-on-rails-pro-node-renderer/src/shared/configBuilder.ts
  • packages/react-on-rails-pro/README.md
  • packages/react-on-rails-pro/src/ClientSideRenderer.ts
  • packages/react-on-rails/src/StoreRegistry.ts
  • react_on_rails/lib/generators/react_on_rails/pro_generator.rb
  • react_on_rails/lib/generators/react_on_rails/pro_setup.rb
  • react_on_rails/lib/generators/react_on_rails/rsc_generator.rb
  • react_on_rails/lib/generators/react_on_rails/templates/pro/base/config/initializers/react_on_rails_pro.rb.tt
  • react_on_rails/lib/generators/react_on_rails/templates/rsc/base/app/controllers/hello_server_controller.rb.tt
  • react_on_rails/lib/generators/react_on_rails/templates/rsc/base/app/javascript/src/HelloServer/components/HelloServer.jsx
  • react_on_rails/lib/generators/react_on_rails/templates/rsc/base/app/javascript/src/HelloServer/components/HelloServer.tsx
  • react_on_rails/lib/generators/react_on_rails/templates/rsc/base/app/views/hello_server/index.html.erb
  • react_on_rails/lib/generators/react_on_rails/templates/rsc/base/config/webpack/rscWebpackConfig.js.tt
  • react_on_rails/lib/react_on_rails/utils.rb
  • react_on_rails/react_on_rails.gemspec
  • react_on_rails_pro/LICENSE_SETUP.md
  • react_on_rails_pro/app/helpers/react_on_rails_pro_helper.rb
  • react_on_rails_pro/lib/react_on_rails_pro/engine.rb
  • react_on_rails_pro/lib/react_on_rails_pro/license_task_formatter.rb

Comment thread CHANGELOG.md Outdated
Comment thread docs/pro/react-on-rails-pro.md Outdated
Comment thread README.md Outdated
<a href="https://shakacode.com/"><img src="https://user-images.githubusercontent.com/10421828/79436256-517d0500-7fd9-11ea-9300-dfbc7c293f26.png"></a>
<a href="https://forum.shakacode.com/"><img src="https://user-images.githubusercontent.com/10421828/79436266-53df5f00-7fd9-11ea-94b3-b985e1b05bdc.png"></a>
<a href="https://www.shakacode.com/react-on-rails-pro"><img src="https://user-images.githubusercontent.com/10421828/79436265-53df5f00-7fd9-11ea-8220-fc474f6a856c.png"></a>
<a href="https://pro.reactonrails.com"><img src="https://user-images.githubusercontent.com/10421828/79436265-53df5f00-7fd9-11ea-8220-fc474f6a856c.png"></a>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add alt text to the new Pro logo image.

Line 6 introduces an <img> without alt, which regresses accessibility and triggers MD045.

♿ Suggested fix
- <a href="https://pro.reactonrails.com"><img src="https://user-images.githubusercontent.com/10421828/79436265-53df5f00-7fd9-11ea-8220-fc474f6a856c.png"></a>
+ <a href="https://pro.reactonrails.com"><img src="https://user-images.githubusercontent.com/10421828/79436265-53df5f00-7fd9-11ea-8220-fc474f6a856c.png" alt="React on Rails Pro"></a>
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<a href="https://pro.reactonrails.com"><img src="https://user-images.githubusercontent.com/10421828/79436265-53df5f00-7fd9-11ea-8220-fc474f6a856c.png"></a>
<a href="https://pro.reactonrails.com"><img src="https://user-images.githubusercontent.com/10421828/79436265-53df5f00-7fd9-11ea-8220-fc474f6a856c.png" alt="React on Rails Pro"></a>
🧰 Tools
🪛 markdownlint-cli2 (0.21.0)

[warning] 6-6: Images should have alternate text (alt text)

(MD045, no-alt-text)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` at line 6, The new Pro logo <img> tag is missing an alt attribute;
update the anchor's <img> element (the Pro logo image) to include a descriptive
alt text (e.g., alt="Pro React on Rails logo" or similar) so accessibility/MD045
is satisfied and screen readers get a meaningful description.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@claude

claude Bot commented Mar 18, 2026

Copy link
Copy Markdown
Contributor

Review: PR 2669 — Update Pro URLs and Fix Step Count/License Wording. Overall this is clean and consistent. Three items: (1) CHANGELOG.md retroactively changes pricing substance in released entries — recommend URL-only edits to released entries, put corrected pricing in unreleased section. (2) AGENTS_USER_GUIDE.md step consolidation drops the explicit check to verify config.server_renderer = NodeRenderer in the Pro initializer — keep it as a sub-bullet. (3) Pre-existing .md suffix in @see URL in react_on_rails_pro_helper.rb — good opportunity to fix since file is already touched. Inline comments below.

Comment thread CHANGELOG.md Outdated
```

4. Free or low-cost Pro licenses are available for startups, small companies, and qualifying organizations. Visit [React on Rails Pro](https://www.shakacode.com/react-on-rails-pro) to get started, or contact [justin@shakacode.com](mailto:justin@shakacode.com) for any questions.
4. A paid license is required for all production deployments. No license token is needed for evaluation, local development, testing, or CI/CD. Startups and small companies should contact [justin@shakacode.com](mailto:justin@shakacode.com) for discounted pricing. Visit [React on Rails Pro](https://pro.reactonrails.com) to get started.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This changes the substance of a released CHANGELOG entry, not just the URL. The old statement ("Free or low-cost Pro licenses are available for startups, small companies, and qualifying organizations") represented the terms communicated at that version's release. Replacing it with "A paid license is required for all production deployments" rewrites history.

Recommendation: keep CHANGELOG edits to released entries as URL-only changes. Add the corrected pricing language only in the current unreleased section or as a top-of-file note.

# components registered using the `registerServerComponent` function. Don't use it unless you need
# more control over the RSC payload generation. To know more about RSC payload, see the following link:
# @see https://www.shakacode.com/react-on-rails-pro/docs/how-react-server-components-works.md
# @see https://pro.reactonrails.com/docs/how-react-server-components-works.md

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pre-existing issue: the .md extension in the URL (https://pro.reactonrails.com/docs/how-react-server-components-works.md) will not resolve as a web page. Since this file is already touched by the PR, it's a good opportunity to fix it:

Suggested change
# @see https://pro.reactonrails.com/docs/how-react-server-components-works.md
# @see https://pro.reactonrails.com/docs/how-react-server-components-works

Comment thread AGENTS_USER_GUIDE.md Outdated
2. **package.json** — Replace `react-on-rails` with `react-on-rails-pro`, update imports
3. **Generator** — Run `bundle exec rails generate react_on_rails:pro`
4. **Node renderer** — Verify the generated Pro initializer enables `config.server_renderer = "NodeRenderer"`, confirm the server renderer entrypoint and scripts exist, then run `bundle exec rails react_on_rails:doctor` and restart `bin/dev`
3. **Generator** — Run `bundle exec rails generate react_on_rails:pro`, then verify with `bundle exec rails react_on_rails:doctor` and restart `bin/dev`

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merging old step 4 into step 3 silently drops this important verifier:

Verify the generated Pro initializer enables config.server_renderer = "NodeRenderer", confirm the server renderer entrypoint and scripts exist

react_on_rails:doctor catches some issues but doesn't explicitly confirm the initializer is correct. A user who skips this check can end up with the OSS ExecJS renderer still running silently. Consider keeping the verifier as a sub-bullet:

Suggested change
3. **Generator** — Run `bundle exec rails generate react_on_rails:pro`, then verify with `bundle exec rails react_on_rails:doctor` and restart `bin/dev`
3. **Generator** — Run `bundle exec rails generate react_on_rails:pro`, then:
- Verify `config/initializers/react_on_rails_pro.rb` has `config.server_renderer = "NodeRenderer"` and the server entrypoint exists
- Run `bundle exec rails react_on_rails:doctor` and restart `bin/dev`

The Pro URL migration changed license URLs from shakacode.com to
pro.reactonrails.com, but the engine_spec still expected the old
domain. Also exclude Pro docs paths from lychee since pages are
being deployed incrementally.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@@ -79,7 +79,7 @@ def missing_pro_gem?(force: false)
Then run: bundle install

Try Pro free! Email justin@shakacode.com for an evaluation license.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The phrase "Try Pro free!" was left unchanged here, which potentially contradicts this PR's goal of removing misleading "free" language. Consider updating to something like:

Suggested change
Try Pro free! Email justin@shakacode.com for an evaluation license.
Try Pro! Email justin@shakacode.com for an evaluation license.

Evaluation licenses are free, but the current phrasing implies the product itself is free — the same implication the PR is removing elsewhere.

Comment thread .lychee.toml
# PLANNED DEPLOYMENTS NOT YET LIVE
# ============================================================================
'^https://ror-spec-dummy\.reactrails\.com', # spec/dummy demo - deployment pending
'^https://pro\.reactonrails\.com/docs/', # Pro docs site - pages being deployed incrementally

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This exclusion only covers /docs/ subpaths. The PR also introduces many references to the bare root URLs (https://pro.reactonrails.com and https://pro.reactonrails.com/) in README.md, react_on_rails.gemspec, engine.rb, AGENTS_USER_GUIDE.md, etc. Those are not matched by this pattern and will be checked by lychee.

If the root domain is already live (with only the /docs/ pages being incrementally deployed), this is fine. If the root domain isn't live yet either, CI link checks will fail. Worth confirming the root URL resolves.

@@ -39,7 +39,7 @@ Gem::Specification.new do |s|
s.add_development_dependency "gem-release"
s.post_install_message = '
--------------------------------------------------------------------------------

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor trailing-slash inconsistency: this uses https://pro.reactonrails.com (no trailing slash), while engine.rb, utils.rb, and most other files in this PR use https://pro.reactonrails.com/ (with trailing slash). Both redirect identically, but standardising the format across the codebase would be cleaner.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
.lychee.toml (1)

73-73: Regex could be more robust to match /docs with or without trailing slash

Line 73's pattern requires a trailing slash after docs/. While this doesn't cause issues for URLs currently in the codebase, making the regex more inclusive improves defensive coverage.

Suggested improvement
-  '^https://pro\.reactonrails\.com/docs/',     # Pro docs site - pages being deployed incrementally
+  '^https://pro\.reactonrails\.com/docs(/|$)', # Pro docs site - pages being deployed incrementally
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.lychee.toml at line 73, Update the regex pattern
'^https://pro\.reactonrails\.com/docs/' in .lychee.toml to accept `/docs` with
or without a trailing slash; replace it with a pattern like
'^https://pro\.reactonrails\.com/docs(?:/|$)' so it matches URLs ending at
`/docs`, `/docs/`, or those with further path segments starting with `/docs/`.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In @.lychee.toml:
- Line 73: Update the regex pattern '^https://pro\.reactonrails\.com/docs/' in
.lychee.toml to accept `/docs` with or without a trailing slash; replace it with
a pattern like '^https://pro\.reactonrails\.com/docs(?:/|$)' so it matches URLs
ending at `/docs`, `/docs/`, or those with further path segments starting with
`/docs/`.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 81b2a1b0-20b8-4c0a-a351-b925ccce2b2c

📥 Commits

Reviewing files that changed from the base of the PR and between bdf4304 and 2a37821.

📒 Files selected for processing (2)
  • .lychee.toml
  • react_on_rails_pro/spec/react_on_rails_pro/engine_spec.rb

Comment thread AGENTS_USER_GUIDE.md Outdated
2. **package.json** — Replace `react-on-rails` with `react-on-rails-pro`, update imports
3. **Generator** — Run `bundle exec rails generate react_on_rails:pro`
4. **Node renderer** — Verify the generated Pro initializer enables `config.server_renderer = "NodeRenderer"`, confirm the server renderer entrypoint and scripts exist, then run `bundle exec rails react_on_rails:doctor` and restart `bin/dev`
3. **Generator** — Run `bundle exec rails generate react_on_rails:pro`, then verify with `bundle exec rails react_on_rails:doctor` and restart `bin/dev`

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The old step 4 contained specific verification instructions that were dropped in this merge:

Verify the generated Pro initializer enables config.server_renderer = "NodeRenderer", confirm the server renderer entrypoint and scripts exist

The new step 3 only mentions running rails react_on_rails:doctor. Worth confirming that docs/pro/upgrading-to-pro.md covers those initializer-verification details, so agents following this condensed guide don't miss the config.server_renderer check.

@claude

claude Bot commented Mar 18, 2026

Copy link
Copy Markdown
Contributor

Overall this is a clean, low-risk cleanup PR. The URL migration is comprehensive, the test in engine_spec.rb was correctly updated, and the license wording changes are consistent. Four observations (inline comments posted for the specific lines): (1) pro_setup.rb line 81 still says Try Pro free! which contradicts the goal of removing free/low-cost language. (2) The lychee exclusion only covers /docs/ subpaths, so bare root URLs like https://pro.reactonrails.com/ will still be link-checked - confirm the root domain is live. (3) Minor trailing-slash inconsistency: gemspec uses https://pro.reactonrails.com without a trailing slash while most files use one. (4) Folding step 4 into step 3 in AGENTS_USER_GUIDE.md drops the reminder to verify config.server_renderer is set to NodeRenderer - confirm upgrading-to-pro.md covers this detail.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2a378210ad

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread README.md
## React on Rails Pro

React on Rails Pro adds advanced rendering and performance features on top of the open-source gem. Pro is **free or very low cost for startups and small companies**. Contact [justin@shakacode.com](mailto:justin@shakacode.com) for pricing. Your subscription supports continued open-source development.
React on Rails Pro adds advanced rendering and performance features on top of the open-source gem. A **paid license is required for production use**. Startup-friendly pricing is available — contact [justin@shakacode.com](mailto:justin@shakacode.com). Your subscription supports continued open-source development.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Avoid claiming all production deployments need a paid plan

If a customer is on one of the complimentary production-capable plans (startup, nonprofit, education, oss, or partner), this sentence tells them they still have to buy a paid license before deploying. That contradicts ReactOnRailsPro::LicenseValidator: VALID_PLANS includes those plan types, and check_plan explicitly treats any plan in that set as valid for production use. Because the same wording was propagated through several docs in this patch, users with legitimate non-paid licenses will now get incorrect purchase/setup guidance.

Useful? React with 👍 / 👎.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@claude

claude Bot commented Mar 18, 2026

Copy link
Copy Markdown
Contributor

Code Review

Overall this is a clean, well-scoped documentation and URL migration PR. The changes are consistent across source code, templates, generators, runtime messages, and docs.

Positives:

  • URL migration is mechanically correct and complete
  • The spec in engine_spec.rb is properly updated to match the new URL pattern
  • Licensing messaging is now accurately aligned with EULA Section 4
  • The contributor-covenant.org lychee exclusion is a reasonable CI fix

Concerns:

  1. Blanket lychee exclusion for /docs/ paths lacks a cleanup plan
    The exclusion for pro.reactonrails.com/docs/ is placed in the PLANNED DEPLOYMENTS NOT YET LIVE section, which is the right place. However, unlike the adjacent entry, this one only says pages being deployed incrementally with no signal for when it should be removed. Consider adding a TODO with a target date or tracking issue number.

  2. Pre-existing .md extension in a web URL (carried over, not introduced here)
    In react_on_rails_pro_helper.rb the @see URL ends with .md. The extension was in the original URL too, so this PR faithfully migrated it, but web servers typically serve these paths without the extension and this link is likely broken. Worth fixing while touching this line.

  3. AGENTS_USER_GUIDE.md: Node renderer verification detail was silently dropped
    Old step 4 explicitly instructed agents to verify the generated Pro initializer enables config.server_renderer = NodeRenderer and confirm the server renderer entrypoint and scripts exist. The new step 3 collapses this into just verify with bundle exec rails react_on_rails:doctor. Since this file is the canonical guide for AI agents doing Pro upgrades, losing the initializer check could cause agents to miss a real failure mode (misconfigured renderer). Consider preserving it inline, even briefly.

  4. Minor URL inconsistency in react_on_rails.gemspec
    The post-install message uses https://pro.reactonrails.com (no trailing slash), while the rest of the PR consistently uses https://pro.reactonrails.com/. Not a bug, but slightly inconsistent.

No security, performance, or behavioral concerns:
All changed runtime messages, error strings, and warning URLs are informational only. No logic was modified.

# components registered using the `registerServerComponent` function. Don't use it unless you need
# more control over the RSC payload generation. To know more about RSC payload, see the following link:
# @see https://www.shakacode.com/react-on-rails-pro/docs/how-react-server-components-works.md
# @see https://pro.reactonrails.com/docs/how-react-server-components-works.md

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The .md extension on this URL was in the original and has been faithfully migrated, but web servers typically don't serve markdown files at this path — the URL is likely broken. Consider dropping the extension:

Suggested change
# @see https://pro.reactonrails.com/docs/how-react-server-components-works.md
# @see https://pro.reactonrails.com/docs/how-react-server-components-works

# React on Rails: OSS vs Pro Feature Comparison

React on Rails Pro extends the open-source gem with performance optimizations and advanced rendering capabilities. Pro is **free or very low cost for startups and small companies**.
React on Rails Pro extends the open-source gem with performance optimizations and advanced rendering capabilities. Available for free or with startup-friendly pricing — see [reactonrails.com/pro](https://reactonrails.com/pro) for details.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Available for free or with startup-friendly pricing" was not updated here. Needs to reflect that production use requires a paid license. The link also uses reactonrails.com/pro rather than pro.reactonrails.com.

Suggested change
React on Rails Pro extends the open-source gem with performance optimizations and advanced rendering capabilities. Available for free or with startup-friendly pricing — see [reactonrails.com/pro](https://reactonrails.com/pro) for details.
React on Rails Pro extends the open-source gem with performance optimizations and advanced rendering capabilities. A paid license is required for production deployments; startup-friendly pricing is available — see [pro.reactonrails.com](https://pro.reactonrails.com/) for details.

Comment thread CHANGELOG.md
@@ -191,7 +191,7 @@ To migrate to React on Rails Pro:
import ReactOnRails from 'react-on-rails-pro';
```

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Free or low-cost Pro licenses are available" contradicts the EULA alignment goal of the PR. Should state that a paid license is required for production, with startup-friendly pricing available.

Suggested change
```
3. A paid license is required for all production deployments. Startup-friendly pricing is available for startups and small companies. Visit [React on Rails Pro](https://pro.reactonrails.com) to get started, or contact [justin@shakacode.com](mailto:justin@shakacode.com) for questions.

For evaluation licenses or more info, see: https://www.shakacode.com/react-on-rails-pro/
No license needed for evaluation or non-production use.
Free or low-cost production licenses available for startups and small companies.
Get started: https://pro.reactonrails.com/

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Free or low-cost production licenses available" directly contradicts the PR's objective. If EULA §4 requires a paid license for all production deployments, this generator message should not imply otherwise.

Suggested change
Get started: https://pro.reactonrails.com/
A paid license is required for production deployments. Startup-friendly pricing is available for startups and small companies.

Comment thread .lychee.toml
# PLANNED DEPLOYMENTS NOT YET LIVE
# ============================================================================
'^https://ror-spec-dummy\.reactrails\.com', # spec/dummy demo - deployment pending
'^https://pro\.reactonrails\.com/docs/', # Pro docs site - pages being deployed incrementally

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The regex '^https://pro\.reactonrails\.com/docs/' only matches URLs with a path segment after /docs/. A URL like https://pro.reactonrails.com/docs (no trailing slash) will slip through and fail the link check. Consider anchoring with (/|$):

Suggested change
'^https://pro\.reactonrails\.com/docs/', # Pro docs site - pages being deployed incrementally
'^https://pro\.reactonrails\.com/docs(/|$)', # Pro docs site - pages being deployed incrementally

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: faa0067baa

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

<p style="margin-top: 16px;">
<strong>Learn more:</strong>
<a href="https://www.shakacode.com/react-on-rails-pro/docs/react-server-components/">
<a href="https://reactonrails.com/docs/pro/react-server-components/">

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Point generated RSC help links at a live docs page

For any app created with the RSC generator, /hello_server now links users to https://reactonrails.com/docs/pro/react-server-components/, but that route is not currently published on the docs site (the tutorial under /react-server-components/tutorial/ is live). That means fresh RSC installs send users to a dead page from the generated demo, and the same broken target is also printed by RscGenerator#print_success_message.

Useful? React with 👍 / 👎.

@claude

claude Bot commented Mar 18, 2026

Copy link
Copy Markdown
Contributor

Code Review: The URL migration is largely mechanical and correct. The main concern is that the PR stated goal of aligning with EULA s4 (paid license required for production) is incomplete - several files still say 'Available for free or with startup-friendly pricing'. Issues: (1) Incomplete license-messaging in AGENTS_USER_GUIDE.md:137, comparison-with-alternatives.md:176, oss-vs-pro.md:3, CHANGELOG.md:192, pro_setup.rb:83 - inline suggestions attached; (2) README.md:63 Pro features link still points to reactonrails.com/pro instead of pro.reactonrails.com - inline suggestion attached; (3) README.md lines 3-9 blank lines inside p-align-center break CommonMark HTML block parsing and img tags lack alt attributes - inline suggestion attached; (4) .lychee.toml:73 regex only matches /docs/ with trailing slash, /docs bare URL slips through - suggest (/|$) anchor, inline suggestion attached.

The generator error message now shows the Pro URL instead of the email
contact, so the test expectation needs to match.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@claude

claude Bot commented Mar 18, 2026

Copy link
Copy Markdown
Contributor

Review: PR #2669 — Update Pro URLs and Fix License Wording

Overall this is a clean, well-scoped doc/string update. The URL migration from shakacode.com/react-on-rails-pro to pro.reactonrails.com is consistent throughout. A few issues worth addressing before merge.

1. Inconsistent licensing language — stated goal not fully achieved

The PR summary says it removes 'free or low-cost' language that contradicts EULA §4, but several instances survive or are newly introduced:

  • CHANGELOG.md line 194: Only the URL was updated; the text 'Free or low-cost Pro licenses are available' was left unchanged.
  • react_on_rails/lib/generators/react_on_rails/pro_setup.rb line 82: The new generator message adds 'Free or low-cost production licenses available for startups and small companies' — regression from the stated intent.
  • All docs/oss/building-features/ Pro feature banners: 'Free or very low cost for startups and small companies.' text is untouched (only the mailto: link was swapped for a URL). These are the most user-visible banners and still contradict EULA §4.

2. README.md — badge misalignment

The <p align="center"> block had 4 badges. The Pro badge was removed but the remaining sponsor badge was moved outside the <p> indentation with extra blank lines, breaking visual centering on GitHub.

3. .lychee.toml — overly broad exclusion

'^https://pro\.reactonrails\.com/docs/' excludes all links under /docs/ on that domain indefinitely. Note: most new URLs in this PR use reactonrails.com/docs/... (different host), so this exclusion does not cover those anyway. Consider a more targeted pattern or add a TODO to remove it once the site is fully deployed.

4. CHANGELOG not updated

No entry for this PR. Per project conventions, user-facing messaging changes should be documented.

Try Pro free! Email justin@shakacode.com for an evaluation license.
For evaluation licenses or more info, see: https://www.shakacode.com/react-on-rails-pro/
No license needed for evaluation or non-production use.
Free or low-cost production licenses available for startups and small companies.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line reintroduces the "Free or low-cost" language that the PR explicitly states it is removing to align with EULA §4. This is a contradiction — the generator message displayed to users at install time will still say "free or low-cost" even as the docs say "a paid license is required for all production deployments".

Suggested change
Free or low-cost production licenses available for startups and small companies.
Startup-friendly pricing is available contact justin@shakacode.com.

Comment thread CHANGELOG.md
```

4. Free or low-cost Pro licenses are available for startups, small companies, and qualifying organizations. Visit [React on Rails Pro](https://www.shakacode.com/react-on-rails-pro) to get started, or contact [justin@shakacode.com](mailto:justin@shakacode.com) for any questions.
4. Free or low-cost Pro licenses are available for startups, small companies, and qualifying organizations. Visit [React on Rails Pro](https://pro.reactonrails.com) to get started, or contact [justin@shakacode.com](mailto:justin@shakacode.com) for any questions.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The URL was updated but the "Free or low-cost" text was left untouched. This is the only change in this hunk, but it is inconsistent with the stated goal of removing that language. If the intent is to align with EULA §4 throughout, this line should also be updated.

Suggested change
4. Free or low-cost Pro licenses are available for startups, small companies, and qualifying organizations. Visit [React on Rails Pro](https://pro.reactonrails.com) to get started, or contact [justin@shakacode.com](mailto:justin@shakacode.com) for any questions.
4. A paid license is required for production deployments. Startup-friendly pricing is available — visit [React on Rails Pro](https://pro.reactonrails.com) or contact [justin@shakacode.com](mailto:justin@shakacode.com).

Comment thread README.md Outdated
<a href="https://forum.shakacode.com/"><img src="https://user-images.githubusercontent.com/10421828/79436266-53df5f00-7fd9-11ea-94b3-b985e1b05bdc.png"></a>
<a href="https://www.shakacode.com/react-on-rails-pro"><img src="https://user-images.githubusercontent.com/10421828/79436265-53df5f00-7fd9-11ea-8220-fc474f6a856c.png"></a>
<a href="https://github.com/sponsors/shakacode"><img src="https://user-images.githubusercontent.com/10421828/79466109-cdd90d80-8004-11ea-88e5-25f9a9ddcf44.png"></a>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The <a> tag for the sponsor badge was moved outside the <p align="center"> block's indentation and now has extra blank lines around it. On GitHub this will render the badge outside the centered group, breaking the visual layout. The badge should stay inside <p>:

Suggested change
<a href="https://github.com/sponsors/shakacode"><img src="https://user-images.githubusercontent.com/10421828/79466109-cdd90d80-8004-11ea-88e5-25f9a9ddcf44.png"></a>

Comment thread .lychee.toml
# PLANNED DEPLOYMENTS NOT YET LIVE
# ============================================================================
'^https://ror-spec-dummy\.reactrails\.com', # spec/dummy demo - deployment pending
'^https://pro\.reactonrails\.com/docs/', # Pro docs site - pages being deployed incrementally

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This exclusion pattern is very broad — it skips all links under https://pro.reactonrails.com/docs/ indefinitely, including ones that may already be live.

Also note that most new doc URLs added in this PR use https://reactonrails.com/docs/pro/... (a different hostname), so this exclusion does not actually cover them.

Consider a more targeted pattern (e.g. specific paths not yet deployed) or add a tracking issue reference and a comment indicating when this exclusion should be revisited/removed:

Suggested change
'^https://pro\.reactonrails\.com/docs/', # Pro docs site - pages being deployed incrementally
'^https://pro\.reactonrails\.com/docs/', # Pro docs site - pages being deployed incrementally; TODO: remove once fully deployed

Remove blank lines at lines 6 and 8 inside the <p align="center"> block.
Per CommonMark spec, a blank line ends an HTML block, causing the sponsors
badge to render left-aligned instead of centered.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Try Pro free! Email justin@shakacode.com for an evaluation license.
For evaluation licenses or more info, see: https://www.shakacode.com/react-on-rails-pro/
No license needed for evaluation or non-production use.
Free or low-cost production licenses available for startups and small companies.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Contradicts README messaging. The README was updated in this same PR to say "A paid license is required for production use", but this generator output still says "Free or low-cost production licenses available".

Suggested change
Free or low-cost production licenses available for startups and small companies.
A paid license is required for all production deployments.
Startup-friendly pricing is available get started at https://pro.reactonrails.com/


> **Pro Feature** — Available with [React on Rails Pro](https://pro.reactonrails.com).
> Free or very low cost for startups and small companies. [Get a license →](mailto:justin@shakacode.com)
> Free or very low cost for startups and small companies. [Get a license →](https://pro.reactonrails.com)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inconsistent with new README messaging. The README now says "A paid license is required for production use", but this (and 10 other Pro Feature callout boxes) still says "Free or very low cost for startups and small companies."

Files that still have this old text after this PR:

  • docs/oss/api-reference/ruby-api-pro.md
  • docs/oss/building-features/bundle-caching.md
  • docs/oss/building-features/caching.md
  • docs/oss/building-features/code-splitting.md
  • docs/oss/building-features/node-renderer/basics.md
  • docs/oss/building-features/node-renderer/debugging.md
  • docs/oss/building-features/node-renderer/error-reporting-and-tracing.md
  • docs/oss/building-features/node-renderer/heroku.md
  • docs/oss/building-features/node-renderer/js-configuration.md
  • docs/oss/building-features/node-renderer/troubleshooting.md
  • docs/oss/configuration/configuration-pro.md
Suggested change
> Free or very low cost for startups and small companies. [Get a license →](https://pro.reactonrails.com)
> A paid license is required for production deployments. Startup-friendly pricing available — [Get a license →](https://pro.reactonrails.com)

Comment thread .lychee.toml
# PLANNED DEPLOYMENTS NOT YET LIVE
# ============================================================================
'^https://ror-spec-dummy\.reactrails\.com', # spec/dummy demo - deployment pending
'^https://pro\.reactonrails\.com/docs/', # Pro docs site - pages being deployed incrementally

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note: pro.reactonrails.com/docs/ paths are used not only in documentation but also in runtime error messages (e.g., master.ts for missing/expired/invalid license, StoreRegistry.ts for Pro-only store methods). Users encountering license errors at runtime will follow dead links until these pages deploy.

Consider using the bare https://pro.reactonrails.com/ (which appears to be live) in runtime error messages until the /docs/ paths are deployed.

Comment thread README.md
<a href="https://shakacode.com/"><img src="https://user-images.githubusercontent.com/10421828/79436256-517d0500-7fd9-11ea-9300-dfbc7c293f26.png"></a>
<a href="https://forum.shakacode.com/"><img src="https://user-images.githubusercontent.com/10421828/79436266-53df5f00-7fd9-11ea-94b3-b985e1b05bdc.png"></a>
<a href="https://www.shakacode.com/react-on-rails-pro"><img src="https://user-images.githubusercontent.com/10421828/79436265-53df5f00-7fd9-11ea-8220-fc474f6a856c.png"></a>
<a href="https://github.com/sponsors/shakacode"><img src="https://user-images.githubusercontent.com/10421828/79466109-cdd90d80-8004-11ea-88e5-25f9a9ddcf44.png"></a>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Pro badge/shield was deleted from this header block rather than updated to point to the new domain. The ShakaCode, Forum, and Sponsors badges remain, leaving an asymmetric set. If the intent was to remove it, that's fine — but consider restoring it pointing to https://pro.reactonrails.com to maintain consistent branding alongside the other badges.

Comment thread CHANGELOG.md
```

4. Free or low-cost Pro licenses are available for startups, small companies, and qualifying organizations. Visit [React on Rails Pro](https://www.shakacode.com/react-on-rails-pro) to get started, or contact [justin@shakacode.com](mailto:justin@shakacode.com) for any questions.
4. Free or low-cost Pro licenses are available for startups, small companies, and qualifying organizations. Visit [React on Rails Pro](https://pro.reactonrails.com) to get started, or contact [justin@shakacode.com](mailto:justin@shakacode.com) for any questions.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The URL was updated here but the surrounding text still reads "Free or low-cost Pro licenses are available", which contradicts the README's updated "A paid license is required for production use" messaging.

If CHANGELOG entries are intentionally treated as immutable historical records (reasonable), that's fine — but then the PR description's stated goal of removing "free or low-cost" language is incomplete, as this instance remains unchanged.

@justin808
justin808 merged commit 1688aee into main Mar 18, 2026
51 checks passed
@justin808
justin808 deleted the jg/2668-pro-url-migration branch March 18, 2026 22:14
justin808 added a commit that referenced this pull request Mar 25, 2026
## Summary

- Stamp `### [16.5.0.rc.0]` version header with today's date
- Add 10 new changelog entries for PRs merged since v16.4.0
- Fix incomplete PR 2818 entry (missing author link)

### New entries added

**Added:**
- `create-react-on-rails-app --pro` support (PR 2818)
- Global prerender env override `REACT_ON_RAILS_PRERENDER_OVERRIDE` (PR
2816)
- `react_on_rails:sync_versions` rake task (PR 2797)
- Pro/RSC setup checks in `react_on_rails:doctor` (PR 2674)

**Changed:**
- [Pro] Canonical env var for worker count is now
`RENDERER_WORKERS_COUNT` (PR 2611)

**Improved:**
- Smoother `create-react-on-rails-app` and install generator flows (PR
2650)
- Pro upgrade hint after install (PR 2642)

**Fixed:**
- Preserve runtime env vars across `Bundler.with_unbundled_env` (PR
2836)
- Fix doctor prerender check and ExecJS display for Pro/RSC apps (PR
2773)
- Fix doctor false positives for custom layouts (PR 2612)

### Skipped PRs (not user-visible)

Docs-only: #2845, #2842, #2826, #2830, #2820, #2809, #2803, #2785,
#2801, #2791, #2789, #2788, #2772, #2778, #2780, #2784, #2671, #2676,
#2662, #2657, #2669
CI/internal tooling: #2825, #2817, #2819, #2812, #2815, #2810, #2808,
#2807, #2634, #2798, #2761, #2760, #2658, #2639, #2667, #2656

## Test plan

- [x] Verified version header and diff links are correct
- [x] Verified all entries follow changelog formatting conventions
- [x] Verified file ends with newline
- [ ] After merge, run `rake release` to publish 16.5.0.rc.0

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Documentation-only change updating `CHANGELOG.md` with a new
`16.5.0.rc.0` section and compare links; no runtime code is modified.
> 
> **Overview**
> Adds a new `16.5.0.rc.0` (2026-03-25) section to `CHANGELOG.md`,
consolidating recent PR entries under **Added/Changed/Improved/Fixed**
and correcting the previously incomplete `--pro` CLI entry author
attribution.
> 
> Updates the bottom compare links so `[unreleased]` now compares from
`v16.5.0.rc.0` and adds a link definition for `[16.5.0.rc.0]`.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
481a71c. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

## Release Notes - v16.5.0.rc.0

* **New Features**
  * Added sync_versions task for streamlined version management
  * Expanded doctor checks for Pro and RSC support

* **Improvements**
  * Enhanced generator workflow and Pro upgrade guidance
  * Improved environment variable handling and preservation

* **Bug Fixes**
* Fixed detection issues with doctor tools and ExecJS/prerender
functionality

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
justin808 added a commit that referenced this pull request Mar 30, 2026
…ding (#2669)

- Replaces ~60+ instances of
`https://www.shakacode.com/react-on-rails-pro` with
`https://pro.reactonrails.com` across docs, source code, templates, and
READMEs
- Fixes AGENTS_USER_GUIDE.md step count from "four steps" to "three
steps" to match `docs/pro/upgrading-to-pro.md` (Node renderer
verification is part of step 3)
- Aligns all license/pricing messaging with EULA §4: "A paid license is
required for all production deployments" with a note that
startup-friendly pricing is available. Removes "free or low-cost"
language that contradicted the license terms

Fixes #2668
Closes #2636

- [ ] Verify no remaining `shakacode.com/react-on-rails-pro` URLs with
`grep -r`
- [ ] Verify no remaining "free or low cost" language with `grep -ri`
- [ ] Spot-check key files: README.md, CHANGELOG.md,
upgrading-to-pro.md, AGENTS_USER_GUIDE.md
- [ ] Confirm URL paths with suffixes (e.g., `/docs/installation/`)
resolve correctly on `pro.reactonrails.com`

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Low risk documentation/config messaging updates plus minor
generator/CLI text changes; no functional runtime behavior changes
beyond updated user-facing URLs.
>
> **Overview**
> Updates references to React on Rails Pro across docs, READMEs,
templates, generators, and Node renderer logs to use the new
`pro.reactonrails.com` / `reactonrails.com/docs/pro` URLs (including RSC
and node-renderer deep links).
>
> Clarifies Pro upgrade/install guidance by consolidating the Node
renderer verification into step 3 (so the guide is now *three steps*),
and updates multiple user-facing messages to emphasize that a **paid
license is required for production** while keeping
evaluation/non-production usage guidance. Also adds new Lychee
link-checker exclusions for Pro pages still being deployed and a few
flaky external links.
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
9dd51fb. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

* **Documentation**
* Updated React on Rails Pro links to the new dedicated domain
(pro.reactonrails.com) across docs, guides, tutorials, and examples.
* Revised Pro licensing messaging: production deployments now require a
paid license; added startup-friendly pricing/contact guidance.
* Streamlined upgrade/setup and generator guidance and clarified various
user-facing instructions.

* **Chores**
* Updated CLI/post-install messages, warnings, and README references to
point to the new Pro site.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
justin808 added a commit that referenced this pull request Apr 6, 2026
…ding (#2669)

- Replaces ~60+ instances of
`https://www.shakacode.com/react-on-rails-pro` with
`https://pro.reactonrails.com` across docs, source code, templates, and
READMEs
- Fixes AGENTS_USER_GUIDE.md step count from "four steps" to "three
steps" to match `docs/pro/upgrading-to-pro.md` (Node renderer
verification is part of step 3)
- Aligns all license/pricing messaging with EULA §4: "A paid license is
required for all production deployments" with a note that
startup-friendly pricing is available. Removes "free or low-cost"
language that contradicted the license terms

Fixes #2668
Closes #2636

- [ ] Verify no remaining `shakacode.com/react-on-rails-pro` URLs with
`grep -r`
- [ ] Verify no remaining "free or low cost" language with `grep -ri`
- [ ] Spot-check key files: README.md, CHANGELOG.md,
upgrading-to-pro.md, AGENTS_USER_GUIDE.md
- [ ] Confirm URL paths with suffixes (e.g., `/docs/installation/`)
resolve correctly on `pro.reactonrails.com`

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Low risk documentation/config messaging updates plus minor
generator/CLI text changes; no functional runtime behavior changes
beyond updated user-facing URLs.
>
> **Overview**
> Updates references to React on Rails Pro across docs, READMEs,
templates, generators, and Node renderer logs to use the new
`pro.reactonrails.com` / `reactonrails.com/docs/pro` URLs (including RSC
and node-renderer deep links).
>
> Clarifies Pro upgrade/install guidance by consolidating the Node
renderer verification into step 3 (so the guide is now *three steps*),
and updates multiple user-facing messages to emphasize that a **paid
license is required for production** while keeping
evaluation/non-production usage guidance. Also adds new Lychee
link-checker exclusions for Pro pages still being deployed and a few
flaky external links.
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
9dd51fb. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

* **Documentation**
* Updated React on Rails Pro links to the new dedicated domain
(pro.reactonrails.com) across docs, guides, tutorials, and examples.
* Revised Pro licensing messaging: production deployments now require a
paid license; added startup-friendly pricing/contact guidance.
* Streamlined upgrade/setup and generator guidance and clarified various
user-facing instructions.

* **Chores**
* Updated CLI/post-install messages, warnings, and README references to
point to the new Pro site.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs-cleanup Documentation cleanup or migration documentation P3 Parked priority review-needed

Projects

None yet

1 participant