React on Rails Performance Demo
Performance Evidence

React Server Components Performance Every number, linked to the report that proves it.

24 independent performance audits across every page type. Mobile uses real-world slow network conditions; desktop uses standard browser settings. Every number links to its source report — nothing is cherry-picked.

At a Glance

Performance score, every page, every variant

Lighthouse categories.performance.score × 100. Click any score to open that exact report; use strategy links to open the measured app variants.

Feature Strategy SSR Client RSC RSC vs SSR
Blog Post
/blog
desktop
SSR · Client · RSC
70 70 99 +29
mobile
SSR · Client · RSC
72 72 97 +25
Product Page
/product
desktop
SSR · Client · RSC
99 100 100 +1
mobile
SSR · Client · RSC
73 98 98 +25
Restaurant Detail
/restaurant/1
desktop
SSR · Client · RSC
84 83 98 +14
mobile
SSR · Client · RSC
75 66 88 +13
Product Search
/product-search
desktop
SSR · Client · RSC
96 97 98 +2
mobile
SSR · Client · RSC
98 78 99 +1

Color: ≥ 90   50–89   < 50

30%

Blocking Time has the biggest impact on Google's performance score

It measures how long users wait before they can tap, scroll, or type — and it accounts for 30% of the score, more than any other metric. This is why RSC pages often score higher even when other metrics are similar: less JavaScript means users can interact almost immediately.

TBT: 30%
LCP: 25%
CLS: 25%
FCP: 10%
SI: 10%
Demo 1 of 4

Blog Post

Markdown-heavy article with code blocks. Traditional approaches force the user's browser to download ~1 MB of processing libraries. RSC does that processing on the server and only sends the finished result &mdash; dramatically less data for users to download.

Desktop · unthrottled

Tap any number to open the report — the same JSON Lighthouse generated for that exact run.

SSR Client RSC
Score 70 70 99
FCP (first paint) 793 ms 701 ms 385 ms
LCP (main content visible) 793 ms 701 ms 413 ms
TBT (blocking time) 1.19 s 1.29 s 0 ms
Speed Index (perceived speed) 793 ms 1.07 s 1.29 s
Bootup (JS processing) 1.4 s 1.65 s 75 ms
Transfer (data to user) 419 KB 427 KB 128 KB

Mobile · Slow 4G + 4× CPU

Tap any number to open the report — the same JSON Lighthouse generated for that exact run.

SSR Client RSC
Score 72 72 97
FCP (first paint) 1.43 s 1.42 s 1.4 s
LCP (main content visible) 1.43 s 1.42 s 1.46 s
TBT (blocking time) 1.95 s 2.06 s 0 ms
Speed Index (perceived speed) 2.72 s 1.96 s 4.43 s
Bootup (JS processing) 2.0 s 2.13 s 63 ms
Transfer (data to user) 419 KB 427 KB 127 KB

What ships to the client (desktop)

Open per-chunk breakdown →
SSR 419 KB
Client 427 KB
RSC 128 KB · 30% of SSR
Demo 2 of 4

Product Page

E-commerce page with product specs, reviews, and multi-currency pricing. Traditional approaches run heavy formatting libraries in the user's browser. RSC pre-renders everything server-side, sending only the finished page.

Desktop · unthrottled

Tap any number to open the report — the same JSON Lighthouse generated for that exact run.

SSR Client RSC
Score 99 100 100
FCP (first paint) 391 ms 458 ms 373 ms
LCP (main content visible) 682 ms 583 ms 563 ms
TBT (blocking time) 90 ms 69 ms 0 ms
Speed Index (perceived speed) 898 ms 503 ms 785 ms
Bootup (JS processing) 342 ms 314 ms 82 ms
Transfer (data to user) 801 KB 809 KB 397 KB

Mobile · Slow 4G + 4× CPU

Tap any number to open the report — the same JSON Lighthouse generated for that exact run.

SSR Client RSC
Score 73 98 98
FCP (first paint) 3.71 s 1.24 s 1.42 s
LCP (main content visible) 4.98 s 2.11 s 2.25 s
TBT (blocking time) 69 ms 104 ms 0 ms
Speed Index (perceived speed) 3.71 s 1.24 s 1.6 s
Bootup (JS processing) 291 ms 391 ms 105 ms
Transfer (data to user) 801 KB 809 KB 397 KB

What ships to the client (desktop)

Open per-chunk breakdown →
SSR 801 KB
Client 809 KB
RSC 397 KB · 50% of SSR
Demo 3 of 4

Restaurant Detail

Long-form bio, 80-item menu with descriptions and pricing, 40 review threads. The largest content payload of the four pages &mdash; and exactly where RSC's server-side processing advantage is most visible.

Desktop · unthrottled

Tap any number to open the report — the same JSON Lighthouse generated for that exact run.

SSR Client RSC
Score 84 83 98
FCP (first paint) 337 ms 414 ms 441 ms
LCP (main content visible) 956 ms 1.19 s 912 ms
TBT (blocking time) 344 ms 335 ms 11 ms
Speed Index (perceived speed) 875 ms 730 ms 1.28 s
Bootup (JS processing) 561 ms 642 ms 168 ms
Transfer (data to user) 791 KB 782 KB 425 KB

Mobile · Slow 4G + 4× CPU

Tap any number to open the report — the same JSON Lighthouse generated for that exact run.

SSR Client RSC
Score 75 66 88
FCP (first paint) 1.35 s 3.73 s 1.27 s
LCP (main content visible) 4.67 s 5.41 s 3.33 s
TBT (blocking time) 313 ms 277 ms 223 ms
Speed Index (perceived speed) 3.24 s 3.73 s 2.8 s
Bootup (JS processing) 803 ms 533 ms 230 ms
Transfer (data to user) 743 KB 732 KB 365 KB

What ships to the client (desktop)

Open per-chunk breakdown →
SSR 791 KB
Client 782 KB
RSC 425 KB · 54% of SSR
The Pattern

What your users no longer have to download

Every number below links to the actual bundle evidence — the real bytes that RSC removes from what users' browsers must process.

Markdown stack
~1 MB

Content formatting libraries used for blog posts, product specs, and restaurant bios. RSC processes them on the server — users download none of this.

See Blog SSR's markdown-libs-…js chunk →
Currency formatting
~30 KB

Price formatting libraries for multi-currency displays in product and restaurant pages. The server formats prices once; users receive ready-to-display text.

See Product SSR's vendor chunks →
Component code
~200–400 KB

Traditional approaches send the rendering code for every page section to the browser. RSC only sends the code for elements that need to be interactive — buttons, forms, and dynamic UI.

See Restaurant SSR's entry pack →
Methodology

How these numbers were measured

Tool

Lighthouse 12 — the same engine PageSpeed Insights uses. Each route was loaded fresh in headless Chromium; metrics are the standard Lighthouse v12 weights applied to FCP, LCP, TBT, CLS, and Speed Index.

Conditions

  • Mobile: Slow 4G simulation (1.6 Mbps down, 750 Kbps up, 150 ms RTT) + 4× CPU throttle. Same as PSI mobile.
  • Desktop: 1350×940 viewport, no network throttle, 1× CPU. Same as PSI desktop.

Pages were warmed

Each route was hit twice via curl before the audit ran, so the first-request DB cold-cache penalty was excluded. Lighthouse then performed its own load with a clean Chrome profile.

Reproduce

Every report under /lighthouse-reports/ can be re-opened in Lighthouse Viewer by uploading its JSON. After deploy, run any URL through pagespeed.web.dev to compare with field-condition equivalent.

Verify Independently

Don't take our word for it

After the production deploy, run any of the deployed pages through external tooling. Lighthouse-scored numbers should track the local-build numbers above to within ±5 points (variance from network/CDN conditions).