From 74a3d61539adc442ab2f27e41eb69386e521aaed Mon Sep 17 00:00:00 2001
From: Claude
Date: Fri, 27 Feb 2026 02:52:14 +0000
Subject: [PATCH 1/2] docs: add RSC sub-category to Learn navigation
Group the two RSC-related pages (React Server Components and RSC with
Route Features) under a new /learn/rsc sub-category, matching the
existing SSR sub-category pattern. Update all cross-references.
https://claude.ai/code/session_01CbbEGpCjgSeZWhJ8UTcWgL
---
packages/docs/src/App.tsx | 26 ++++++++------
packages/docs/src/pages/ApiUtilitiesPage.tsx | 9 +++--
packages/docs/src/pages/HomePage.tsx | 2 +-
packages/docs/src/pages/LearnIndexPage.tsx | 36 +++++++++-----------
packages/docs/src/pages/LearnPage.tsx | 11 +++---
packages/docs/src/pages/LearnRscPage.tsx | 4 +--
packages/docs/src/pages/LearnSsgPage.tsx | 8 ++---
7 files changed, 48 insertions(+), 48 deletions(-)
diff --git a/packages/docs/src/App.tsx b/packages/docs/src/App.tsx
index bb5be45..4c028fa 100644
--- a/packages/docs/src/App.tsx
+++ b/packages/docs/src/App.tsx
@@ -182,16 +182,22 @@ export const routes = [
],
}),
route({
- path: "/react-server-components",
- component: defer(, {
- name: "LearnRscPage",
- }),
- }),
- route({
- path: "/route-definitions",
- component: defer(, {
- name: "LearnRouteDefinitionsPage",
- }),
+ path: "/rsc",
+ component: ,
+ children: [
+ route({
+ path: "/",
+ component: defer(, {
+ name: "LearnRscPage",
+ }),
+ }),
+ route({
+ path: "/route-features",
+ component: defer(, {
+ name: "LearnRouteDefinitionsPage",
+ }),
+ }),
+ ],
}),
route({
path: "/actions",
diff --git a/packages/docs/src/pages/ApiUtilitiesPage.tsx b/packages/docs/src/pages/ApiUtilitiesPage.tsx
index 7bb5f49..ea4f8a7 100644
--- a/packages/docs/src/pages/ApiUtilitiesPage.tsx
+++ b/packages/docs/src/pages/ApiUtilitiesPage.tsx
@@ -349,7 +349,7 @@ const routes = [
bindRoute - Binds a component to a partial route
definition (see{" "}
- Two-Phase Route Definitions)
+ Two-Phase Route Definitions)
Types: ActionArgs, LoaderArgs,{" "}
@@ -363,10 +363,9 @@ const routes = [
, and hooks, use the main @funstack/router entry point.
- See the{" "}
- React Server Components{" "}
- guide for a full walkthrough of using the server entry point, and the{" "}
- Two-Phase Route Definitions{" "}
+ See the React Server Components guide for a
+ full walkthrough of using the server entry point, and the{" "}
+ Two-Phase Route Definitions{" "}
guide for using bindRoute() to split route definitions
across the RSC boundary.
diff --git a/packages/docs/src/pages/HomePage.tsx b/packages/docs/src/pages/HomePage.tsx
index ade5a5b..b6d4673 100644
--- a/packages/docs/src/pages/HomePage.tsx
+++ b/packages/docs/src/pages/HomePage.tsx
@@ -108,7 +108,7 @@ export function HomePage() {
RSC Compatible
Designed to work with React Server Components.{" "}
- Learn more
+ Learn more
diff --git a/packages/docs/src/pages/LearnIndexPage.tsx b/packages/docs/src/pages/LearnIndexPage.tsx
index f8c8c87..e158cb3 100644
--- a/packages/docs/src/pages/LearnIndexPage.tsx
+++ b/packages/docs/src/pages/LearnIndexPage.tsx
@@ -72,27 +72,25 @@ export function LearnIndexPage() {
-
-
- Learn how to use FUNSTACK Router with React Server Components. Define
- routes in server modules using the{" "}
- @funstack/router/server entry point and keep your client
- bundle lean by separating route definitions from runtime router code.
-
-
-
-
+ React Server Components
- Use loaders, typed hooks (useRouteParams,{" "}
- useRouteData, useRouteState), and navigation
- state alongside React Server Components. This guide shows how to split
- route definitions across the server/client boundary using{" "}
- bindRoute() so client components get full type safety.
+ FUNSTACK Router is designed to work with React Server Components.
+ These guides cover how to define routes in server modules and use
+ route features alongside RSC:
+
+ -
+ React Server Components — define
+ routes in server modules using the{" "}
+
@funstack/router/server entry point and keep your
+ client bundle lean
+
+ -
+ RSC with Route Features{" "}
+ — use loaders, typed hooks, and navigation state alongside RSC
+ by splitting route definitions with
bindRoute()
+
+
diff --git a/packages/docs/src/pages/LearnPage.tsx b/packages/docs/src/pages/LearnPage.tsx
index 74316aa..38eefeb 100644
--- a/packages/docs/src/pages/LearnPage.tsx
+++ b/packages/docs/src/pages/LearnPage.tsx
@@ -31,12 +31,11 @@ const learnNavItems: NavEntry[] = [
],
},
{
- path: "/learn/react-server-components",
- label: "React Server Components",
- },
- {
- path: "/learn/route-definitions",
- label: "RSC with Route Features",
+ label: "RSC",
+ items: [
+ { path: "/learn/rsc", label: "React Server Components" },
+ { path: "/learn/rsc/route-features", label: "RSC with Route Features" },
+ ],
},
{ path: "/learn/actions", label: "Form Actions" },
{ path: "/learn/transitions", label: "Transitions" },
diff --git a/packages/docs/src/pages/LearnRscPage.tsx b/packages/docs/src/pages/LearnRscPage.tsx
index 7392b21..63144be 100644
--- a/packages/docs/src/pages/LearnRscPage.tsx
+++ b/packages/docs/src/pages/LearnRscPage.tsx
@@ -271,8 +271,8 @@ export default function App() {
For type-safe hooks in client components, see the{" "}
- RSC with Route Features guide
- which explains how to split route definitions across the
+ RSC with Route Features{" "}
+ guide which explains how to split route definitions across the
server/client boundary
diff --git a/packages/docs/src/pages/LearnSsgPage.tsx b/packages/docs/src/pages/LearnSsgPage.tsx
index fc9787c..35dc88a 100644
--- a/packages/docs/src/pages/LearnSsgPage.tsx
+++ b/packages/docs/src/pages/LearnSsgPage.tsx
@@ -103,11 +103,9 @@ export function LearnSsgPage() {
If you only need loaders to run at build time (not on the client),
- consider using{" "}
- React Server Components{" "}
- with SSG. RSC lets you fetch data on the server during the build and
- send the result as static HTML, without shipping loader code to the
- client.
+ consider using React Server Components with
+ SSG. RSC lets you fetch data on the server during the build and send
+ the result as static HTML, without shipping loader code to the client.
From 6bc241814ad5b2eef453b20642d569342a8338dd Mon Sep 17 00:00:00 2001
From: Claude
Date: Fri, 27 Feb 2026 03:07:34 +0000
Subject: [PATCH 2/2] docs: move Actions and Transitions above SSR/RSC
subcategories in nav
https://claude.ai/code/session_01CbbEGpCjgSeZWhJ8UTcWgL
---
packages/docs/src/pages/LearnPage.tsx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/packages/docs/src/pages/LearnPage.tsx b/packages/docs/src/pages/LearnPage.tsx
index 38eefeb..4714339 100644
--- a/packages/docs/src/pages/LearnPage.tsx
+++ b/packages/docs/src/pages/LearnPage.tsx
@@ -19,6 +19,8 @@ const learnNavItems: NavEntry[] = [
{ path: "/learn/navigation-api", label: "Navigation API" },
{ path: "/learn/nested-routes", label: "Nested Routes" },
{ path: "/learn/type-safety", label: "Type Safety" },
+ { path: "/learn/actions", label: "Form Actions" },
+ { path: "/learn/transitions", label: "Transitions" },
{
label: "SSR",
items: [
@@ -37,8 +39,6 @@ const learnNavItems: NavEntry[] = [
{ path: "/learn/rsc/route-features", label: "RSC with Route Features" },
],
},
- { path: "/learn/actions", label: "Form Actions" },
- { path: "/learn/transitions", label: "Transitions" },
];
function isNavGroup(entry: NavEntry): entry is NavGroup {