Skip to content

docs: reframe RSC transpiler/bundler support to accurate status#3516

Merged
justin808 merged 2 commits into
mainfrom
jg-conductor/rsc-not-experimental
Jun 1, 2026
Merged

docs: reframe RSC transpiler/bundler support to accurate status#3516
justin808 merged 2 commits into
mainfrom
jg-conductor/rsc-not-experimental

Conversation

@justin808

@justin808 justin808 commented Jun 1, 2026

Copy link
Copy Markdown
Member

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 the react-on-rails-rsc WebpackLoader 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 the react-server-dom-webpack path via Rspack's webpack compatibility layer rather than Rspack's native react-server-dom-rspack RSC system.

Pull Request checklist

  • Add/update test to cover these changes (docs-only)
  • Update documentation
  • 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 to react-server-client-manifest.json (replacing react-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 native react-server-dom-rspack path with React on Rails Pro’s react-on-rails-rsc / react-server-dom-webpack approach 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

  • Documentation
    • Clarified React Server Components guidance for transpilers (Babel vs SWC) and build tools.
    • Added caution that SWC-based RSC builds are wired but not end-to-end verified; Babel remains the tested path in examples.
    • Noted Rspack manifest generation status and current integration approach, and linked related fixes and resources.

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>
@coderabbitai

coderabbitai Bot commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: c21152d9-5e8c-4c2b-b16e-94c7fe26e15b

📥 Commits

Reviewing files that changed from the base of the PR and between e6a0d43 and b0cdb52.

📒 Files selected for processing (2)
  • docs/oss/migrating/babel-to-swc-migration.md
  • docs/pro/react-server-components/rspack-compatibility.md
✅ Files skipped from review due to trivial changes (2)
  • docs/oss/migrating/babel-to-swc-migration.md
  • docs/pro/react-server-components/rspack-compatibility.md

Walkthrough

Updates 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.

Changes

RSC Compatibility Guidance Updates

Layer / File(s) Summary
Babel-to-SWC RSC reference transpiler and verification status
docs/oss/migrating/babel-to-swc-migration.md
RSC section expanded to identify Babel as the tested/reference transpiler, clarify 'use client'/'use server' boundary handling in the loader chain, note swc-loader wiring exists but isn't end-to-end verified, add a caution bullet about SWC-based RSC, and update the final recommendation wording.
Rspack RSC current status and integration clarification
docs/pro/react-server-components/rspack-compatibility.md
Add a "Current status (open)" note documenting that real-app builds compile and server-render but required RSC manifest files are not yet emitted; update testing checklist to require RSC manifest outputs; reword known limitations to state Pro uses react-server-dom-webpack; add PR #3385 to related resources.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related issues

  • #2678: Aligns with RSC documentation accuracy/completeness work referenced in the meta issue.

Poem

I nibble docs at break of day,
Clarifying paths along the way,
Babel’s marked and SWC’s in view,
Rspack notes file manifests due,
Hopping off — the guide is true. 🐇✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the main change: updating documentation to reframe React Server Components transpiler/bundler support from experimental language to current, verified status.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch jg-conductor/rsc-not-experimental

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.

@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: 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".

Comment thread docs/oss/migrating/babel-to-swc-migration.md Outdated
Comment thread docs/pro/react-server-components/rspack-compatibility.md
@greptile-apps

greptile-apps Bot commented Jun 1, 2026

Copy link
Copy Markdown

Greptile Summary

This 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).

  • babel-to-swc-migration.md: rewrites the RSC/SWC section to name Babel as the reference transpiler, explains that react-on-rails-rsc WebpackLoader handles RSC directives independently of transpiler choice, and updates the recommendation accordingly.
  • rspack-compatibility.md: adds a NOTE callout with the current Rspack RSC status (bundle compiles/renders but manifests not yet emitted), expands Known Limitations to contrast the react-server-dom-webpack path with Rspack's native react-server-dom-rspack system, and adds links to PR Fix Pro RSC manifests for Rspack builds #3385 and the Rspack v2 RSC guide.

Confidence Score: 4/5

Safe 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 react-server-client-manifest.json, while the rest of the document uses react-ssr-manifest.json. A secondary minor wording ambiguity in babel-to-swc-migration.md makes a Next.js version number look like an SWC version number.

docs/pro/react-server-components/rspack-compatibility.md — specifically the new NOTE block's manifest filename.

Important Files Changed

Filename Overview
docs/oss/migrating/babel-to-swc-migration.md Reframes RSC/SWC section from "experimental/unstable" to accurately describe Babel as the tested path; one wording ambiguity introduces a potential misattribution of a version number to SWC rather than Next.js.
docs/pro/react-server-components/rspack-compatibility.md Adds a current-status NOTE block and expands Known Limitations with Rspack-native RSC context; the NOTE block introduces react-server-client-manifest.json, which is inconsistent with react-ssr-manifest.json used everywhere else in the file.

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
Loading

Reviews (1): Last reviewed commit: "docs: reframe RSC transpiler/bundler sup..." | Re-trigger Greptile

Comment thread docs/pro/react-server-components/rspack-compatibility.md
Comment thread docs/oss/migrating/babel-to-swc-migration.md Outdated

@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: 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 win

Update 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

📥 Commits

Reviewing files that changed from the base of the PR and between 4ad9aeb and e6a0d43.

📒 Files selected for processing (2)
  • docs/oss/migrating/babel-to-swc-migration.md
  • docs/pro/react-server-components/rspack-compatibility.md

Comment thread docs/oss/migrating/babel-to-swc-migration.md
Comment thread docs/pro/react-server-components/rspack-compatibility.md
@claude

claude Bot commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

Code review for docs: reframe RSC transpiler/bundler support to accurate status. Two issues found. See inline comments for details.

@claude

claude Bot commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

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:
The edited line reads: 'Next.js recommends SWC 15.3.1+ for optimal SWC-based build performance with RSC.'
15.3.1 is a Next.js version, not an SWC version (SWC is versioned in the 1.x.x range). The original text said 'Next.js recommends version 15.3.1+' which was unambiguous. This edit accidentally dropped 'version' and prepended 'SWC', making it read as if SWC v15.3.1 is required. See inline suggestion.

Issue 2 (pre-existing, surfaced by this PR) - rspack-compatibility.md lines 47 and 85:
The new NOTE block (line 59) correctly uses react-server-client-manifest.json. But line 47 (unchanged) says react-ssr-manifest.json, and the testing checklist on line 85 also says react-ssr-manifest.json. Every other doc in this repo uses react-server-client-manifest.json (upgrading-existing-pro-app.md, rolling-deploy-adapters.md, configuration-pro.md, rsc-preparing-app.md). Lines 47 and 85 should be corrected so the document is internally consistent.

Issue 3 (pre-existing, not blocking) - babel-to-swc-migration.md line 94:
The heading 'Current Status (2025)' is stale in 2026. Worth updating while touching this doc.

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.

Comment thread docs/oss/migrating/babel-to-swc-migration.md Outdated
Comment thread docs/pro/react-server-components/rspack-compatibility.md
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>
@justin808

Copy link
Copy Markdown
Member Author

Review feedback addressed — b0cdb52

Thanks all. I triaged the 8 inline review comments (4 underlying issues + duplicates) and verified each claim against the source before acting.

Fixed in b0cdb52

  1. babel-to-swc-migration.md:104 — Next.js version wording. Restored Next.js recommends version 15.3.1+ …; the prior edit had dropped "version" and prepended "SWC", making a Next.js release look like an SWC version (SWC is on the 1.x line). (flagged by @chatgpt-codex-connector, @greptile-apps, @claude)
  2. rspack-compatibility.md:47, 85 — manifest filename consistency. Replaced the legacy react-ssr-manifest.json with the canonical react-server-client-manifest.json. Verified: react-ssr-manifest.json appeared only in this file, while react-server-client-manifest.json is used by every other doc and all Pro code (configuration.rb, rolling_deploy/tarball.rb, the config/utils specs, the node-renderer tests). The PR's NOTE block was already correct — I fixed the stragglers, not the NOTE. (@chatgpt-codex-connector and @claude had the correct direction; @greptile-apps and @coderabbitai suggested the reverse — replied on those threads.)
  3. babel-to-swc-migration.md:94 — refreshed the stale Current Status (2025) heading to 2026. (@claude)

Declined (with verified rationale)

  1. Loader-order claim (babel-to-swc-migration.md:101). The doc's "runs before babel/swc" is correct. rscWebpackConfig.js.tt appends the RSC loader to the end of rule.use (lines 48, 56), and webpack executes loaders right-to-left, so it runs first. The setup doc's "added after" refers to array position; this doc refers to execution order — both accurate, no conflict. (@coderabbitai — replied on thread.)

prettier --check passes on both files. All 8 review threads replied to and resolved.

@chatgpt-codex-connector

Copy link
Copy Markdown

To use Codex here, create an environment for this repo.

@claude

claude Bot commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

Claude finished @justin808's task in 50s —— View job


Fix verification for b0cdb52

  • Read current state of babel-to-swc-migration.md
  • Read current state of rspack-compatibility.md
  • Verify fix 1: Next.js version wording
  • Verify fix 2: Manifest filename consistency
  • Verify fix 3: Status year heading
  • Verify decline 4: Loader-order claim rationale

All four items verified against the current file state. The PR is clean.

Fix 1 — Next.js version wording (babel-to-swc-migration.md:104) ✅
Line 104 now reads: Next.js recommends version 15.3.1+ for optimal SWC-based build performance with RSC. The confusing "SWC 15.3.1+" is gone; the sentence correctly names Next.js and uses "version".

Fix 2 — Manifest filename consistency (rspack-compatibility.md:47, 85) ✅
Line 47 now references react-server-client-manifest.json and line 85 (testing checklist step 4) also uses react-server-client-manifest.json. The NOTE block at line 59 was already correct — the two legacy react-ssr-manifest.json stragglers are gone. The whole page is now internally consistent and matches every other doc and Pro source file.

Fix 3 — Status year heading (babel-to-swc-migration.md:94) ✅
### Current Status (2026) — year updated from 2025.

Decline 4 — Loader-order claim (babel-to-swc-migration.md:101) ✅ (correctly left as-is)
The phrase "runs before babel/swc" refers to execution order (webpack is right-to-left). The template appends the RSC loader to the end of rule.use, so it executes first. The setup doc's "added after babel-loader/swc-loader" describes array position. Both statements are accurate descriptions of the same wiring, not a conflict.

The docs-only changes are accurate, internally consistent, and ready to merge.

@greptile-apps

greptile-apps Bot commented Jun 1, 2026

Copy link
Copy Markdown

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 rule.use runs first at build time, so "added after" (array position) and "runs before" (execution order) are both accurate descriptions of the same fact from different perspectives. The doc is unambiguous in context.

The manifest filename audit (verifying react-ssr-manifest.json was isolated to this file while react-server-client-manifest.json is used everywhere else) is exactly the right way to resolve that conflict. Good call not reversing the NOTE block.

LGTM — no further issues from my side.

@coderabbitai

coderabbitai Bot commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

Tip

For best results, initiate chat on the files or code changes.

@justin808 Thanks for the thorough triage and the detailed write-up. I appreciate you verifying each point against the source.

On the two items where my suggestions were off:

  • Item 2 (manifest filename): You're right — I had the direction backwards. react-server-client-manifest.json is clearly the canonical name across all Pro code and documentation; I should not have suggested preserving the legacy react-ssr-manifest.json name.
  • Item 4 (loader order): Your verification is correct. Webpack processes loaders right-to-left, so a loader appended to the end of rule.use executes first — the doc's "runs before babel/swc" accurately describes execution order. My concern was unfounded.

Recording both for future reviews:

🐇 ✨


✏️ Learnings added
Learnt from: justin808
URL: https://github.com/shakacode/react_on_rails/pull/3516

Timestamp: 2026-06-01T08:03:12.089Z
Learning: In react_on_rails Pro's `rscWebpackConfig.js.tt`, the RSC WebpackLoader is appended to the end of `rule.use` (lines 48, 56). Because webpack processes loaders right-to-left, appending to the array means it runs first — before babel or swc. Documentation that says the RSC loader "runs before babel/swc" is describing execution order, not array position, and is correct.

Learnt from: justin808
URL: https://github.com/shakacode/react_on_rails/pull/3516

Timestamp: 2026-06-01T08:03:12.089Z
Learning: In react_on_rails Pro, the canonical RSC manifest filename is `react-server-client-manifest.json` (used in configuration.rb, rolling_deploy/tarball.rb, config/utils specs, and node-renderer tests). The legacy name `react-ssr-manifest.json` is incorrect and should always be replaced with `react-server-client-manifest.json`.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

@justin808 justin808 merged commit 7ead351 into main Jun 1, 2026
35 checks passed
@justin808 justin808 deleted the jg-conductor/rsc-not-experimental branch June 1, 2026 08:06
@claude

claude Bot commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

Code Review: docs: reframe RSC transpiler/bundler support to accurate status

Overall: High-quality, accurate documentation update. No blocking issues.


What this PR does

  • babel-to-swc-migration.md: Replaces blanket "EXPERIMENTAL/UNSTABLE" language with precise, actionable information — Babel is the tested path, the react-on-rails-rsc WebpackLoader handles RSC directives before babel/swc, and SWC is wired-but-unverified for end-to-end RSC builds.
  • rspack-compatibility.md: Fixes an incorrect manifest filename, adds a current-status callout about Rspack manifest generation, and expands Known Limitations to explain the react-server-dom-webpack vs. Rspack's native react-server-dom-rspack path.

Positive observations

  • Manifest filename fix is correct. The change from react-ssr-manifest.jsonreact-server-client-manifest.json is verified against the codebase: the correct name react-server-client-manifest.json is used consistently in httpRequestUtils.ts, test fixtures, CHANGELOG, and multiple other docs. No remaining instances of the old name anywhere — this was a genuine documentation error that could mislead developers checking their build output.
  • No stale references left. After this PR, react-ssr-manifest.json appears zero times in the repo.
  • The > [!NOTE] callout in rspack-compatibility.md is well-placed and uses GitHub's native admonition syntax for good visibility.
  • Cross-references to PR Fix Pro RSC manifests for Rspack builds #3385 / issue Rspack support for RSC #1828 give readers a clear path to track the in-progress fix.
  • Precision improvement in recommendations — "Stay with Babel for now" now explains why (tested path, SWC unverified) rather than citing a generic "experimental status."

Minor observations (non-blocking)

  1. Page-level status banner overlap: rspack-compatibility.md still opens with > **Status**: Experimental — generator support is complete; runtime verification is in progress. This partially overlaps with the new NOTE callout, which is more specific. Consider consolidating or updating the banner to reference the NOTE for clarity.

  2. "Known Issues" section in babel-to-swc-migration.md was not shown in the diff but follows the rewritten section. Worth a quick scan to confirm none of those points contradict the new accurate framing (e.g., any remaining claims that RSC with SWC is broadly broken vs. "unverified").


Verdict

Accurate, well-scoped documentation improvement. The manifest filename correction alone was worth merging — react-ssr-manifest.json was a genuine error, and the precision improvements to the RSC/transpiler guidance make the docs significantly more actionable.

justin808 added a commit that referenced this pull request Jun 2, 2026
…-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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant