Skip to content

docs: add example migrations guide#3126

Merged
justin808 merged 30 commits intomainfrom
codex/example-migrations-docs
Apr 23, 2026
Merged

docs: add example migrations guide#3126
justin808 merged 30 commits intomainfrom
codex/example-migrations-docs

Conversation

@justin808
Copy link
Copy Markdown
Member

@justin808 justin808 commented Apr 13, 2026

Summary

Adds a new OSS docs page for real-world example migrations and wires it into the docs navigation.

What changed

  • add docs/oss/migrating/example-migrations.md
  • link the new page from docs/README.md
  • add the page to the migration sidebar
  • cross-link the page from the react-rails and vite_rails migration guides
  • fix the top-level heading in docs/oss/migrating/migrating-from-react-rails.md from ## to # so Docusaurus renders it as the page title (real correctness fix, not cosmetic)
  • add a direct open an issue link in the Contribute an example section of example-migrations.md so contributors don't need to hunt for the repo URL

Why

Teams evaluating React on Rails often already have an app on react-rails, vite_rails, or a custom Rails-side React bridge. This docs page gives them one place to see:

  • published example repos
  • active public migration PRs
  • the main migration categories
  • what should be compared before and after a migration

Related to #3125 (kept open as the long-lived meta tracker for in-progress migration PRs, which this doc page links to).

Validation

  • pre-commit hooks passed during commit
  • pre-push hooks passed during push
  • pnpm exec prettier --check on all changed docs files
  • eslint docs/sidebars.ts


Note

Low Risk
Low risk documentation-only change that adds new navigation and cross-links; primary risk is broken doc links/sidebars if an ID/path is incorrect.

Overview
Adds a new Example Migrations docs page that curates real-world migration references (published repos and a meta issue for in-progress PRs), plus guidance on what constitutes useful proof for a migration.

Updates the docs entry points and migration guides to link to this new page (including adding it to docs/sidebars.ts), adjusts migrating-from-react-rails.md to use a top-level # heading for correct Docusaurus page titles, and refreshes a couple of legacy outbound links in misc/doctrine.md.

Reviewed by Cursor Bugbot for commit e08fa27. Bugbot is set up for automated code reviews on this repo. Configure here.

Summary by CodeRabbit

  • Documentation
    • Added an "Example Migrations" page with real-world migration references, selection criteria, migration lanes, proof requirements, and a table of active public PRs.
    • Enhanced migration guides with advice to pick small first slices and a maintainability-first, slice-by-slice approach for different starter setups.
    • Updated README links and added the new page to the migration guides sidebar.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 13, 2026

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

Adds a new "Example Migrations" documentation page and links to it from migration guides, the docs README, and the sidebar; the new page catalogs public example migrations, selection criteria, migration categories, in-progress PRs with evidence notes, and guidance for migration slices and proof requirements.

Changes

Cohort / File(s) Summary
New Example Migrations doc
docs/oss/migrating/example-migrations.md
Introduces a comprehensive page listing common starting points (react-rails, vite_rails, custom bridges), selection criteria, published examples, a table of in-progress migration PRs with statuses and evidence, migration lanes, proof requirements, research lanes, and cross‑references to stack-specific guides.
Migration guide updates
docs/oss/migrating/migrating-from-react-rails.md, docs/oss/migrating/migrating-from-vite-rails.md
Adds "pick a small first slice" guidance and maintainability-first slice advice; each guide now links to the new Example Migrations page for real-world references and active public PRs.
Docs index & sidebar
docs/README.md, docs/sidebars.ts
Replaces a single external "Examples and migration references" link with a local ./oss/migrating/example-migrations.md link in README and adds migrating/example-migrations to the "Upgrading & Migration → Migration Guides" sidebar.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 I hop through docs with tiny paws,
I gather PRs and list the cause.
Small slices first, then onward go,
Examples, links, and progress show. 🥕

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The PR title 'docs: add example migrations guide' directly and clearly summarizes the main change: adding a new documentation page about example migrations.
Linked Issues check ✅ Passed The PR fully addresses issue #3125 objectives by publishing the example migrations docs page, aggregating curated migration references, defining evidence requirements, and cross-linking from related migration guides.
Out of Scope Changes check ✅ Passed All changes are directly scoped to issue #3125 objectives: creating the example-migrations.md page, updating navigation links, and cross-referencing from related migration guides. No unrelated changes detected.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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 codex/example-migrations-docs

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.

Comment thread docs/oss/migrating/example-migrations.md Outdated
Comment thread docs/oss/migrating/example-migrations.md Outdated
Comment thread docs/README.md Outdated
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
docs/oss/migrating/example-migrations.md (1)

32-42: Consider adding an “as of” date for the in-progress PR table.

Since draft PR states can change quickly, adding a short “Last verified: ” note would reduce staleness/confusion for readers.

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

In `@docs/oss/migrating/example-migrations.md` around lines 32 - 42, The "Public
migration PRs in progress" table is missing a verification timestamp, so add a
short "Last verified: YYYY-MM-DD" note immediately above or below the table
header (near the "### Public migration PRs in progress" heading) to indicate
when the draft PR states were checked; update the
docs/oss/migrating/example-migrations.md content to include this timestamp (and
optionally a brief parenthetical like "(draft PR states may change)") and ensure
the note is easy to update in future.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@docs/oss/migrating/example-migrations.md`:
- Around line 32-42: The "Public migration PRs in progress" table is missing a
verification timestamp, so add a short "Last verified: YYYY-MM-DD" note
immediately above or below the table header (near the "### Public migration PRs
in progress" heading) to indicate when the draft PR states were checked; update
the docs/oss/migrating/example-migrations.md content to include this timestamp
(and optionally a brief parenthetical like "(draft PR states may change)") and
ensure the note is easy to update in future.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: d196464d-66b7-48e5-a22b-946ed026350c

📥 Commits

Reviewing files that changed from the base of the PR and between b76a52c and 87b62a2.

📒 Files selected for processing (5)
  • docs/README.md
  • docs/oss/migrating/example-migrations.md
  • docs/oss/migrating/migrating-from-react-rails.md
  • docs/oss/migrating/migrating-from-vite-rails.md
  • docs/sidebars.ts

@claude
Copy link
Copy Markdown
Contributor

claude Bot commented Apr 13, 2026

Review: docs: add example migrations guide

Good addition overall. Three issues worth addressing before merge:

1. H1 vs H2 title (Docusaurus)

example-migrations.md opens with ## Example Migrations (H2). Docusaurus derives the page title, browser tab title, and breadcrumb from the first H1 when no frontmatter title/sidebar_label is set. With only an H2 the title falls back to the document ID. The inline comment on line 1 has a suggestion to add frontmatter or promote to H1.

2. Stale link risk — third-party draft PRs

The table links to 4 draft PRs in external repos this project has no control over. They can be merged, closed, or abandoned with no signal to maintainers here, leaving readers with dead links. The inline comment on lines 36-41 suggests alternatives.

3. Removal of reactonrails.com/examples

docs/README.md replaces the link to the external reactonrails.com/examples page with the new local page. If the external URL has content not covered here, readers lose access. Worth clarifying whether the external URL redirects here, is being deprecated, or should be kept alongside the new page.

Minor / no action needed

  • Cross-links added to migrating-from-react-rails.md and migrating-from-vite-rails.md are well-placed.
  • Sidebar entry in sidebars.ts looks correct.
  • Content quality and structure of the new page are solid.

@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented Apr 13, 2026

Greptile Summary

This PR adds a new example-migrations.md docs page that consolidates real-world migration references (published repos and active draft PRs) for teams moving from react-rails, vite_rails, or custom React bridges to React on Rails. It wires the page into the sidebar, cross-links it from the two existing migration guides, and replaces a stale external URL in docs/README.md with the new internal link.

Confidence Score: 5/5

Safe to merge — docs-only change with no logic, no code paths affected, and the sidebar ID correctly resolves to the new file.

All findings are P2: a heading-level style inconsistency and a note about potentially stale draft PR links. Neither blocks merge or affects correctness.

docs/oss/migrating/example-migrations.md — H1 vs H2 heading and draft PR link longevity.

Important Files Changed

Filename Overview
docs/oss/migrating/example-migrations.md New page tracking real-world migration examples; starts with H2 instead of H1 (may produce a duplicate heading in Docusaurus), and embeds draft PR URLs that are likely to go stale.
docs/README.md Replaces stale external URL with the new internal example-migrations doc link; change is correct and well-scoped.
docs/oss/migrating/migrating-from-react-rails.md Adds a single cross-link sentence to the new example-migrations page; minimal and correct.
docs/oss/migrating/migrating-from-vite-rails.md Adds a single cross-link sentence to the new example-migrations page; minimal and correct.
docs/sidebars.ts Inserts 'migrating/example-migrations' at the top of the Migration Guides category; ID matches the new file path correctly.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    README["docs/README.md\n(Evaluating Rails+React section)"]
    Sidebar["docs/sidebars.ts\nMigration Guides category"]
    ExMig["docs/oss/migrating/example-migrations.md\n✨ NEW"]
    RR["docs/oss/migrating/migrating-from-react-rails.md"]
    VR["docs/oss/migrating/migrating-from-vite-rails.md"]

    README -->|"links to"| ExMig
    Sidebar -->|"lists first in\nMigration Guides"| ExMig
    RR -->|"cross-links to"| ExMig
    VR -->|"cross-links to"| ExMig
    ExMig -->|"links back to"| RR
    ExMig -->|"links back to"| VR
Loading

Reviews (1): Last reviewed commit: "docs: add example migrations guide" | Re-trigger Greptile

Comment thread docs/oss/migrating/example-migrations.md Outdated
Comment thread docs/oss/migrating/example-migrations.md Outdated
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
docs/oss/migrating/example-migrations.md (1)

59-59: Consider replacing “biggest” with a more precise term.

“The biggest changes are” reads a bit generic; “primary” or “key” changes is tighter for docs tone.

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

In `@docs/oss/migrating/example-migrations.md` at line 59, Replace the vague
phrase "The biggest changes are" with a more precise term in the docs section
that currently contains that sentence; update the text to "The primary changes
are" or "The key changes are" (or similar concise wording) wherever the exact
string "The biggest changes are" appears to improve tone and clarity in the
migration guide.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@docs/oss/migrating/example-migrations.md`:
- Line 59: Replace the vague phrase "The biggest changes are" with a more
precise term in the docs section that currently contains that sentence; update
the text to "The primary changes are" or "The key changes are" (or similar
concise wording) wherever the exact string "The biggest changes are" appears to
improve tone and clarity in the migration guide.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 1730536a-7ae7-48c5-89d0-e6ee3498487a

📥 Commits

Reviewing files that changed from the base of the PR and between 87b62a2 and 950976a.

📒 Files selected for processing (3)
  • docs/oss/migrating/example-migrations.md
  • docs/oss/migrating/migrating-from-react-rails.md
  • docs/oss/migrating/migrating-from-vite-rails.md
✅ Files skipped from review due to trivial changes (1)
  • docs/oss/migrating/migrating-from-react-rails.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/oss/migrating/migrating-from-vite-rails.md

Comment thread docs/oss/migrating/example-migrations.md Outdated
Comment thread docs/oss/migrating/example-migrations.md Outdated
Comment thread docs/oss/migrating/example-migrations.md Outdated
@claude
Copy link
Copy Markdown
Contributor

claude Bot commented Apr 13, 2026

Review: docs: add example migrations guide

Overall this is a useful, well-structured addition. The content is honest about what's in-progress vs. stable, and the migration category breakdowns are practical. Three issues worth addressing before merge:

1. Missing H1 heading (blocking for Docusaurus rendering)

example-migrations.md opens with ## Example Migrations (h2). Other pages in this directory use # (h1) as their top heading, which Docusaurus uses for the rendered <title> and the visible page heading. See inline comment on line 1.

2. External draft-PR table will go stale quickly

The "Public migration PRs in progress" table links to four draft PRs in repos outside this project's control. Draft PRs close, get superseded, or go abandoned—any of those events turns a row into a confusing dead link. See inline comment on line 43 for mitigation options.

3. "Later targets worth watching" names external projects as migration targets

Listing mastodon/mastodon, gitlabhq/gitlabhq, etc. as "high-signal targets" without any indication those communities have been engaged may come across as presumptuous. Those projects have mature front-end stacks and are unlikely to view React on Rails as a migration destination. See inline comment on line 98.

Minor: README link replacement

The PR replaces https://reactonrails.com/examples with the new local page. If that external URL is still live and indexed, existing bookmarks and external links to it will now 404 (or hit stale content). Worth verifying whether a redirect from the old URL to the new page is needed, or whether the old page should be updated to point here.

Comment thread docs/oss/migrating/example-migrations.md Outdated
Comment thread docs/oss/migrating/example-migrations.md Outdated
Comment thread docs/oss/migrating/migrating-from-react-rails.md Outdated
Comment thread docs/oss/migrating/example-migrations.md
Comment thread docs/oss/migrating/example-migrations.md Outdated
Comment thread docs/oss/migrating/example-migrations.md Outdated
Comment thread docs/oss/migrating/example-migrations.md Outdated
@claude
Copy link
Copy Markdown
Contributor

claude Bot commented Apr 13, 2026

Review

Documentation-only change, so no runtime/security impact. Overall this is a solid addition — the migration categories, evidence criteria, and cross-linking are all well-done. A few things worth addressing before merge:

Structurally blocking

None — nothing here breaks the site or introduces incorrect information.

Worth fixing before merge

  1. "Later research lanes" section reads as internal planning, not docs (inline comment on lines 100–106). The section uses phrases like "current PR wave" and "high-signal lanes" that are opaque to anyone not inside the project. Either remove it, reframe it as a "how to contribute an example" section, or move it somewhere internal. As written it will confuse readers trying to migrate.

  2. Hardcoded snapshot date will silently mislead (inline on line 36). A bare calendar date in prose will make the table look current long after it isn't. A blockquote callout or simply dropping the date in favor of the caveat sentence alone would age better.

Minor / low priority

  1. "Pick a small first slice" placement in migrating-from-react-rails.md (inline on lines 18–23). The block is inserted mid-preflight between two unrelated notes. The content is good — it just belongs before or after the checklist, not inside it.

  2. Draft PR table maintenance (inline on lines 38–43). Linking to third-party draft PRs the team doesn't control is fine, but a Last checked column or per-row note would let readers know when to expect the status to be stale. The demarche-numerique/demarche.numerique.gouv.fr repo link (dot in repo name) is also worth a quick sanity-check.

@claude
Copy link
Copy Markdown
Contributor

claude Bot commented Apr 13, 2026

Review: docs: add example migrations guide

Documentation-only PR that adds a useful example-migrations.md page and wires it into navigation. The structure and intent are good. A few issues worth addressing before merging:

Hardcoded snapshot date will stale immediately

example-migrations.md line 36 hardcodes April 12, 2026 as the verification date. Once this page is published, every external-link check requires a manual date edit — and readers will immediately see it as out-of-date. Consider replacing it with a maintainability note (e.g. "Links are point-in-time; check the PR directly for current status") or a "Last verified" front-matter field if Docusaurus metadata supports it.

"Current PR wave" is internal jargon

The phrase "The current PR wave is intentionally narrow" in the Later research lanes section will confuse readers who haven't followed the ShakaCode PR workflow. The term "PR wave" has no meaning to someone reading the published docs — it sounds like the referenced draft PRs are part of a coordinated internal effort, but that context isn't present on the page. The sentence needs to be rewritten to be self-contained.

Unverified local benchmark numbers in the table

The EFForg row cites:

Local benchmark note: warm request median 6.11ms -> 5.04ms; estimated total JS bytes 2,179,067 -> 1,636,265 for the slice

These numbers are from an uncontrolled local environment on a draft PR. Publishing them in React on Rails official docs — without methodology, hardware, Rails environment details, or sample-size information — risks teams treating them as representative benchmarks. The "What counts as proof" section (which is excellent) explicitly warns against weak benchmarks, yet the table entry does exactly that. Either add brief methodology context inline, or soften the language to "initial local measurements suggest ...".

Placement of the "first slice" guidance interrupts preflight flow

In migrating-from-react-rails.md, the new block (lines 18–23) is inserted between:

  • The summary sentence "If you are already on shakapacker 7+, the migration is mostly about helper syntax …"
  • The bundle install Bundler 1.x failure workaround

This splits a coherent preflight section with strategic advice that belongs either before the Preflight checklist or after all the setup/preflight content. The current placement makes the preflight section harder to skim.

Minor: third-party draft PRs as evidence

All four table rows point to draft PRs in organizations' repos that the ShakaCode team does not control. These may be closed, converted to closed-won't-merge, or abandoned without notice, leaving broken or misleading links in the docs. The existing "Snapshot verified" warning and the note "The useful part is the scope and the evidence, not whether they are already merged" partly address this — but it may be worth making the maintenance expectation more explicit (e.g. who owns periodic link reviews, or a note that stale entries will be pruned on the next pass).

Comment thread docs/oss/migrating/example-migrations.md Outdated
Comment thread docs/oss/migrating/example-migrations.md Outdated
Comment thread docs/oss/migrating/example-migrations.md Outdated
Comment thread docs/oss/migrating/migrating-from-react-rails.md Outdated
@claude
Copy link
Copy Markdown
Contributor

claude Bot commented Apr 13, 2026

Review: docs: add example migrations guide

Overall this is a well-structured, useful addition. Clear content, correct sidebar placement, helpful cross-links from both migration guides, and the explicit Last-verified timestamp is good practice for a living reference table.

Three issues worth addressing before merge:

1. Missing H1 heading — Docusaurus page title will be empty

The new file opens with an H2. Docusaurus uses the first H1 as the rendered page title and browser-tab label when there is no frontmatter title field. Change the opener from ## Example Migrations to # Example Migrations. (Inline comment posted on line 1.)

2. Local benchmark numbers need a caveat

The EFForg table row cites specific timing and byte-delta figures drawn from a local benchmark on a draft PR. Those numbers are not reproducible from the docs and may be treated as authoritative by readers. A brief parenthetical noting they are contributor-local measurements rather than a controlled benchmark would calibrate expectations. (Inline comment posted on line 40.)

3. Whale targets language

The Later targets section describes Mastodon and GitLab as whale targets, which is sales jargon for a large prospect account. In public OSS documentation it reads oddly and could come across as presumptuous to those projects maintainers. Neutral wording such as high-visibility projects or larger established apps carries the same meaning without the sales connotation. (Inline comment posted on line 102.)

Minor: no maintenance process for the PR table

The table references draft PRs in third-party repos. The Last-verified date is helpful, but there is no guidance for future contributors on what to do when a listed PR is merged or closed. A single sentence would help keep the table accurate over time.

No other concerns. Sidebar wiring, relative links, and the incremental-slice guidance added to both migration guides all look correct.

Comment thread docs/oss/misc/doctrine.md Outdated
Comment thread docs/oss/migrating/example-migrations.md Outdated
@claude
Copy link
Copy Markdown
Contributor

claude Bot commented Apr 23, 2026

Code Review

Overall: Clean, well-structured documentation PR. The content is accurate, the navigation wiring is correct, and the heading fix in migrating-from-react-rails.md is a real correctness improvement. A few things worth addressing before merge.


Findings

1. Link inconsistency — branch vs. commit hash for the same resource

example-migrations.md pins the react-rails example app to a specific commit hash (c6b794a4b96746dbbc98a46f31119171109d70b0). The existing migrating-from-react-rails.md (line 139) links to the react-rails-to-react-on-rails branch of the same repo — a mutable reference that can drift or be deleted.

The commit-hash approach in the new page is actually better for a stable reference. Consider updating migrating-from-react-rails.md line 139 to use the same commit-pinned URL, or at minimum add a note that the branch link may move.

2. Duplicate migration example links

The two links in ## Published example repos in example-migrations.md are already present verbatim in migrating-from-react-rails.md (lines 139–141). The PR adds a cross-link at line 143, but the underlying repo links remain duplicated in both files — a future maintenance burden if URLs or descriptions need updating.

Suggestion: Remove the repo-specific links from migrating-from-react-rails.md and keep them only in example-migrations.md as the single source of truth, leaving just the cross-link at line 143.

3. Partial direct-link coverage for migration paths

In ## How to use these examples, Webpack→Rspack and Babel→SWC are linked directly, but AngularJS and Rails 5 API-only are described only as prose sidebar navigation hints. This is inconsistent and slightly harder to navigate.

4. Contribution issue link could use a template

[open an issue](https://github.com/shakacode/react_on_rails/issues/new) drops the contributor onto a blank issue form. If a bug-report or feature-request template exists in .github/ISSUE_TEMPLATE/, using a direct template URL would give better contributor guidance. Minor, but friendly-UX.

5. Sidebar RSC path description may go stale

Line 135 in example-migrations.md describes the RSC sidebar path as prose: React on Rails Pro → React Server Components → Migrating to RSC. Prose navigation hints rot when the sidebar is reorganized. A direct Markdown link to ./migrating-to-rsc.md would be more robust.


Minor / Non-blocking

  • doctrine.md URL fixes (http://eslint.org/https://eslint.org/, http://webpack.github.io/https://webpack.js.org/) are correct — both old URLs redirected or broke.
  • example-migrations placed first in the Migration Guides sidebar works well as a discovery/hub entry point.
  • Docusaurus heading fix (###) in migrating-from-react-rails.md is correct and needed for proper page-title rendering.

Comment thread docs/oss/migrating/example-migrations.md Outdated
Comment thread docs/oss/migrating/example-migrations.md Outdated
Comment thread docs/oss/migrating/migrating-from-react-rails.md Outdated
@claude
Copy link
Copy Markdown
Contributor

claude Bot commented Apr 23, 2026

Code Review

Overall: Well-structured documentation PR. The new example-migrations.md page is logically organized, the navigation wiring is correct, and the heading fix in migrating-from-react-rails.md is a real correctness improvement. A couple of things worth addressing.


Findings

1. Duplicate repo links — maintenance burden

example-migrations.md introduces a "single source of truth" for migration references, but the two published example repo links are still present verbatim in migrating-from-react-rails.md (lines 139–141). Both files now describe the same resources with nearly identical prose:

If either URL or description needs updating in the future, it will need to be updated in both places. Since example-migrations.md is positioned as the canonical home for these references, consider replacing the two inline links in migrating-from-react-rails.md with a single forward reference: "For published example repos and real-world migration references, see Example Migrations."

2. Issue template URL bypasses the template picker

The "Contribute an example" link uses:

https://github.com/shakacode/react_on_rails/issues/new?title=Migration+example%3A+

This opens a blank issue form. Since the repo has issue templates configured (.github/ISSUE_TEMPLATE/bug_report.md and feature_request.md), landing contributors on /issues/new/choose first gives them proper template guidance before they open a new issue.

Suggested replacement:

https://github.com/shakacode/react_on_rails/issues/new/choose

3. RSC sidebar location is ambiguous in prose

The last paragraph of ## How to use these examples groups RSC alongside AngularJS and Rails 5 API-only as sidebar paths. The Rails 5 / AngularJS items are indeed in the Migration Guides sidebar category. RSC migration content is nested under React on Rails Pro → React Server Components → Migrating to RSC — a different sidebar tree. The sentence "For React Server Components migration content, start with Migrating to RSC" works because it's a direct link, but the framing alongside the other sidebar hints may mislead readers who navigate the sidebar manually.


Non-blocking positives

  • Branch reference → commit-pinned URL update in migrating-from-react-rails.md is the right call for stability.
  • doctrine.md URL fixes (http://eslint.org/https://eslint.org/, http://webpack.github.io/https://webpack.js.org/) are correct.
  • Placing example-migrations first in the Migration Guides sidebar works well as a discovery hub entry point.
  • The "slice-by-slice" guidance added to both migration guides is practical and fills a real gap.

Comment thread docs/oss/migrating/example-migrations.md
Comment thread docs/oss/migrating/migrating-from-react-rails.md Outdated
@claude
Copy link
Copy Markdown
Contributor

claude Bot commented Apr 23, 2026

Review: docs: add example migrations guide

Summary: Documentation-only PR. Adds a new example-migrations.md page, wires it into the sidebar and README, cross-links from the react-rails and vite_rails migration guides, fixes the top-level heading in migrating-from-react-rails.md, and updates stale HTTP links in doctrine.md.


What works well

  • Heading fix is a real correctness improvement. ## Migrate From react-rails# Migrate From react-rails ensures Docusaurus renders it as the page title rather than a subsection.
  • All internal cross-links resolve correctly. example-migrations.md, migrating-from-vite-rails.md, migrating-to-rsc.md, babel-to-swc-migration.md, migrating-from-webpack-to-rspack.md, and ../getting-started/comparing-react-on-rails-to-alternatives.md all exist in the repo.
  • Sidebar placement is appropriate. example-migrations as the first item in the Migration Guides category works as an index/orientation page before the individual guides.
  • URL hygiene in doctrine.md. http://eslint.org/https://eslint.org/ and http://webpack.github.io/https://webpack.js.org/ are the correct current URLs.
  • Good separation of concerns. Stable references live in the docs file; draft/in-progress PRs are tracked in issue Track example migrations from existing Rails + React apps #3125. That keeps the docs page durable and the issue thread useful for working notes.

Minor issues

  1. Custom bridge category lacks a contribute call-to-action. The Custom Rails React bridge section ends with "No dedicated guide exists yet" but does not point the reader to the Contribute an example section below. See inline comment.

  2. Commit SHA link versus branch name. The first published reference links to a specific commit hash (c6b794a4b96746) rather than the branch name react-rails-to-react-on-rails that the old migrating-from-react-rails.md used. The word "snapshot" in the link label communicates intent clearly. The SHA is the safer choice — if the repo is ever force-pushed the commit link stays valid while a branch link would silently move.

  3. Long prose lines in example-migrations.md. The .prettierrc sets printWidth: 110 with no proseWrap override, so Prettier preserves existing line length in Markdown. A few lines exceed 110 characters (notably lines 105 and 109). This does not affect rendering, but is worth noting if proseWrap: always is ever enabled. Not a blocker.


Verdict: Approve. The changes are clean, all links validate, and the content is practically useful. The inline suggestion below is optional.

Comment thread docs/oss/migrating/example-migrations.md Outdated
@claude
Copy link
Copy Markdown
Contributor

claude Bot commented Apr 23, 2026

Code Review: docs — add example migrations guide

Overview

Documentation-only PR adding a curated Example Migrations landing page and wiring it into the docs navigation. No runtime code, APIs, or build logic is modified. Low risk.

What works well

  • Heading fix — changing ## Migrate From react-rails to # Migrate From react-rails is a real Docusaurus correctness fix, not cosmetic.
  • URL updates in doctrine.mdhttp://eslint.org/https://eslint.org/ and http://webpack.github.io/https://webpack.js.org/ are both correct and overdue.
  • Commit-pinned example link — locking the older react-rails example to a specific commit hash (rather than a mutable branch name) is the right stability choice.
  • Two-tier docs/meta-issue split — keeping in-progress work in issue Track example migrations from existing Rails + React apps #3125 and only stable references on the docs page is a clean architectural decision that prevents docs churn.
  • All relative links resolve — every ./ and ../ path in the new file points to a file that actually exists in the repo.
  • Performance vs maintainability proof distinction — the honest framing in "What counts as proof" is genuinely useful and not common in migration docs.

Issues to address

Two minor wording issues flagged as inline comments (lines 78 and 109 of example-migrations.md).

Verdict

The content is accurate, the navigation changes are correct, and all cross-links resolve. Approve once the two wording nits are addressed.

Comment thread docs/oss/migrating/example-migrations.md Outdated
Comment thread docs/oss/migrating/example-migrations.md Outdated
@claude
Copy link
Copy Markdown
Contributor

claude Bot commented Apr 23, 2026

Approve - docs-only PR, all changes are correct. Full review below.

@claude
Copy link
Copy Markdown
Contributor

claude Bot commented Apr 23, 2026

Code Review

Summary: Docs-only PR adding an Example Migrations hub page wired into the sidebar and existing migration guides, with a real Docusaurus heading fix and two stale URL corrections in doctrine.md.

What is working well

  • Heading fix is a real bug: the original double-hash on migrating-from-react-rails.md renders as an h2 in Docusaurus, leaving the page title empty. Changing to a single hash is a genuine correctness fix.
  • doctrine.md URL updates are correct: webpack.github.io no longer exists (Webpack moved to webpack.js.org), and the ESLint URL should be HTTPS. Both are right.
  • Sidebar placement: example-migrations as the first entry in Migration Guides positions it as an overview entry-point before the mechanics guides, which matches how the page introduces itself.
  • Cross-linking is coherent: README links to example-migrations, example-migrations links to both migration guides, and both migration guides link back. No dead ends.
  • Commit hash vs branch name for the react-rails-to-react-on-rails snapshot is intentional and correct; a commit hash is stable whereas a branch can be deleted or rebased. The link text preserves the branch name for human readability.

Minor observations (no blockers)

  1. Issue 3125 is now linked from published docs as the living tracker for in-progress migration PRs. If that issue gets closed or repurposed, this docs page will drift silently. Worth adding a note in the issue itself that it is referenced by example-migrations.md, so whoever closes it knows to update the docs first.

  2. Wording nit in the vite-rails addition: the phrase 'the first credible PR may be maintainability-first' is slightly ambiguous. 'reviewable' or 'self-contained' would be more precise.

Verdict: Approve. Content is accurate, navigation additions are structurally correct, and the heading and URL fixes are real improvements. All relative links resolve to existing files.

Comment thread docs/oss/migrating/migrating-from-vite-rails.md
Comment thread docs/oss/migrating/example-migrations.md
@justin808
Copy link
Copy Markdown
Member Author

Address-review checkpoint for PR #3126.

Scope:

  • Default scan cutoff was the previous address-review-summary checkpoint at 2026-04-19T09:57:24Z.
  • I fixed the selected review items 1-3 and also handled follow-up Claude review threads opened during the cleanup loop through 2026-04-23T01:46:36Z.

Fixed:

  • 2adc9a506 / 4adf75811: tightened the new Example Migrations page with maintainer-owned reference context, current-version framing, trimmed category guidance, and clearer examples.
  • faf25fee6: fixed Markdown link-check failures discovered by CI.
  • 8d49ef7c3: merged origin/main into the branch and resolved the docs conflict to the current renderer/node-renderer.js path from main.
  • 9c3529a8a, 4cd275059, e12844b9f, a7da991e0, 5c07d428c, e08fa2779: handled follow-up docs review threads by pinning the example snapshot, clarifying README labels, updating stale links, linking directly to RSC migration content, consolidating duplicate example references, and clarifying contribution paths.

Replied / resolved:

  • Replied to and resolved the selected optional review threads.
  • Replied to skipped original stale/noise issue comments 4275661879, 4275725899, and 4278043218.
  • Replied to and resolved late optional nits 3127855627 and 3127855774 with skip rationales.

Validation:

  • pnpm exec prettier --check ... on changed docs.
  • git diff --check.
  • script/check-docs-sidebar origin/main.
  • pnpm exec lychee --config .lychee.toml ... targeted and branch/full docs link checks.
  • Pre-commit and pre-push hooks passed on the pushed commits.
  • GitHub checks are green on e08fa277941980a3358a085eb86858aab2b9635a: markdown-link-check, check-sidebar, claude-review, CodeQL, and Cursor Bugbot.

Current PR state:

  • mergeStateStatus: CLEAN
  • reviewDecision: APPROVED
  • Unresolved review threads: none

Note: broad bundle exec rubocop was attempted earlier and still reports unrelated/off-scope pre-existing offenses in Gemfile and react_on_rails_pro/spec/dummy/db/schema.rb. No Ruby files were changed in the final commits; the relevant hooks skipped RuboCop because there were no matching staged Ruby files.

@justin808 justin808 merged commit b016a75 into main Apr 23, 2026
22 checks passed
@justin808 justin808 deleted the codex/example-migrations-docs branch April 23, 2026 02:08
justin808 added a commit that referenced this pull request Apr 23, 2026
…ging' into jg/3122-rolling-deploy-adapter

* origin/jg/3122-unify-renderer-cache-staging: (39 commits)
  fix(specs): boot dummy specs without readline and drop redundant pnpm workspace (#3190)
  docs: add RSC migration success stories page (#1985) (#3162)
  Fix Bencher reporting permanently broken on pushes to main (#3148)
  docs: add example migrations guide (#3126)
  docs: remove defunct guavapass.com reference (#3199)
  chore: remove redundant --rsc-pro install generator flag (#3105)
  ci: warn (don't fail) on Bencher main regression (#3168)
  test: enable RSpec --profile to surface slowest package tests (#3176)
  fix(node-renderer): expose performance in VM context when supportModules (#3158)
  docs: remove stale immediate_hydration references (#3139) (#3159)
  docs: restore absolute URL for node-renderer testing example (#3179)
  Bump Rspack dependencies to v2 (^2.0.0-0) (#3084)
  chore: remove obsolete webpack <5.106.0 pin (#3175)
  Move Node Renderer entry point to renderer/ directory (#3165)
  docs: address RSC pitfalls review follow-ups (#3155) (#3156)
  docs: remove fabricated DevConsole reference, link verified RSC tools (#2527) (#3163)
  Scaffold CI workflow and build scripts for first-run consistency (#3097)
  Add OPTIONAL triage tier and fix recommendations to /address-review (#3161)
  chore: sync Gemfile.lock with term-ansicolor 1.11.3 (#3164)
  Simplify the docs sidebar and Pro landing pages (#3119)
  ...
justin808 added a commit that referenced this pull request Apr 23, 2026
* origin/main:
  fix(specs): boot dummy specs without readline and drop redundant pnpm workspace (#3190)
  docs: add RSC migration success stories page (#1985) (#3162)
  Fix Bencher reporting permanently broken on pushes to main (#3148)
  docs: add example migrations guide (#3126)
  docs: remove defunct guavapass.com reference (#3199)
  chore: remove redundant --rsc-pro install generator flag (#3105)
  ci: warn (don't fail) on Bencher main regression (#3168)
  test: enable RSpec --profile to surface slowest package tests (#3176)
  fix(node-renderer): expose performance in VM context when supportModules (#3158)
  docs: remove stale immediate_hydration references (#3139) (#3159)
  docs: restore absolute URL for node-renderer testing example (#3179)
  Bump Rspack dependencies to v2 (^2.0.0-0) (#3084)
  chore: remove obsolete webpack <5.106.0 pin (#3175)
  Move Node Renderer entry point to renderer/ directory (#3165)
  docs: address RSC pitfalls review follow-ups (#3155) (#3156)

# Conflicts:
#	CHANGELOG.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant