Skip to content

feat: support Rsbuild deployment adapters with Nitro - #578

Open
SyMind wants to merge 8 commits into
TanStack:mainfrom
SyMind:codex/rsbuild-nitro-deployments
Open

SyMind wants to merge 8 commits into
TanStack:mainfrom
SyMind:codex/rsbuild-nitro-deployments

Conversation

@SyMind

@SyMind SyMind commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

Add Nitro, Railway, Render, Vercel, and Netlify deployment support to React/Solid Rsbuild Start projects, including tanstack add.

Use the experimental nitro/rsbuild integration and generate platform configuration. Share Nitro 3.0.261103-rc across Vite/Rsbuild, require Node.js >=22.22 and Rsbuild >=2.3, and intersect engine requirements across add-on overlays, preserving prerelease constraints and rejecting incompatible ranges. Cloudflare remains Vite-only pending a compatible Workerd dev runtime.

Validation: pnpm build and pnpm test pass (611 unit tests, 22 blocking browser tests). Generated Rsbuild/Vite projects pass build, typecheck, and local dev/SSR checks. Hosted deployments have not been exercised.

Summary by CodeRabbit

  • New Features

    • Create React and Solid Rsbuild Start projects with Nitro deployment adapters for Nitro, Railway, Render, Vercel, and Netlify.
    • Select an adapter during project creation or add one to an existing Rsbuild Start project. Generated projects include provider-specific configuration and deployment instructions.
  • Documentation

    • Updated CLI and deployment guides with adapter options and compatibility requirements: Node.js 22.22 or later and Rsbuild 2.3 or later.
  • Limitations

    • Deployment adapters are unavailable for router-only projects; Cloudflare remains available for Vite projects only.

@coderabbitai

coderabbitai Bot commented Nov 10, 2026 •

Copy link
Copy Markdown

Explain Change →

No actionable comments were generated in the recent review.

Walkthrough

Rsbuild deployment adapters are available for React and Solid Start projects. The CLI supports adapter selection, and generated projects configure Nitro for supported providers. Router-only projects and Cloudflare remain unsupported for Rsbuild deployments.

Changes: Rsbuild Deployment Adapters

Layer / File(s) Summary
Add-on validation and package generation
packages/create/src/build-tools.ts, packages/create/src/package-engines.ts, packages/create/src/package-json.ts, packages/create/src/edge-package-json.ts, packages/create/tests/*, packages/create/package.json
Rsbuild accepts deployment add-ons with an rsbuild-plugin integration, allows at most one adapter, and rejects deployment adapters for router-only projects. Package generation includes deployment dependencies and merges engine ranges.
CLI deployment selection
packages/cli/src/command-line.ts, packages/cli/src/options.ts, packages/cli/src/ui-prompts.ts, packages/cli/tests/*, packages/cli/tests-e2e/rsbuild-smoke.spec.ts
The CLI accepts Rsbuild deployment flags and offers eligible adapters during selection. Tests cover supported adapters, Cloudflare exclusion, and React and Solid Nitro scenarios.
Provider integrations and generated project files
packages/create/src/frameworks/{react,solid}/project/*, packages/create/src/frameworks/{react,solid}/hosts/*, ARCHITECTURE.md, docs/cli-reference.md, packages/cli/skills/create-app-scaffold/references/*, .changeset/rsbuild-nitro-deployments.md
React and Solid templates add Nitro integrations for Nitro, Railway, Render, Vercel, and Netlify. Provider templates emit bundler-specific configuration, package metadata, and deployment instructions. Documentation describes supported adapters and version requirements.

Estimated code review effort: 4 (Complex) | ~45 minutes

Change: Feature

Sequence Diagram(s)

sequenceDiagram
  participant CLI
  participant AddOnCatalog
  participant ProjectGenerator
  participant RsbuildConfig
  participant Nitro
  CLI->>AddOnCatalog: Select an eligible Rsbuild deployment adapter
  ProjectGenerator->>RsbuildConfig: Emit imports and deployment plugin code
  RsbuildConfig->>Nitro: Configure the provider preset
Loading

Suggested reviewers: tannerlinsley

Merge Risk: Minimal · up to d0f7e

This change adds Nitro-based deployment adapters for React and Solid Rsbuild Start projects and tightens how engine requirements are merged. No concrete merge-blocking problem was identified in the supplied evidence, so it looks ready to merge after normal checks.

Pre-merge checks: Passed 4

Check name Status Explanation
Title check Passed The title "feat: support Rsbuild deployment adapters with Nitro" matches the main change. The changeset adds Nitro-based deployment adapters (nitro, railway, render, vercel, netlify) for Rsbuild Start…
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.
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Full details: Title check

Explanation

The title "feat: support Rsbuild deployment adapters with Nitro" matches the main change. The changeset adds Nitro-based deployment adapters (nitro, railway, render, vercel, netlify) for Rsbuild Start projects, and the PR objectives state the same goal. The title is short, specific, and follows a conventional commit style. It does not cover the engine-merge logic, but that is expected.

Finishing Touches

Generate unit tests (beta)

  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Warning

Some tools did not complete. Review the errors below.

ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

packages/create/tests/package-json.test.ts

Parsing error: "parserOptions.project" has been provided for @typescript-eslint/parser.
The file was not found in any of the provided project(s): packages/create/tests/package-json.test.ts

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

Recent review info

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: c76572ea-5a4a-44f7-b484-366a294dd91d
Commits

Reviewing files that changed from the base of the PR and between 71c1f79 and d0f7ef8.

Files selected for processing: 2

  • packages/create/src/package-engines.ts
  • packages/create/tests/package-json.test.ts

Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 3 remain after this review.

@changeset-bot

changeset-bot Bot commented Nov 10, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: d0f7ef8

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 7 packages
Name Type
@tanstack/create Minor
@tanstack/cli Minor
create-start-app Patch
create-tanstack-app Patch
create-tanstack Patch
create-tsrouter-app Patch
@tanstack/create-start Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@socket-security

socket-security Bot commented Nov 10, 2026 •

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatednitro@​3.0.260610-beta ⏵ 3.0.261103-rc99 +11008293 +3100

View full report

@SyMind

SyMind commented Nov 10, 2026

Copy link
Copy Markdown
Contributor Author

@codex review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 10, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-11T02:20:59.892516Z 449d157 Manual request
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@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: 7106beb1e9

ℹ️ 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".

@SyMind

SyMind commented Nov 11, 2026

Copy link
Copy Markdown
Contributor Author

@codex review

@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: 449d157b1c

ℹ️ 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/cli-reference.md Resolved
@SyMind
SyMind marked this pull request as ready for review November 12, 2026 06:25

SyMind commented Nov 12, 2026

Copy link
Copy Markdown
Contributor Author

@schiller-manuel Could you review this PR when you have a chance? It adds Nitro-based deployment support for React and Solid Rsbuild projects in the CLI. Thanks!

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

Additional comments: 1

packages/cli/skills/create-app-scaffold/references/bundlers.md-22-23: 1

22-23: Minor · Functional Correctness · Quick win

Unverified finding
Verification ran but could not confirm this finding. It is shown for review, not as a verified issue.

Update the target versions for the new adapter support.

This reference targets CLI v0.71.0. The deployment-provider reference targets v0.61.0. This adapter support is in a pending minor changeset after v0.72.16, so agents using either stated version can recommend unsupported commands. Update both references to target the first release that includes this change. (raw.githubusercontent.com)

Review info

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 2b50bb68-9803-4396-ae95-be60aeb02e2f
Commits

Reviewing files that changed from the base of the PR and between efb68bd and 71c1f79.

Files ignored due to path filters: 1

  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
Files selected for processing: 61

  • .changeset/rsbuild-nitro-deployments.md
  • ARCHITECTURE.md
  • docs/cli-reference.md
  • packages/cli/skills/create-app-scaffold/references/bundlers.md
  • packages/cli/skills/create-app-scaffold/references/deployment-providers.md
  • packages/cli/src/command-line.ts
  • packages/cli/src/options.ts
  • packages/cli/src/ui-prompts.ts
  • packages/cli/tests-e2e/rsbuild-smoke.spec.ts
  • packages/cli/tests/command-line.test.ts
  • packages/cli/tests/options.test.ts
  • packages/create/package.json
  • packages/create/src/build-tools.ts
  • packages/create/src/edge-package-json.ts
  • packages/create/src/frameworks/react/hosts/netlify/README.md.ejs
  • packages/create/src/frameworks/react/hosts/netlify/assets/netlify.toml
  • packages/create/src/frameworks/react/hosts/netlify/assets/netlify.toml.ejs
  • packages/create/src/frameworks/react/hosts/netlify/info.json
  • packages/create/src/frameworks/react/hosts/netlify/package.json
  • packages/create/src/frameworks/react/hosts/netlify/package.json.ejs
  • packages/create/src/frameworks/react/hosts/nitro/info.json
  • packages/create/src/frameworks/react/hosts/nitro/package.json
  • packages/create/src/frameworks/react/hosts/railway/info.json
  • packages/create/src/frameworks/react/hosts/railway/package.json.ejs
  • packages/create/src/frameworks/react/hosts/render/info.json
  • packages/create/src/frameworks/react/hosts/render/package.json.ejs
  • packages/create/src/frameworks/react/hosts/vercel/README.md
  • packages/create/src/frameworks/react/hosts/vercel/README.md.ejs
  • packages/create/src/frameworks/react/hosts/vercel/assets/vercel.json
  • packages/create/src/frameworks/react/hosts/vercel/assets/vercel.json.ejs
  • packages/create/src/frameworks/react/hosts/vercel/info.json
  • packages/create/src/frameworks/react/hosts/vercel/package.json
  • packages/create/src/frameworks/react/hosts/vercel/package.json.ejs
  • packages/create/src/frameworks/react/project/base/rsbuild.config.ts.ejs
  • packages/create/src/frameworks/react/project/packages.json
  • packages/create/src/frameworks/solid/hosts/netlify/README.md.ejs
  • packages/create/src/frameworks/solid/hosts/netlify/assets/netlify.toml
  • packages/create/src/frameworks/solid/hosts/netlify/assets/netlify.toml.ejs
  • packages/create/src/frameworks/solid/hosts/netlify/info.json
  • packages/create/src/frameworks/solid/hosts/netlify/package.json
  • packages/create/src/frameworks/solid/hosts/netlify/package.json.ejs
  • packages/create/src/frameworks/solid/hosts/nitro/info.json
  • packages/create/src/frameworks/solid/hosts/nitro/package.json
  • packages/create/src/frameworks/solid/hosts/railway/info.json
  • packages/create/src/frameworks/solid/hosts/railway/package.json
  • packages/create/src/frameworks/solid/hosts/render/info.json
  • packages/create/src/frameworks/solid/hosts/render/package.json
  • packages/create/src/frameworks/solid/hosts/vercel/README.md
  • packages/create/src/frameworks/solid/hosts/vercel/README.md.ejs
  • packages/create/src/frameworks/solid/hosts/vercel/assets/vercel.json
  • packages/create/src/frameworks/solid/hosts/vercel/assets/vercel.json.ejs
  • packages/create/src/frameworks/solid/hosts/vercel/info.json
  • packages/create/src/frameworks/solid/hosts/vercel/package.json
  • packages/create/src/frameworks/solid/hosts/vercel/package.json.ejs
  • packages/create/src/frameworks/solid/project/base/rsbuild.config.ts.ejs
  • packages/create/src/frameworks/solid/project/packages.json
  • packages/create/src/package-engines.ts
  • packages/create/src/package-json.ts
  • packages/create/tests/bundlers.test.ts
  • packages/create/tests/edge-manifest.test.ts
  • packages/create/tests/partner-addons.test.ts
Files with no reviewable changes: 10

  • packages/create/src/frameworks/react/hosts/netlify/assets/netlify.toml
  • packages/create/src/frameworks/react/hosts/vercel/assets/vercel.json
  • packages/create/src/frameworks/react/hosts/vercel/README.md
  • packages/create/src/frameworks/solid/hosts/vercel/assets/vercel.json
  • packages/create/src/frameworks/solid/hosts/netlify/package.json
  • packages/create/src/frameworks/solid/hosts/vercel/README.md
  • packages/create/src/frameworks/solid/hosts/netlify/assets/netlify.toml
  • packages/create/src/frameworks/solid/hosts/vercel/package.json
  • packages/create/src/frameworks/react/hosts/vercel/package.json
  • packages/create/src/frameworks/react/hosts/netlify/package.json

Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 3 remain after this review.

@tannerlinsley

Copy link
Copy Markdown
Member

The built-in Nitro and WorkOS combination keeps the correct Node 22.22 floor. The general engine merge still has a prerelease edge case for custom add-ons.

AI review notes: In a generated React app using synthetic engine declarations, merging >=22.0.0-rc.1 <23 with >=20 <22.5 lets 22.0.0-rc.2 through even though the second range rejects it. SemVer prerelease opt-in is evaluated per comparator set. Concatenating the two sets can carry one side's opt-in into the combined range. For each pair of alternatives, preserve their stable-version intersection and include prereleases only for version tuples explicitly admitted on both sides. Add a regression that checks the rejected prerelease and an accepted stable version through both manifest generation paths.

SyMind commented Nov 13, 2026

Copy link
Copy Markdown
Contributor Author

@tannerlinsley Fixed in d0f7ef87. Engine intersections now require prerelease opt-in from both ranges and reject empty intersections, with regression coverage through both Node and edge manifest generation.

pnpm build and pnpm test pass (611 unit tests, 22 blocking browser tests). Could you take another look? Thanks!

'@tanstack/cli': minor
---

Support Nitro, Railway, Render, Vercel, and Netlify deployment adapters in React and Solid Rsbuild Start projects using Nitro's experimental Rsbuild integration. Rsbuild deployment projects require Node.js >=22.22 and Rsbuild >=2.3. Cloudflare remains Vite-only until its Nitro development runtime is compatible with Workerd.

@schiller-manuel schiller-manuel Nov 13, 2026 •

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.

i would rather go for https://github.com/james-elicx/rsbuild-plugin-cloudflare instead of nitro for cloudflare&rsbuild

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.

3 participants