Skip to content

Commit 51eefd6

Browse files
authored
[codex] Surface public RSC performance demo (#104)
* Surface public RSC performance demo * Use href for external RSC path card
1 parent f14cc13 commit 51eefd6

3 files changed

Lines changed: 51 additions & 7 deletions

File tree

prototypes/docusaurus/sidebars.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ import type { SidebarsConfig } from '@docusaurus/plugin-content-docs';
66
// - deployment/troubleshooting-when-using-webpacker
77
// - misc/asset-pipeline
88
//
9+
// URL-compatibility stubs (redirect to a current, live page):
10+
// - pro/home-pro (→ pro/react-on-rails-pro)
11+
//
912
// Contributing/Resources pages (linked from introduction.md instead of sidebar):
1013
// - misc/doctrine
1114
// - misc/style
@@ -24,6 +27,7 @@ const sidebars: SidebarsConfig = {
2427
collapsed: false,
2528
items: [
2629
'getting-started/quick-start',
30+
'getting-started/examples-and-references',
2731
'getting-started/create-react-on-rails-app',
2832
'getting-started/tutorial',
2933
'getting-started/installation-into-an-existing-rails-app',
@@ -172,6 +176,7 @@ const sidebars: SidebarsConfig = {
172176
type: 'category',
173177
label: 'Migration Guides',
174178
items: [
179+
'migrating/example-migrations',
175180
'migrating/migrating-from-react-rails',
176181
'migrating/migrating-from-vite-rails',
177182
'migrating/migrating-from-webpack-to-rspack',
@@ -201,6 +206,7 @@ const sidebars: SidebarsConfig = {
201206
link: { type: 'doc', id: 'pro/react-server-components/index' },
202207
items: [
203208
'pro/react-server-components/purpose-and-benefits',
209+
'pro/react-server-components/success-stories',
204210
'pro/react-server-components/how-react-server-components-work',
205211
'pro/react-server-components/rendering-flow',
206212
'pro/react-server-components/tutorial',
@@ -211,6 +217,7 @@ const sidebars: SidebarsConfig = {
211217
'pro/react-server-components/selective-hydration-in-streamed-components',
212218
'pro/react-server-components/flight-protocol-syntax',
213219
'pro/react-server-components/upgrading-existing-pro-app',
220+
'pro/react-server-components/rspack-compatibility',
214221
'pro/react-server-components/glossary',
215222
{
216223
type: 'category',
@@ -221,6 +228,7 @@ const sidebars: SidebarsConfig = {
221228
'migrating/rsc-component-patterns',
222229
'migrating/rsc-context-and-state',
223230
'migrating/rsc-data-fetching',
231+
'migrating/rsc-http-response-patterns',
224232
'migrating/rsc-third-party-libs',
225233
'migrating/rsc-troubleshooting',
226234
'migrating/rsc-flight-payload',

prototypes/docusaurus/src/pages/examples.tsx

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,31 +5,46 @@ import Layout from '@theme/Layout';
55
import {docsRoutes} from '../constants/docsRoutes';
66
import styles from './examples.module.css';
77

8-
const evaluationPaths = [
8+
type EvaluationPath = {
9+
eyebrow: string;
10+
title: string;
11+
description: string;
12+
cta: string;
13+
} & ({to: string; href?: never} | {href: string; to?: never});
14+
15+
const evaluationPaths: EvaluationPath[] = [
916
{
1017
eyebrow: 'Evaluator path',
1118
title: 'Compare setup approaches',
1219
description:
1320
'Start with the docs landing page to choose between new app setup, existing app install, migration, or Pro evaluation.',
14-
href: docsRoutes.docsGuide,
21+
to: docsRoutes.docsGuide,
1522
cta: 'Open the docs guide',
1623
},
1724
{
1825
eyebrow: 'Migration path',
1926
title: 'Move from react-rails',
2027
description:
2128
'Follow a migration sequence validated against a real open-source example app instead of reconstructing it from old guides.',
22-
href: docsRoutes.migrateFromReactRails,
29+
to: docsRoutes.migrateFromReactRails,
2330
cta: 'Use the react-rails guide',
2431
},
2532
{
2633
eyebrow: 'Upgrade path',
2734
title: 'Move from OSS to Pro',
2835
description:
2936
'If your current app needs more SSR throughput or RSC support, compare OSS and Pro before adding the Pro package.',
30-
href: docsRoutes.ossVsPro,
37+
to: docsRoutes.ossVsPro,
3138
cta: 'Compare OSS and Pro',
3239
},
40+
{
41+
eyebrow: 'RSC proof path',
42+
title: 'Inspect the RSC performance demo',
43+
description:
44+
'Open the LocalHub benchmark dashboard with Lighthouse reports, bundle-size evidence, and SSR/client/RSC comparisons.',
45+
href: 'https://rsc.reactonrails.com/search-performance',
46+
cta: 'Open RSC benchmark',
47+
},
3348
];
3449

3550
const exampleApps = [
@@ -51,6 +66,12 @@ const exampleApps = [
5166
'Official Vite Rails sample app used to document migration preflight and dependency lockfile issues.',
5267
href: 'https://github.com/ElMassimo/vite_ruby/tree/main/examples/rails',
5368
},
69+
{
70+
title: 'react-on-rails-demo-marketplace-rsc',
71+
description:
72+
'Public React on Rails Pro + RSC marketplace demo behind the LocalHub Lighthouse and bundle-size comparisons.',
73+
href: 'https://github.com/shakacode/react-on-rails-demo-marketplace-rsc',
74+
},
5475
];
5576

5677
export default function ExamplesPage(): ReactNode {
@@ -79,7 +100,10 @@ export default function ExamplesPage(): ReactNode {
79100
<p className={styles.cardEyebrow}>{path.eyebrow}</p>
80101
<h3>{path.title}</h3>
81102
<p>{path.description}</p>
82-
<Link className={styles.cardLink} to={path.href}>
103+
<Link
104+
className={styles.cardLink}
105+
{...('href' in path ? {href: path.href} : {to: path.to})}
106+
>
83107
{path.cta}
84108
</Link>
85109
</article>
@@ -90,7 +114,7 @@ export default function ExamplesPage(): ReactNode {
90114
<section className="container">
91115
<div className={styles.sectionHeader}>
92116
<p className={styles.sectionEyebrow}>Reference repos</p>
93-
<h2>Open-source apps that map to the docs.</h2>
117+
<h2>Public apps and demos that map to the docs.</h2>
94118
</div>
95119
<div className={styles.grid}>
96120
{exampleApps.map((app) => (

prototypes/docusaurus/src/pages/pro.tsx

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,11 @@ const featureRows = [
4747
oss: 'Docs only',
4848
pro: 'Included',
4949
},
50+
{
51+
feature: 'Public RSC demo with Lighthouse and bundle evidence',
52+
oss: 'View-only',
53+
pro: 'Included implementation patterns',
54+
},
5055
{
5156
feature: 'Support access with ShakaCode maintainers',
5257
oss: 'Community channels',
@@ -76,6 +81,11 @@ export default function ProPage(): ReactNode {
7681
to={docsRoutes.proOverview}>
7782
Open Pro docs overview
7883
</Link>
84+
<Link
85+
className="button button--secondary button--lg"
86+
href="https://rsc.reactonrails.com/search-performance">
87+
View RSC performance demo
88+
</Link>
7989
<Link
8090
className="button button--secondary button--lg"
8191
href="https://www.shakacode.com/react-on-rails-pro/">
@@ -144,7 +154,9 @@ export default function ProPage(): ReactNode {
144154
</div>
145155
<p className={styles.note}>
146156
Need pricing, implementation guidance, or a free-license discussion? Visit{' '}
147-
<a href="/docs/pro">the Pro docs landing page</a>.
157+
<a href="/docs/pro">the Pro docs landing page</a>. Want proof first?
158+
Open the{' '}
159+
<a href="https://rsc.reactonrails.com/search-performance">RSC performance dashboard</a>.
148160
</p>
149161
</section>
150162
</main>

0 commit comments

Comments
 (0)