docs: reframe RSC transpiler/bundler support to accurate status#3516
Conversation
Update RSC docs to replace the blanket "experimental/unstable" framing with what is actually true today. babel-to-swc-migration.md: - Babel is the tested/reference transpiler for RSC (the Pro dummy app builds RSC with Babel, so it has the most coverage). - Clarify the 'use client'/'use server' boundary transform is performed by the react-on-rails-rsc WebpackLoader, before babel/swc in the chain, so RSC directive handling is independent of transpiler choice. - SWC-based RSC builds are wired to work but not yet verified end-to-end; the React Compiler SWC plugin remains experimental (and is independent of RSC). rspack-compatibility.md: - Add a current-status note: the RSC bundle compiles and server-renders under Rspack, but the RSC manifest files are not yet emitted; an in-progress fix is tracked in PR #3385 / issue #1828. - Clarify React on Rails uses the react-server-dom-webpack path via Rspack's webpack compatibility layer, not Rspack's native react-server-dom-rspack RSC system. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
✅ Files skipped from review due to trivial changes (2)
WalkthroughUpdates two documentation pages: the Babel→SWC migration guide adds detailed RSC guidance naming Babel as the tested transpiler and warning SWC builds are not end-to-end verified; the Rspack RSC guide records that builds/SSR work but RSC manifest emission is currently missing and references an in-progress fix. ChangesRSC Compatibility Guidance Updates
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes Possibly related issues
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e6a0d43145
ℹ️ 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".
Greptile SummaryThis docs-only PR replaces vague "experimental/unstable" language around RSC support with accurate, current-status descriptions. Both changed files now clearly state what is tested (Babel + webpack), what is wired but unverified (SWC-based RSC builds), and what is still in progress (Rspack manifest emission).
Confidence Score: 4/5Safe to merge after correcting the manifest filename inconsistency in rspack-compatibility.md. The changes are documentation-only and the reframing is accurate and helpful. One concrete factual inconsistency was introduced in rspack-compatibility.md: the NOTE block names the second manifest file docs/pro/react-server-components/rspack-compatibility.md — specifically the new NOTE block's manifest filename. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[RSC Source File] --> B[react-on-rails-rsc WebpackLoader]
B -->|transforms 'use client'/'use server' boundaries| C[Transformed JS/TS]
C --> D{Transpiler Choice}
D -->|Tested path| E[babel-loader]
D -->|Wired, not yet verified| F[swc-loader]
E --> G[RSC Bundle Output]
F --> G
G --> H{Bundler}
H -->|webpack| I[Manifests emitted\nreact-client-manifest.json\nreact-ssr-manifest.json]
H -->|Rspack| J[Bundle compiles and server-renders\nManifests NOT yet emitted\nIn progress: PR #3385]
I --> K[RSC Runtime can resolve 'use client' references]
J -.->|blocked| K
Reviews (1): Last reviewed commit: "docs: reframe RSC transpiler/bundler sup..." | Re-trigger Greptile |
There was a problem hiding this comment.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
docs/oss/migrating/babel-to-swc-migration.md (1)
94-94:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winUpdate the status year to avoid stale guidance.
### Current Status (2025)is now date-stale relative to this PR (June 1, 2026). Consider removing the year or updating it to prevent readers treating the section as outdated.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/oss/migrating/babel-to-swc-migration.md` at line 94, Update the stale header "### Current Status (2025)" in the markdown to avoid a hardcoded, outdated year—either remove the year (make it "### Current Status") or update it to the current year (e.g., "### Current Status (2026)"); locate the exact heading string "### Current Status (2025)" in the document and replace it accordingly.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/oss/migrating/babel-to-swc-migration.md`:
- Line 101: Update the incorrect loader order statement: change the claim that
the 'react-on-rails-rsc' WebpackLoader runs "before" babel/swc to state it runs
"after" babel-loader/swc-loader in the Webpack loader chain; keep the note that
RSC directive handling does not depend on transpiler choice and that babel/swc
only perform ordinary JS/TS transpilation of RSC, server, and client bundles so
the description aligns with the RSC setup doc and loader names
('react-on-rails-rsc' WebpackLoader, babel-loader, swc-loader).
In `@docs/pro/react-server-components/rspack-compatibility.md`:
- Around line 58-60: The status note uses the wrong manifest filename; replace
`react-server-client-manifest.json` with the canonical `react-ssr-manifest.json`
so the pair reads `react-client-manifest.json` and `react-ssr-manifest.json`,
and ensure any other occurrences in rspack-compatibility.md match this canonical
pair (search for `react-server-client-manifest.json` and update to
`react-ssr-manifest.json`).
---
Outside diff comments:
In `@docs/oss/migrating/babel-to-swc-migration.md`:
- Line 94: Update the stale header "### Current Status (2025)" in the markdown
to avoid a hardcoded, outdated year—either remove the year (make it "### Current
Status") or update it to the current year (e.g., "### Current Status (2026)");
locate the exact heading string "### Current Status (2025)" in the document and
replace it accordingly.
🪄 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: f940fea3-2227-40f0-b37e-8d00110b69e7
📒 Files selected for processing (2)
docs/oss/migrating/babel-to-swc-migration.mddocs/pro/react-server-components/rspack-compatibility.md
|
Code review for docs: reframe RSC transpiler/bundler support to accurate status. Two issues found. See inline comments for details. |
|
Documentation-only review - technical framing verified against actual code. WHAT IS GOOD WebpackLoader ordering claim is verified: rscWebpackConfig.js.tt push()es the loader onto rule.use and webpack runs loaders right-to-left, confirming the RSC loader runs before babel/swc as stated. SWC wiring claim is verified: the generator template uses extractLoader(rule, babel-loader) OR extractLoader(rule, swc-loader), matching the doc claim that either transpiler is supported. The NOTE callout in rspack-compatibility.md is well-placed with concrete links to PR 3385 and issue 1828. The expanded Known Limitation 1 correctly explains the react-server-dom-webpack vs. Rspack-native react-server-dom-rspack distinction. ISSUES Issue 1 (bug introduced in this PR) - babel-to-swc-migration.md line 104: Issue 2 (pre-existing, surfaced by this PR) - rspack-compatibility.md lines 47 and 85: Issue 3 (pre-existing, not blocking) - babel-to-swc-migration.md line 94: VERDICT: Two fixes before merging: (1) restore 'Next.js recommends version 15.3.1+' on line 104, (2) replace react-ssr-manifest.json with react-server-client-manifest.json on lines 47 and 85 of rspack-compatibility.md. Overall direction is correct and a clear improvement over the prior EXPERIMENTAL and UNSTABLE framing. |
Address PR review feedback on the RSC docs reframe: - babel-to-swc-migration.md: restore "Next.js recommends version 15.3.1+" (was misedited to "SWC 15.3.1+"; 15.3.1 is a Next.js version, not SWC). - babel-to-swc-migration.md: refresh stale "Current Status (2025)" heading to 2026. - rspack-compatibility.md: replace the legacy react-ssr-manifest.json with the canonical react-server-client-manifest.json (lines 47 and 85), making the file internally consistent and matching the rest of the repo and code. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Review feedback addressed — b0cdb52Thanks all. I triaged the 8 inline review comments (4 underlying issues + duplicates) and verified each claim against the source before acting. Fixed in b0cdb52
Declined (with verified rationale)
|
|
To use Codex here, create an environment for this repo. |
|
Claude finished @justin808's task in 50s —— View job Fix verification for b0cdb52
All four items verified against the current file state. The PR is clean. Fix 1 — Next.js version wording ( Fix 2 — Manifest filename consistency ( Fix 3 — Status year heading ( Decline 4 — Loader-order claim ( The docs-only changes are accurate, internally consistent, and ready to merge. |
|
Thanks for the detailed triage — all four fixes look correct and the rationale for declining #4 is sound. The loader-order explanation is worth underlining: webpack's right-to-left execution means an entry appended to The manifest filename audit (verifying LGTM — no further issues from my side. |
|
Tip For best results, initiate chat on the files or code changes.
On the two items where my suggestions were off:
Recording both for future reviews: 🐇 ✨ ✏️ Learnings added
|
Code Review: docs: reframe RSC transpiler/bundler support to accurate statusOverall: High-quality, accurate documentation update. No blocking issues. What this PR does
Positive observations
Minor observations (non-blocking)
VerdictAccurate, well-scoped documentation improvement. The manifest filename correction alone was worth merging — |
…-false * origin/main: (82 commits) Run create-app package tests in CI (#3533) Adopt shakapacker-webpack in dummy apps Preserve localhost renderer host with base port (#3506) Document review app security guidance Fix bin/dev and doctor dev-server mode labels to match Shakapacker (#3377) Default fresh installs to Rspack (--webpack or --no-rspack for Webpack) (#3484) Add async-http RSC disconnect regression smoke (#3523) Clarify Rails-first async docs examples (#3525) Cover length-prefixed byte parsing edges (#3526) Align Conductor setup with Ruby 3.3 floor (#3524) Clarify docs version on homepages docs: archive stale historical docs and finalize monorepo licensing docs (#3517) docs: reframe RSC transpiler/bundler support to accurate status (#3516) Clarify Shakapacker config warning for relative SHAKAPACKER_CONFIG (#3441) [codex] Tolerate blank RSC stream separators (#3515) Stream Pro rolling-deploy downloads with a compressed-size cap (#3435) [codex] Align run-ci command with main (#3514) [codex] Neutralize test-helper bundler wording (#3513) docs: clarify Node Renderer and async props diagrams (#3489) chore(claude): add autoreview second-model code-review skill (#3496) ... # Conflicts: # docs/pro/react-server-components/inside-client-components.md
Summary
Documentation-only update that reframes how React on Rails' RSC support is described, replacing the blanket "experimental/unstable" language with what is actually true today.
In
babel-to-swc-migration.md, Babel is now described as the tested/reference transpiler for RSC (the Pro dummy app builds RSC with Babel), and the doc clarifies that the'use client'/'use server'boundary transform is performed by thereact-on-rails-rscWebpackLoader before babel/swc — so RSC directive handling is independent of transpiler choice, while SWC-based RSC builds are wired but not yet verified end-to-end.In
rspack-compatibility.md, a current-status note explains that the RSC bundle compiles and server-renders under Rspack but the RSC manifest files are not yet emitted (in-progress fix tracked in PR #3385 / issue #1828), and that React on Rails uses thereact-server-dom-webpackpath via Rspack's webpack compatibility layer rather than Rspack's nativereact-server-dom-rspackRSC system.Pull Request checklist
Add/update test to cover these changes(docs-only)Update CHANGELOG file(docs-only, no user-facing code change)Other Information
No code changes — documentation accuracy improvements only. Prettier, trailing-newline, and markdown link checks pass via the pre-commit hooks.
Note
Low Risk
Markdown-only accuracy updates with no application code, build scripts, or dependency changes.
Overview
Documentation-only refresh of RSC compatibility guidance in the Babel→SWC migration guide and the Rspack compatibility page—no runtime or build config changes.
In
babel-to-swc-migration.md, the RSC section moves from broad “SWC + RSC is experimental” wording to a clearer split: Babel is the tested reference transpiler (Pro dummy app),react-on-rails-rsc’s WebpackLoader handles'use client'/'use server'before babel/swc (transpiler choice is mostly ordinary JS/TS), and SWC-based RSC builds are wired but not end-to-end verified. Recommendations and the conclusion now say to stay on Babel for RSC unless you test heavily; the status year is 2026.In
rspack-compatibility.md, manifest naming is corrected toreact-server-client-manifest.json(replacingreact-ssr-manifest.json). A current-status note states Rspack builds compile and server-render but manifest files are not emitted yet, with PR #3385 / issue #1828 cited. Known limitations now contrast Rspack v2’s nativereact-server-dom-rspackpath with React on Rails Pro’sreact-on-rails-rsc/react-server-dom-webpackapproach via Rspack’s webpack compatibility layer, plus added reference links.Reviewed by Cursor Bugbot for commit b0cdb52. Bugbot is set up for automated code reviews on this repo. Configure here.
Summary by CodeRabbit