docs: add "RoR Pro vs TanStack Start" architecture comparison#4246
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
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 (3)
✅ Files skipped from review due to trivial changes (2)
WalkthroughAdds a new documentation page comparing React on Rails Pro and TanStack Start, covering architecture, server logic, rendering, type safety, and decision guidance. The page is registered in the Docusaurus sidebar and inserted into the Pro full-text documentation stream ( ChangesTanStack Start comparison doc
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~5 minutes Possibly related PRs
Suggested labels
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 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 |
Greptile SummaryThis PR adds a TanStack Start comparison page to the React on Rails Pro docs. The main changes are:
Confidence Score: 5/5This looks safe to merge.
Important Files Changed
Reviews (1): Last reviewed commit: "docs: add "RoR Pro vs TanStack Start" ar..." | Re-trigger Greptile |
|
Review: docs: add RoR Pro vs TanStack Start architecture comparison This PR adds a well-structured architecture comparison doc paralleling the existing Next.js comparison. The framing (libraries vs. framework, batteries-included Rails vs. assemble-your-own backend) is accurate and the neutral tone is maintained. Four issues worth addressing before merge, ranked by severity. 1. Missing Pro Feature callout (structural) 2. Dev experience paragraph is near-verbatim copy of 3. "When you should choose TanStack Start" section diverges from the exemplar altitude 4. "Router + Vite + server functions" / "Vite-driven" is imprecise (plausible, hedged by accuracy note) |
|
Thanks — addressed in 3ed9434:
Resolving these threads. |
3ed9434 to
dcc2117
Compare
Review: docs — RoR Pro vs TanStack Start architecture comparisonWell-structured doc with clear framing and honest concessions to TanStack Start. All 8 internal cross-reference links are valid, sidebar placement is logical (grouped next to 🔴 PR description contradicts document body on SSR defaultsThe PR framing section explicitly says TanStack Start is "Client-first (SSR opt-in per route)", but the document body states it is "SSR-first: routes are server-rendered by default" — in the "Two ways to get a server" section (lines 53–55), the Rendering section (line 101), and the Summary. These are factually opposite. See inline comment on line 53. Whether TanStack Start's default changed at stable 1.x needs confirming against the official release notes. Either the PR description or the three body locations needs updating to agree. 🟡
|
Review: docs: add RoR Pro vs TanStack Start architecture comparisonThis PR adds a well-structured architecture comparison for React on Rails Pro vs TanStack Start, with appropriate caveats, a balanced capabilities matrix, and correct sidebar/llms-full regeneration. All internal file links resolve. The tone is fair and mirrors the nextjs-comparison doc. Four issues found — two confirmed, two plausible: CONFIRMED — Link text promises content that does not exist (line 169) The link text reads: Decision Guide: React on Rails vs. TanStack Start and other alternatives. The target file ( CONFIRMED — Prose implies SSR requires Pro; contradicts the capabilities table on the same page (line 107) The Rendering and first paint section reads: React on Rails server-renders React from Rails (via the Node renderer in Pro). The parenthetical implies SSR itself requires Pro. But open-source React on Rails has had SSR via ExecJS (mini_racer) since the beginning. The capabilities table on the same page correctly states Server-rendered (Rails); streaming SSR + RSC in Pro — correctly separating basic OSS SSR from Pro-exclusive streaming SSR and RSC. The prose and table contradict each other on whether OSS SSR exists at all. Suggested fix: React on Rails server-renders React from Rails (via ExecJS in OSS, or the faster Node renderer in Pro), and React on Rails Pro adds streaming SSR and RSC… PLAUSIBLE — Starter repo link may be misread as a TanStack Start demo (line 171) The bullet under Which should you choose? correctly describes the starter as using TanStack Query, Router, and Table on a Rails backend. But on a page titled TanStack Start comparison, a skimming reader may infer it demonstrates TanStack Start + Rails integration — it actually shows TanStack client libraries on Rails as an alternative to Start. A short parenthetical such as (uses TanStack client libraries, not TanStack Start) would remove the ambiguity. PLAUSIBLE — Vite/Nitro understates Vinxi (line 41) The capabilities table describes TanStack Start as TanStack Router + Vite/Nitro + server functions. In practice, Vite is the bundler/dev-server and Nitro is the deployment adapter — both wired together by Vinxi, the user-facing layer. Listing them as Vite/Nitro implies two interchangeable alternatives and may invite credibility questions from TanStack Start users. TanStack Router + Vinxi (Vite + Nitro) + server functions is more precise. |
Adds a dedicated architecture comparison paralleling the merged RSC vs Next.js doc (#4158). Where that doc compares two RSC implementations, this one compares two ways to own the full stack, since TanStack Start is client-first rather than RSC-first. Core framing (calibrated to mid-2026): - Splits the TanStack suite: Query/Router/Table are complementary and run on top of Rails; only Start (the framework) substitutes for the Rails server tier. - TanStack Start is client-first (SSR opt-in per route) and ships no ORM/database of its own ("bring your own backend"); Rails is that backend, batteries included. - RSC is RoR Pro's answer to Start's server-function colocation; described as Pro-supported (Node renderer), not "experimental." - Honest about RoR's costs: two languages, untyped JSON boundary (typed via codegen, flagged as roadmap), and extra dev processes. - Concedes greenfield/no-Rails/one-language/velocity to Start. Registered in docs/sidebars.ts next to nextjs-comparison; regenerates llms-full.txt and llms-full-pro.txt. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Correct the SSR characterization flagged in review: TanStack Start is SSR-first (routes server-rendered by default; opt out per route via ssr:false / 'data-only' / SPA mode), not "client-first / SSR opt-in." Also from review: - Note the TanStack client libraries are OSS-compatible while RSC and TanStack Router SSR require Pro (parallels the Next.js doc's callout). - Clarify Start is built on Vite/Nitro (post-Vinxi, since v1.121.0), not Vinxi. - Soften the RSC colocation equivalence in the summary. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Re-review: SSR is available in open-source React on Rails via ExecJS; the Node renderer (with streaming SSR + RSC) is the Pro part. The prior '(via the Node renderer in Pro)' implied SSR required Pro, contradicting the capability table on the same page. Also write the Start build stack as 'Vite + Nitro' (post-Vinxi, v1.121.0). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
dcc2117 to
25b37b3
Compare
Review: docs/pro/react-server-components/tanstack-start-comparison.mdWell-structured doc with an honest framing. All 8 internal links resolve correctly, the sidebar position is right (between `nextjs-comparison` and `glossary`), and the cross-file consistency with the Next.js comparison doc is clean. Four issues need attention before merge, plus a few fairness gaps worth considering. Factual issues1. Nitro vs. Vinxi (line 41) — The TanStack Start table row says "TanStack Router + Vite + Nitro + server functions." TanStack Start is built on Vinxi (the Naman Goel project that wraps Vite and uses Nitro as its server engine internally). Nitro is an internal dependency of Vinxi — not the layer TanStack Start surfaces in its own API or docs. A reader checking `package.json` or the TanStack Start docs would see `vinxi`, not `nitro`. Should read: "TanStack Router + Vite + Vinxi + server functions." 2. TanStack Start 1.x release date (line 26) — The accuracy note says it "reached a stable 1.x release earlier in the year" — in the context of "as of 2026", this implies a 2026 release. TanStack Start v1.0 shipped in 2024. The phrase should say something like "(stable since 2024)" rather than implying 2026. 3. `ssr: 'data-only'` as a code literal (lines 49, 104) — The string `'data-only'` appears twice as if it's an actual TanStack Start route config value. `ssr: false` is a real option; `ssr: 'data-only'` hasn't been verified against the TanStack Start 1.x API and may be an invented shorthand or conflation with another framework. If it's not a literal API value, it should be written in prose ("data-only mode") rather than as a backtick code literal. 4. Starter repo link (line 177) — `https://github.com/shakacode/react-on-rails-starter-tanstack\` should be confirmed to be a live, publicly accessible repo before the doc goes live. A 404 on the only external link in the doc would undermine the credibility of the whole page. Fairness / completeness gapsThese don't block merge but are worth considering given the doc's stated goal of "neutral architectural comparison":
|
|
Re-review dispositions (head Addressed:
Declined with rationale:
Beta phase ( |
…ion-eviction-test * origin/main: Make RSC Rspack doctor lazyCompilation warning honest about its limitation (#4249) docs: cross-link the TanStack Start comparison from the decision guide and Next.js RSC doc (#4254) docs: add "RoR Pro vs TanStack Start" architecture comparison (#4246) docs: add "React on Rails vs TanStack Start" to the decision guide (#4242)
…pool-warmup * origin/main: Docs: record RSC Rspack client refs investigation (#4269) Release train: release-forward-port re-homes changelog to [Unreleased] (#4257) Release train: add `release finish` promote + close-out scripts (#4258) Release train: /update-changelog release-vs-main target (#4256) Release train: add `release start` (auto-create release/X.Y.Z on rc cut) (#4255) Release train: ci-changes-detector classifies release-tooling paths (skip full matrix) (#4262) Fix release forward-port post-merge review findings (#4261) Make RSC Rspack doctor lazyCompilation warning honest about its limitation (#4249) docs: cross-link the TanStack Start comparison from the decision guide and Next.js RSC doc (#4254) docs: add "RoR Pro vs TanStack Start" architecture comparison (#4246) docs: add "React on Rails vs TanStack Start" to the decision guide (#4242)
…ession * origin/main: Docs: record RSC Rspack client refs investigation (#4269) Release train: release-forward-port re-homes changelog to [Unreleased] (#4257) Release train: add `release finish` promote + close-out scripts (#4258) Release train: /update-changelog release-vs-main target (#4256) Release train: add `release start` (auto-create release/X.Y.Z on rc cut) (#4255) Release train: ci-changes-detector classifies release-tooling paths (skip full matrix) (#4262) Fix release forward-port post-merge review findings (#4261) Make RSC Rspack doctor lazyCompilation warning honest about its limitation (#4249) docs: cross-link the TanStack Start comparison from the decision guide and Next.js RSC doc (#4254) docs: add "RoR Pro vs TanStack Start" architecture comparison (#4246) docs: add "React on Rails vs TanStack Start" to the decision guide (#4242)
…r-timing * origin/main: Docs: record RSC Rspack client refs investigation (#4269) Release train: release-forward-port re-homes changelog to [Unreleased] (#4257) Release train: add `release finish` promote + close-out scripts (#4258) Release train: /update-changelog release-vs-main target (#4256) Release train: add `release start` (auto-create release/X.Y.Z on rc cut) (#4255) Release train: ci-changes-detector classifies release-tooling paths (skip full matrix) (#4262) Fix release forward-port post-merge review findings (#4261) Make RSC Rspack doctor lazyCompilation warning honest about its limitation (#4249) docs: cross-link the TanStack Start comparison from the decision guide and Next.js RSC doc (#4254) docs: add "RoR Pro vs TanStack Start" architecture comparison (#4246) docs: add "React on Rails vs TanStack Start" to the decision guide (#4242)
What
Adds
docs/pro/react-server-components/tanstack-start-comparison.md— a dedicated architecture comparison of React on Rails Pro and TanStack Start, paralleling the merged RSC vs. Next.js doc (#4158).It sits next to the Next.js comparison in the RSC docs section but takes a different axis: the Next.js doc compares two RSC implementations, whereas TanStack Start is client-first rather than RSC-first — so this doc compares two ways to own the full stack.
Companion to the decision-guide section in #4242 (that's the short "which do I pick" entry; this is the deep architecture explainer it can point to).
Framing (calibrated to mid-2026)
Gates
npx prettier@3.6.2 --write✓node script/generate-llms-full.mjs✓ (llms-full.txt+llms-full-pro.txtregenerated)script/check-docs-sidebar✓ (registered indocs/sidebars.tsnext tonextjs-comparison)lychee✓ 8/8 OK, 0 errors (only external link is the starter repo; TanStack Start is described conceptually with no external link, matching the Next.js doc's precedent)Note
Independent of #4242 (different files), so they can merge in any order.
🤖 Generated with Claude Code
Summary by CodeRabbit