Run Time benchmarks use purpose-built apps; see the Run Time methodology for setup details.
These CSR browser performance tests use Lighthouse to measure paint timings and a controlled navigation interaction.
Methodology: Client Side Rendered Tests (Lighthouse) .
Some frameworks have been moved off their golden path to make client side tests
fair when comparing. See the methodology link above for the full details.
Client First Paint (Lighthouse) Comparison Variance Over time Table
Client First Paint (Lighthouse) data Framework Milliseconds Astro 89.00 ms Pracht 97.00 ms SolidStart 100.00 ms Solid 2.0 108.00 ms SvelteKit 126.00 ms TanStack Start 131.00 ms Nuxt 163.00 ms React Router 182.00 ms Next.js 344.00 ms
Client First Paint (Lighthouse) data Framework Milliseconds Astro 89.00 ms Pracht 97.00 ms SolidStart 100.00 ms Solid 2.0 108.00 ms SvelteKit 126.00 ms TanStack Start 131.00 ms Nuxt 163.00 ms React Router 182.00 ms Next.js 344.00 ms
Astro Next.js Nuxt Pracht React Router Solid 2.0 SolidStart SvelteKit TanStack Start
Client First Paint (Lighthouse) by month, using the version current on the first of each month, then the latest results Framework Dec 2025 Jan 2026 Feb 2026 Mar 2026 Apr 2026 May 2026 Jun 2026 Jul 2026 Aug 2026 Sep 2026 Oct 2026 Nov 2026 Latest Astro — — — — — — — — 108.00 ms (v7.1.6) 99.50 ms (v7.2.10) 99.50 ms (v7.2.10) 89.00 ms (v7.4.2) 89.00 ms (v7.4.2) Next.js — 339.50 ms (v16.1.1) 339.50 ms (v16.1.1) 339.50 ms (v16.1.1) 339.50 ms (v16.1.1) 339.50 ms (v16.1.1) 339.50 ms (v16.1.1) 339.50 ms (v16.1.1) 342.00 ms (v16.2.12) 342.00 ms (v16.2.12) 340.00 ms (v16.3.8) 344.00 ms (v16.4.3) 344.00 ms (v16.4.3) Nuxt — 156.00 ms (v4.2.2) 156.00 ms (v4.2.2) 159.00 ms (v4.3.1) 159.00 ms (v4.3.1) 159.00 ms (v4.3.1) 159.00 ms (v4.3.1) 161.50 ms (v4.4.8) 161.50 ms (v4.4.8) 163.50 ms (v4.5.2) 163.50 ms (v4.5.2) 163.00 ms (v4.6.3) 163.00 ms (v4.6.3) Pracht — — — — — — — — — — 97.00 ms (v0.18.0) 97.00 ms (v0.18.0) 97.00 ms (v0.18.0) React Router — 163.00 ms (v7.11.0) 154.50 ms (v7.12.0) 154.50 ms (v7.12.0) 179.50 ms (v7.13.2) 160.50 ms (v7.14.2) 160.50 ms (v7.16.0) 160.50 ms (v7.16.0) 160.50 ms (v7.16.0) 160.50 ms (v7.16.0) 188.00 ms (v8.4.0) 182.00 ms (v8.5.1) 182.00 ms (v8.5.1) Solid 2.0 — — — — — — — — — — — 108.00 ms (v2.0.0-rc.21) 108.00 ms (v2.0.0-rc.21) SolidStart — — — — — — — — — — — 100.00 ms (v2.1.0) 100.00 ms (v2.1.0) SvelteKit — — — — 106.00 ms (v2.55.0) 126.00 ms (v2.58.0) 112.50 ms (v2.61.1) 90.50 ms (v2.68.0) 105.00 ms (v2.69.3) 100.50 ms (v2.70.3) 100.50 ms (v2.70.3) 126.00 ms (v3.1.0) 126.00 ms (v3.1.0) TanStack Start — 147.00 ms (v1.145.3) 133.50 ms (v1.156.0) 132.00 ms (v1.162.9) 137.00 ms (v1.166.18) 137.00 ms (v1.166.18) 117.00 ms (v1.167.65) 117.00 ms (v1.167.65) 117.00 ms (v1.167.65) 117.00 ms (v1.167.65) 127.00 ms (v1.168.59) 131.00 ms (v1.169.4) 131.00 ms (v1.169.4)
Client FCP (Lighthouse) Comparison Variance Over time Table
Client FCP (Lighthouse) data Framework Milliseconds Astro 88.76 ms Pracht 96.85 ms SolidStart 100.36 ms Solid 2.0 108.45 ms SvelteKit 126.39 ms TanStack Start 130.75 ms Nuxt 163.30 ms React Router 182.45 ms Next.js 343.58 ms
Client FCP (Lighthouse) data Framework Milliseconds Astro 88.76 ms Pracht 96.85 ms SolidStart 100.36 ms Solid 2.0 108.45 ms SvelteKit 126.39 ms TanStack Start 130.75 ms Nuxt 163.30 ms React Router 182.45 ms Next.js 343.58 ms
Astro Next.js Nuxt Pracht React Router Solid 2.0 SolidStart SvelteKit TanStack Start
Client FCP (Lighthouse) by month, using the version current on the first of each month, then the latest results Framework Dec 2025 Jan 2026 Feb 2026 Mar 2026 Apr 2026 May 2026 Jun 2026 Jul 2026 Aug 2026 Sep 2026 Oct 2026 Nov 2026 Latest Astro — — — — — — — — 108.31 ms (v7.1.6) 99.70 ms (v7.2.10) 99.70 ms (v7.2.10) 88.76 ms (v7.4.2) 88.76 ms (v7.4.2) Next.js — 339.73 ms (v16.1.1) 339.73 ms (v16.1.1) 339.73 ms (v16.1.1) 339.73 ms (v16.1.1) 339.73 ms (v16.1.1) 339.73 ms (v16.1.1) 339.73 ms (v16.1.1) 341.85 ms (v16.2.12) 341.85 ms (v16.2.12) 340.00 ms (v16.3.8) 343.58 ms (v16.4.3) 343.58 ms (v16.4.3) Nuxt — 156.10 ms (v4.2.2) 156.10 ms (v4.2.2) 158.99 ms (v4.3.1) 158.99 ms (v4.3.1) 158.99 ms (v4.3.1) 158.99 ms (v4.3.1) 161.68 ms (v4.4.8) 161.68 ms (v4.4.8) 163.51 ms (v4.5.2) 163.51 ms (v4.5.2) 163.30 ms (v4.6.3) 163.30 ms (v4.6.3) Pracht — — — — — — — — — — 96.85 ms (v0.18.0) 96.85 ms (v0.18.0) 96.85 ms (v0.18.0) React Router — 162.89 ms (v7.11.0) 154.21 ms (v7.12.0) 154.21 ms (v7.12.0) 179.32 ms (v7.13.2) 160.22 ms (v7.14.2) 160.62 ms (v7.16.0) 160.62 ms (v7.16.0) 160.62 ms (v7.16.0) 160.62 ms (v7.16.0) 187.91 ms (v8.4.0) 182.45 ms (v8.5.1) 182.45 ms (v8.5.1) Solid 2.0 — — — — — — — — — — — 108.45 ms (v2.0.0-rc.21) 108.45 ms (v2.0.0-rc.21) SolidStart — — — — — — — — — — — 100.36 ms (v2.1.0) 100.36 ms (v2.1.0) SvelteKit — — — — 105.89 ms (v2.55.0) 125.97 ms (v2.58.0) 112.43 ms (v2.61.1) 90.66 ms (v2.68.0) 104.95 ms (v2.69.3) 100.63 ms (v2.70.3) 100.63 ms (v2.70.3) 126.39 ms (v3.1.0) 126.39 ms (v3.1.0) TanStack Start — 147.06 ms (v1.145.3) 133.63 ms (v1.156.0) 131.88 ms (v1.162.9) 137.04 ms (v1.166.18) 137.04 ms (v1.166.18) 116.88 ms (v1.167.65) 116.88 ms (v1.167.65) 116.88 ms (v1.167.65) 116.88 ms (v1.167.65) 127.01 ms (v1.168.59) 130.75 ms (v1.169.4) 130.75 ms (v1.169.4)
Interaction Breakdown (Lighthouse) Comparison Table
Total latency is split into the three consecutive phases reported by Lighthouse.
The input delay , which starts when the user initiates an interaction with the page, and ends when the event callbacks for the interaction begin to run. The processing duration , which consists of the time it takes for event callbacks to run to completion. The presentation delay , which is the time it takes for the browser to present the next frame which contains the visual result of the interaction. Input delay Processing duration Presentation delayInteraction Breakdown (Lighthouse) data Framework Input delay Processing duration Presentation delay Astro 1.88 ms 0.29 ms 0.00 ms Nuxt 1.17 ms 1.75 ms 7.92 ms Solid 2.0 0.81 ms 4.92 ms 7.44 ms Next.js 1.41 ms 5.33 ms 8.38 ms SolidStart 0.98 ms 2.78 ms 11.49 ms Pracht 0.77 ms 2.62 ms 13.50 ms SvelteKit 0.78 ms 2.07 ms 14.85 ms React Router 1.48 ms 3.04 ms 14.89 ms TanStack Start 1.54 ms 2.94 ms 17.36 ms
These SSR browser performance tests use Lighthouse to measure paint timings and a controlled navigation interaction.
Methodology: Server Side Rendered Tests (Lighthouse) .
Server First Paint (Lighthouse) Comparison Variance Over time Table
Server First Paint (Lighthouse) data Framework Milliseconds Astro 72.00 ms TanStack Start 81.00 ms Solid 2.0 83.00 ms SolidStart 83.00 ms SvelteKit 83.00 ms Pracht 86.00 ms Nuxt 99.00 ms Next.js 104.00 ms React Router 115.00 ms
Server First Paint (Lighthouse) data Framework Milliseconds Astro 72.00 ms TanStack Start 81.00 ms Solid 2.0 83.00 ms SolidStart 83.00 ms SvelteKit 83.00 ms Pracht 86.00 ms Nuxt 99.00 ms Next.js 104.00 ms React Router 115.00 ms
Astro Next.js Nuxt Pracht React Router Solid 2.0 SolidStart SvelteKit TanStack Start
Server First Paint (Lighthouse) by month, using the version current on the first of each month, then the latest results Framework Dec 2025 Jan 2026 Feb 2026 Mar 2026 Apr 2026 May 2026 Jun 2026 Jul 2026 Aug 2026 Sep 2026 Oct 2026 Nov 2026 Latest Astro — — — — — — — — 60.00 ms (v7.1.6) 64.50 ms (v7.2.10) 64.50 ms (v7.2.10) 72.00 ms (v7.4.2) 72.00 ms (v7.4.2) Next.js — 137.50 ms (v16.1.1) 137.50 ms (v16.1.1) 137.50 ms (v16.1.1) 137.50 ms (v16.1.1) 137.50 ms (v16.1.1) 137.50 ms (v16.1.1) 137.50 ms (v16.1.1) 124.00 ms (v16.2.12) 124.00 ms (v16.2.12) 127.00 ms (v16.3.8) 104.00 ms (v16.4.3) 104.00 ms (v16.4.3) Nuxt — 113.00 ms (v4.2.2) 113.00 ms (v4.2.2) 100.00 ms (v4.3.1) 100.00 ms (v4.3.1) 100.00 ms (v4.3.1) 100.00 ms (v4.3.1) 102.50 ms (v4.4.8) 102.50 ms (v4.4.8) 112.00 ms (v4.5.2) 112.00 ms (v4.5.2) 99.00 ms (v4.6.3) 99.00 ms (v4.6.3) Pracht — — — — — — — — — — 86.00 ms (v0.18.0) 86.00 ms (v0.18.0) 86.00 ms (v0.18.0) React Router — 121.50 ms (v7.11.0) 85.50 ms (v7.12.0) 85.50 ms (v7.12.0) 93.00 ms (v7.13.2) 121.00 ms (v7.14.2) 107.50 ms (v7.16.0) 107.50 ms (v7.16.0) 107.50 ms (v7.16.0) 107.50 ms (v7.16.0) 109.00 ms (v8.4.0) 115.00 ms (v8.5.1) 115.00 ms (v8.5.1) Solid 2.0 — — — — — — — — — — — 83.00 ms (v2.0.0-rc.21) 83.00 ms (v2.0.0-rc.21) SolidStart — — — — — — — — — — — 83.00 ms (v2.1.0) 83.00 ms (v2.1.0) SvelteKit — — — — 84.50 ms (v2.55.0) 115.50 ms (v2.58.0) 90.50 ms (v2.61.1) 77.00 ms (v2.68.0) 74.00 ms (v2.69.3) 75.00 ms (v2.70.3) 75.00 ms (v2.70.3) 83.00 ms (v3.1.0) 83.00 ms (v3.1.0) TanStack Start — 122.00 ms (v1.145.3) 160.00 ms (v1.156.0) 85.00 ms (v1.162.9) 91.00 ms (v1.166.18) 91.00 ms (v1.166.18) 99.00 ms (v1.167.65) 99.00 ms (v1.167.65) 99.00 ms (v1.167.65) 99.00 ms (v1.167.65) 81.00 ms (v1.168.59) 81.00 ms (v1.169.4) 81.00 ms (v1.169.4)
Server FCP (Lighthouse) Comparison Variance Over time Table
Server FCP (Lighthouse) data Framework Milliseconds Astro 72.28 ms TanStack Start 80.85 ms SolidStart 83.01 ms Solid 2.0 83.06 ms SvelteKit 83.13 ms Pracht 86.25 ms Nuxt 99.05 ms Next.js 104.10 ms React Router 114.55 ms
Server FCP (Lighthouse) data Framework Milliseconds Astro 72.28 ms TanStack Start 80.85 ms SolidStart 83.01 ms Solid 2.0 83.06 ms SvelteKit 83.13 ms Pracht 86.25 ms Nuxt 99.05 ms Next.js 104.10 ms React Router 114.55 ms
Astro Next.js Nuxt Pracht React Router Solid 2.0 SolidStart SvelteKit TanStack Start
Server FCP (Lighthouse) by month, using the version current on the first of each month, then the latest results Framework Dec 2025 Jan 2026 Feb 2026 Mar 2026 Apr 2026 May 2026 Jun 2026 Jul 2026 Aug 2026 Sep 2026 Oct 2026 Nov 2026 Latest Astro — — — — — — — — 59.71 ms (v7.1.6) 64.47 ms (v7.2.10) 64.47 ms (v7.2.10) 72.28 ms (v7.4.2) 72.28 ms (v7.4.2) Next.js — 137.55 ms (v16.1.1) 137.55 ms (v16.1.1) 137.55 ms (v16.1.1) 137.55 ms (v16.1.1) 137.55 ms (v16.1.1) 137.55 ms (v16.1.1) 137.55 ms (v16.1.1) 124.03 ms (v16.2.12) 124.03 ms (v16.2.12) 127.00 ms (v16.3.8) 104.10 ms (v16.4.3) 104.10 ms (v16.4.3) Nuxt — 113.30 ms (v4.2.2) 113.30 ms (v4.2.2) 100.22 ms (v4.3.1) 100.22 ms (v4.3.1) 100.22 ms (v4.3.1) 100.22 ms (v4.3.1) 102.12 ms (v4.4.8) 102.12 ms (v4.4.8) 112.00 ms (v4.5.2) 112.00 ms (v4.5.2) 99.05 ms (v4.6.3) 99.05 ms (v4.6.3) Pracht — — — — — — — — — — 86.25 ms (v0.18.0) 86.25 ms (v0.18.0) 86.25 ms (v0.18.0) React Router — 121.26 ms (v7.11.0) 85.31 ms (v7.12.0) 85.31 ms (v7.12.0) 93.31 ms (v7.13.2) 121.14 ms (v7.14.2) 107.70 ms (v7.16.0) 107.70 ms (v7.16.0) 107.70 ms (v7.16.0) 107.70 ms (v7.16.0) 109.15 ms (v8.4.0) 114.55 ms (v8.5.1) 114.55 ms (v8.5.1) Solid 2.0 — — — — — — — — — — — 83.06 ms (v2.0.0-rc.21) 83.06 ms (v2.0.0-rc.21) SolidStart — — — — — — — — — — — 83.01 ms (v2.1.0) 83.01 ms (v2.1.0) SvelteKit — — — — 84.64 ms (v2.55.0) 115.41 ms (v2.58.0) 90.37 ms (v2.61.1) 76.98 ms (v2.68.0) 74.05 ms (v2.69.3) 75.26 ms (v2.70.3) 75.26 ms (v2.70.3) 83.13 ms (v3.1.0) 83.13 ms (v3.1.0) TanStack Start — 122.33 ms (v1.145.3) 159.79 ms (v1.156.0) 84.67 ms (v1.162.9) 90.91 ms (v1.166.18) 90.91 ms (v1.166.18) 99.10 ms (v1.167.65) 99.10 ms (v1.167.65) 99.10 ms (v1.167.65) 99.10 ms (v1.167.65) 80.97 ms (v1.168.59) 80.85 ms (v1.169.4) 80.85 ms (v1.169.4)
Interaction Breakdown (Lighthouse) Comparison Table
Total latency is split into the three consecutive phases reported by Lighthouse.
The input delay , which starts when the user initiates an interaction with the page, and ends when the event callbacks for the interaction begin to run. The processing duration , which consists of the time it takes for event callbacks to run to completion. The presentation delay , which is the time it takes for the browser to present the next frame which contains the visual result of the interaction. Input delay Processing duration Presentation delayInteraction Breakdown (Lighthouse) data Framework Input delay Processing duration Presentation delay Astro 0.69 ms 0.24 ms 0.00 ms Nuxt 0.71 ms 1.30 ms 9.13 ms SolidStart 1.28 ms 2.23 ms 11.59 ms Solid 2.0 0.62 ms 4.53 ms 10.29 ms SvelteKit 0.82 ms 2.23 ms 14.37 ms Next.js 1.44 ms 4.58 ms 11.64 ms TanStack Start 1.36 ms 5.08 ms 11.46 ms React Router 1.84 ms 3.54 ms 15.06 ms Pracht 0.86 ms 2.17 ms 17.98 ms
Compare the resources transferred on a first visit to the same small, styled
landing page. Sizes include response headers; lower is better. Inline CSS and
JavaScript count toward HTML. Other includes images, media, fonts, and remaining
resources. See Methodology for collection details.
Initial Load: All Resources Comparison Table
Initial Load: All Resources data Framework HTML CSS JavaScript Other Astro 3.28 KB 0.00 KB 0.00 KB 0.00 KB Next.js 3.71 KB 1.05 KB 134.98 KB 0.00 KB Nuxt 4.67 KB 0.88 KB 66.20 KB 5.48 KB Pracht 1.19 KB 1.18 KB 19.06 KB 0.00 KB React Router 2.45 KB 1.00 KB 118.19 KB 0.00 KB SolidStart 2.65 KB 0.88 KB 30.26 KB 0.00 KB Solid 2.0 2.75 KB 0.80 KB 39.34 KB 0.00 KB SvelteKit 3.11 KB 0.86 KB 34.35 KB 0.00 KB TanStack Start 3.72 KB 0.88 KB 97.28 KB 0.00 KB
Initial Load: Excluding JavaScript Comparison Table
Initial Load: Excluding JavaScript data Framework HTML CSS Other Astro 3.28 KB 0.00 KB 0.00 KB Next.js 3.71 KB 1.05 KB 0.00 KB Nuxt 4.67 KB 0.88 KB 5.48 KB Pracht 1.19 KB 1.18 KB 0.00 KB React Router 2.45 KB 1.00 KB 0.00 KB SolidStart 2.65 KB 0.88 KB 0.00 KB Solid 2.0 2.75 KB 0.80 KB 0.00 KB SvelteKit 3.11 KB 0.86 KB 0.00 KB TanStack Start 3.72 KB 0.88 KB 0.00 KB
Methodology: Server Side Throughput Tests .
Measures how many requests each framework’s server handler can process per second when rendering a 1,000-row table, and how long each response takes. Requests bypass network overhead to focus on server rendering performance.
Ops/sec Comparison Variance Over time Table
Ops/sec data Framework Operations per second Baseline HTML 829 Astro 750 Pracht 589 Solid 2.0 458 SvelteKit 430 Nuxt 376 SolidStart 376 TanStack Start 359 React Router 350 Next.js 141
Ops/sec data Framework Operations per second Baseline HTML 829 Astro 750 Pracht 589 Solid 2.0 458 SvelteKit 430 Nuxt 376 SolidStart 376 TanStack Start 359 React Router 350 Next.js 141
Astro Baseline HTML Next.js Nuxt Pracht React Router Solid 2.0 SolidStart SvelteKit TanStack Start
Ops/sec by month, using the version current on the first of each month, then the latest results Framework Dec 2025 Jan 2026 Feb 2026 Mar 2026 Apr 2026 May 2026 Jun 2026 Jul 2026 Aug 2026 Sep 2026 Oct 2026 Nov 2026 Latest Astro — — — — — — — — — — — 750 (v7.4.2) 750 (v7.4.2) Baseline HTML — — — — — — — — — — — 829 (v24.22.1) 829 (v24.22.1) Next.js — — — — — — — — — — — 141 (v16.4.3) 141 (v16.4.3) Nuxt — — — — — — — — — — — 376 (v4.6.3) 376 (v4.6.3) Pracht — — — — — — — — — — 589 (v0.18.0) 589 (v0.18.0) 589 (v0.18.0) React Router — — — — — — — — — — 358 (v8.4.0) 350 (v8.5.1) 350 (v8.5.1) Solid 2.0 — — — — — — — — — — — 458 (v2.0.0-rc.21) 458 (v2.0.0-rc.21) SolidStart — — — — — — — — — — — 376 (v2.1.0) 376 (v2.1.0) SvelteKit — — — — — — — — — — — 430 (v3.1.0) 430 (v3.1.0) TanStack Start — — — — — — — — — — — 359 (v1.169.4) 359 (v1.169.4)
Body Size Comparison Over time Table
Body Size data Framework Kilobytes Baseline HTML 96.83 KB Astro 96.89 KB SvelteKit 184.29 KB Pracht 187.02 KB TanStack Start 192.78 KB Nuxt 201.80 KB Next.js 203.36 KB React Router 216.84 KB Solid 2.0 218.32 KB SolidStart 224.22 KB
Astro Baseline HTML Next.js Nuxt Pracht React Router Solid 2.0 SolidStart SvelteKit TanStack Start
Body Size by month, using the version current on the first of each month, then the latest results Framework Dec 2025 Jan 2026 Feb 2026 Mar 2026 Apr 2026 May 2026 Jun 2026 Jul 2026 Aug 2026 Sep 2026 Oct 2026 Nov 2026 Latest Astro — — — — — — — — — — — 96.89 KB (v7.4.2) 96.89 KB (v7.4.2) Baseline HTML — — — — — — — — — — — 96.83 KB (v24.22.1) 96.83 KB (v24.22.1) Next.js — — — — — — — — — — — 203.36 KB (v16.4.3) 203.36 KB (v16.4.3) Nuxt — — — — — — — — — — — 201.80 KB (v4.6.3) 201.80 KB (v4.6.3) Pracht — — — — — — — — — — 187.02 KB (v0.18.0) 187.02 KB (v0.18.0) 187.02 KB (v0.18.0) React Router — — — — — — — — — — 216.98 KB (v8.4.0) 216.84 KB (v8.5.1) 216.84 KB (v8.5.1) Solid 2.0 — — — — — — — — — — — 218.32 KB (v2.0.0-rc.21) 218.32 KB (v2.0.0-rc.21) SolidStart — — — — — — — — — — — 224.22 KB (v2.1.0) 224.22 KB (v2.1.0) SvelteKit — — — — — — — — — — — 184.29 KB (v3.1.0) 184.29 KB (v3.1.0) TanStack Start — — — — — — — — — — — 192.78 KB (v1.169.4) 192.78 KB (v1.169.4)
Median Latency Comparison Variance Over time Table
Median of measured run average latencies; not a pooled request-level median.
Median Latency data Framework Milliseconds Baseline HTML 1.22 ms Astro 1.45 ms Pracht 1.78 ms SvelteKit 2.36 ms Solid 2.0 2.55 ms SolidStart 2.74 ms Nuxt 2.75 ms TanStack Start 2.81 ms React Router 2.89 ms Next.js 7.44 ms
Median of measured run average latencies; not a pooled request-level median.
Median Latency data Framework Milliseconds Baseline HTML 1.22 ms Astro 1.45 ms Pracht 1.78 ms SvelteKit 2.36 ms Solid 2.0 2.55 ms SolidStart 2.74 ms Nuxt 2.75 ms TanStack Start 2.81 ms React Router 2.89 ms Next.js 7.44 ms
Median of measured run average latencies; not a pooled request-level median.
Astro Baseline HTML Next.js Nuxt Pracht React Router Solid 2.0 SolidStart SvelteKit TanStack Start
Median Latency by month, using the version current on the first of each month, then the latest results Framework Dec 2025 Jan 2026 Feb 2026 Mar 2026 Apr 2026 May 2026 Jun 2026 Jul 2026 Aug 2026 Sep 2026 Oct 2026 Nov 2026 Latest Astro — — — — — — — — — — — 1.45 ms (v7.4.2) 1.45 ms (v7.4.2) Baseline HTML — — — — — — — — — — — 1.22 ms (v24.22.1) 1.22 ms (v24.22.1) Next.js — — — — — — — — — — — 7.44 ms (v16.4.3) 7.44 ms (v16.4.3) Nuxt — — — — — — — — — — — 2.75 ms (v4.6.3) 2.75 ms (v4.6.3) Pracht — — — — — — — — — — 1.78 ms (v0.18.0) 1.78 ms (v0.18.0) 1.78 ms (v0.18.0) React Router — — — — — — — — — — 2.81 ms (v8.4.0) 2.89 ms (v8.5.1) 2.89 ms (v8.5.1) Solid 2.0 — — — — — — — — — — — 2.55 ms (v2.0.0-rc.21) 2.55 ms (v2.0.0-rc.21) SolidStart — — — — — — — — — — — 2.74 ms (v2.1.0) 2.74 ms (v2.1.0) SvelteKit — — — — — — — — — — — 2.36 ms (v3.1.0) 2.36 ms (v3.1.0) TanStack Start — — — — — — — — — — — 2.81 ms (v1.169.4) 2.81 ms (v1.169.4)
Methodology: SSR Load Test .
Measures server throughput and response latency as concurrent connections increase, with each request rendering a 1,000-row table.
This version uses ordinary <a> links to measure server rendering without the extra work of rendering framework router link components.
Compare it with the router link load test to see how framework router link components affect server rendering performance.
Comparison Table
Astro Baseline HTML Next.js Nuxt Pracht React Router Solid 2.0 SolidStart SvelteKit TanStack Start
P99 Latency by connections Framework 1 connection 5 connections 10 connections 25 connections 50 connections 100 connections 200 connections Astro 3.00 ms (v7.4.2) 6.00 ms (v7.4.2) 11.00 ms (v7.4.2) 29.00 ms (v7.4.2) 55.00 ms (v7.4.2) 112.00 ms (v7.4.2) 1636.00 ms (v7.4.2) Baseline HTML 3.00 ms (v24.22.1) 6.00 ms (v24.22.1) 9.00 ms (v24.22.1) 18.00 ms (v24.22.1) 36.00 ms (v24.22.1) 95.00 ms (v24.22.1) 263.00 ms (v24.22.1) Next.js 11.00 ms (v16.4.3) 38.00 ms (v16.4.3) 80.00 ms (v16.4.3) 170.00 ms (v16.4.3) 816.00 ms (v16.4.3) 3049.00 ms (v16.4.3) 4255.00 ms (v16.4.3) Nuxt 6.00 ms (v4.6.3) 15.00 ms (v4.6.3) 34.00 ms (v4.6.3) 76.00 ms (v4.6.3) 359.00 ms (v4.6.3) 2743.00 ms (v4.6.3) 2848.00 ms (v4.6.3) Pracht 3.00 ms (v0.18.0) 13.00 ms (v0.18.0) 19.00 ms (v0.18.0) 40.00 ms (v0.18.0) 121.00 ms (v0.18.0) 1110.00 ms (v0.18.0) 2945.00 ms (v0.18.0) React Router 5.00 ms (v8.5.1) 23.00 ms (v8.5.1) 45.00 ms (v8.5.1) 104.00 ms (v8.5.1) 564.00 ms (v8.5.1) 3339.00 ms (v8.5.1) 3492.00 ms (v8.5.1) Solid 2.0 8.00 ms (v2.0.0-rc.21) 19.00 ms (v2.0.0-rc.21) 34.00 ms (v2.0.0-rc.21) 78.00 ms (v2.0.0-rc.21) 464.00 ms (v2.0.0-rc.21) 2961.00 ms (v2.0.0-rc.21) 2979.00 ms (v2.0.0-rc.21) SolidStart 5.00 ms (v2.1.0) 17.00 ms (v2.1.0) 35.00 ms (v2.1.0) 90.00 ms (v2.1.0) 298.00 ms (v2.1.0) 2049.00 ms (v2.1.0) 2090.00 ms (v2.1.0) SvelteKit 4.00 ms (v3.1.0) 13.00 ms (v3.1.0) 28.00 ms (v3.1.0) 77.00 ms (v3.1.0) 180.00 ms (v3.1.0) 1963.00 ms (v3.1.0) 2157.00 ms (v3.1.0) TanStack Start 4.00 ms (v1.169.4) 21.00 ms (v1.169.4) 45.00 ms (v1.169.4) 111.00 ms (v1.169.4) 628.00 ms (v1.169.4) 2283.00 ms (v1.169.4) 2609.00 ms (v1.169.4)
Comparison Table
Astro Baseline HTML Next.js Nuxt Pracht React Router Solid 2.0 SolidStart SvelteKit TanStack Start
P90 Latency by connections Framework 1 connection 5 connections 10 connections 25 connections 50 connections 100 connections 200 connections Astro 1.00 ms (v7.4.2) 4.00 ms (v7.4.2) 7.00 ms (v7.4.2) 18.00 ms (v7.4.2) 34.00 ms (v7.4.2) 66.00 ms (v7.4.2) 113.00 ms (v7.4.2) Baseline HTML 1.00 ms (v24.22.1) 3.00 ms (v24.22.1) 6.00 ms (v24.22.1) 16.00 ms (v24.22.1) 30.00 ms (v24.22.1) 71.00 ms (v24.22.1) 153.00 ms (v24.22.1) Next.js 9.00 ms (v16.4.3) 29.00 ms (v16.4.3) 56.00 ms (v16.4.3) 124.00 ms (v16.4.3) 255.00 ms (v16.4.3) 479.00 ms (v16.4.3) 546.00 ms (v16.4.3) Nuxt 3.00 ms (v4.6.3) 12.00 ms (v4.6.3) 21.00 ms (v4.6.3) 47.00 ms (v4.6.3) 113.00 ms (v4.6.3) 192.00 ms (v4.6.3) 186.00 ms (v4.6.3) Pracht 2.00 ms (v0.18.0) 9.00 ms (v0.18.0) 16.00 ms (v0.18.0) 38.00 ms (v0.18.0) 77.00 ms (v0.18.0) 150.00 ms (v0.18.0) 212.00 ms (v0.18.0) React Router 4.00 ms (v8.5.1) 16.00 ms (v8.5.1) 31.00 ms (v8.5.1) 75.00 ms (v8.5.1) 148.00 ms (v8.5.1) 280.00 ms (v8.5.1) 279.00 ms (v8.5.1) Solid 2.0 3.00 ms (v2.0.0-rc.21) 15.00 ms (v2.0.0-rc.21) 26.00 ms (v2.0.0-rc.21) 64.00 ms (v2.0.0-rc.21) 122.00 ms (v2.0.0-rc.21) 198.00 ms (v2.0.0-rc.21) 200.00 ms (v2.0.0-rc.21) SolidStart 2.00 ms (v2.1.0) 11.00 ms (v2.1.0) 23.00 ms (v2.1.0) 62.00 ms (v2.1.0) 134.00 ms (v2.1.0) 167.00 ms (v2.1.0) 157.00 ms (v2.1.0) SvelteKit 2.00 ms (v3.1.0) 9.00 ms (v3.1.0) 19.00 ms (v3.1.0) 55.00 ms (v3.1.0) 124.00 ms (v3.1.0) 195.00 ms (v3.1.0) 187.00 ms (v3.1.0) TanStack Start 3.00 ms (v1.169.4) 14.00 ms (v1.169.4) 30.00 ms (v1.169.4) 83.00 ms (v1.169.4) 174.00 ms (v1.169.4) 250.00 ms (v1.169.4) 245.00 ms (v1.169.4)
Comparison Table
Astro Baseline HTML Next.js Nuxt Pracht React Router Solid 2.0 SolidStart SvelteKit TanStack Start
P75 Latency by connections Framework 1 connection 5 connections 10 connections 25 connections 50 connections 100 connections 200 connections Astro 1.00 ms (v7.4.2) 4.00 ms (v7.4.2) 7.00 ms (v7.4.2) 17.00 ms (v7.4.2) 33.00 ms (v7.4.2) 64.00 ms (v7.4.2) 101.00 ms (v7.4.2) Baseline HTML 1.00 ms (v24.22.1) 3.00 ms (v24.22.1) 6.00 ms (v24.22.1) 15.00 ms (v24.22.1) 29.00 ms (v24.22.1) 60.00 ms (v24.22.1) 117.00 ms (v24.22.1) Next.js 8.00 ms (v16.4.3) 25.00 ms (v16.4.3) 46.00 ms (v16.4.3) 118.00 ms (v16.4.3) 230.00 ms (v16.4.3) 457.00 ms (v16.4.3) 495.00 ms (v16.4.3) Nuxt 3.00 ms (v4.6.3) 10.00 ms (v4.6.3) 20.00 ms (v4.6.3) 47.00 ms (v4.6.3) 98.00 ms (v4.6.3) 166.00 ms (v4.6.3) 172.00 ms (v4.6.3) Pracht 2.00 ms (v0.18.0) 8.00 ms (v0.18.0) 16.00 ms (v0.18.0) 37.00 ms (v0.18.0) 75.00 ms (v0.18.0) 147.00 ms (v0.18.0) 192.00 ms (v0.18.0) React Router 4.00 ms (v8.5.1) 16.00 ms (v8.5.1) 30.00 ms (v8.5.1) 73.00 ms (v8.5.1) 145.00 ms (v8.5.1) 257.00 ms (v8.5.1) 256.00 ms (v8.5.1) Solid 2.0 3.00 ms (v2.0.0-rc.21) 14.00 ms (v2.0.0-rc.21) 24.00 ms (v2.0.0-rc.21) 59.00 ms (v2.0.0-rc.21) 113.00 ms (v2.0.0-rc.21) 184.00 ms (v2.0.0-rc.21) 183.00 ms (v2.0.0-rc.21) SolidStart 2.00 ms (v2.1.0) 9.00 ms (v2.1.0) 18.00 ms (v2.1.0) 52.00 ms (v2.1.0) 86.00 ms (v2.1.0) 121.00 ms (v2.1.0) 119.00 ms (v2.1.0) SvelteKit 2.00 ms (v3.1.0) 9.00 ms (v3.1.0) 17.00 ms (v3.1.0) 43.00 ms (v3.1.0) 99.00 ms (v3.1.0) 137.00 ms (v3.1.0) 137.00 ms (v3.1.0) TanStack Start 3.00 ms (v1.169.4) 12.00 ms (v1.169.4) 25.00 ms (v1.169.4) 65.00 ms (v1.169.4) 141.00 ms (v1.169.4) 179.00 ms (v1.169.4) 174.00 ms (v1.169.4)
Methodology: SSR Router Link Load Test .
Measures server throughput and response latency as concurrent connections increase, with each request rendering a 1,000-row table using framework router link components.
Compare it with the plain link load test to see how these components affect server rendering performance. These tests make HTTP requests only; they do not measure browser navigation or prefetching.
Frameworks without a router link component are excluded.
Comparison Table
Next.js Nuxt Pracht React Router TanStack Start
P99 Latency by connections Framework 1 connection 5 connections 10 connections 25 connections 50 connections 100 connections 200 connections Next.js 11.00 ms (v16.4.3) 42.00 ms (v16.4.3) 90.00 ms (v16.4.3) 214.00 ms (v16.4.3) 925.00 ms (v16.4.3) 3912.00 ms (v16.4.3) 4311.00 ms (v16.4.3) Nuxt 9.00 ms (v4.6.3) 44.00 ms (v4.6.3) 87.00 ms (v4.6.3) 528.00 ms (v4.6.3) 3046.00 ms (v4.6.3) 3696.00 ms (v4.6.3) 3800.00 ms (v4.6.3) Pracht 8.00 ms (v0.18.0) 21.00 ms (v0.18.0) 39.00 ms (v0.18.0) 92.00 ms (v0.18.0) 380.00 ms (v0.18.0) 2628.00 ms (v0.18.0) 3408.00 ms (v0.18.0) React Router 9.00 ms (v8.5.1) 43.00 ms (v8.5.1) 86.00 ms (v8.5.1) 330.00 ms (v8.5.1) 1880.00 ms (v8.5.1) 4009.00 ms (v8.5.1) 4028.00 ms (v8.5.1) TanStack Start 7.00 ms (v1.169.4) 32.00 ms (v1.169.4) 69.00 ms (v1.169.4) 218.00 ms (v1.169.4) 1382.00 ms (v1.169.4) 3065.00 ms (v1.169.4) 3005.00 ms (v1.169.4)
Comparison Table
Next.js Nuxt Pracht React Router TanStack Start
P90 Latency by connections Framework 1 connection 5 connections 10 connections 25 connections 50 connections 100 connections 200 connections Next.js 9.00 ms (v16.4.3) 33.00 ms (v16.4.3) 66.00 ms (v16.4.3) 147.00 ms (v16.4.3) 298.00 ms (v16.4.3) 560.00 ms (v16.4.3) 599.00 ms (v16.4.3) Nuxt 7.00 ms (v4.6.3) 30.00 ms (v4.6.3) 61.00 ms (v4.6.3) 161.00 ms (v4.6.3) 315.00 ms (v4.6.3) 324.00 ms (v4.6.3) 323.00 ms (v4.6.3) Pracht 5.00 ms (v0.18.0) 19.00 ms (v0.18.0) 34.00 ms (v0.18.0) 77.00 ms (v0.18.0) 127.00 ms (v0.18.0) 250.00 ms (v0.18.0) 269.00 ms (v0.18.0) React Router 8.00 ms (v8.5.1) 29.00 ms (v8.5.1) 61.00 ms (v8.5.1) 164.00 ms (v8.5.1) 329.00 ms (v8.5.1) 397.00 ms (v8.5.1) 389.00 ms (v8.5.1) TanStack Start 5.00 ms (v1.169.4) 22.00 ms (v1.169.4) 48.00 ms (v1.169.4) 127.00 ms (v1.169.4) 254.00 ms (v1.169.4) 305.00 ms (v1.169.4) 286.00 ms (v1.169.4)
Comparison Table
Next.js Nuxt Pracht React Router TanStack Start
P75 Latency by connections Framework 1 connection 5 connections 10 connections 25 connections 50 connections 100 connections 200 connections Next.js 9.00 ms (v16.4.3) 27.00 ms (v16.4.3) 51.00 ms (v16.4.3) 131.00 ms (v16.4.3) 281.00 ms (v16.4.3) 540.00 ms (v16.4.3) 551.00 ms (v16.4.3) Nuxt 6.00 ms (v4.6.3) 29.00 ms (v4.6.3) 58.00 ms (v4.6.3) 148.00 ms (v4.6.3) 295.00 ms (v4.6.3) 304.00 ms (v4.6.3) 294.00 ms (v4.6.3) Pracht 3.00 ms (v0.18.0) 17.00 ms (v0.18.0) 31.00 ms (v0.18.0) 71.00 ms (v0.18.0) 125.00 ms (v0.18.0) 243.00 ms (v0.18.0) 246.00 ms (v0.18.0) React Router 7.00 ms (v8.5.1) 29.00 ms (v8.5.1) 57.00 ms (v8.5.1) 144.00 ms (v8.5.1) 319.00 ms (v8.5.1) 365.00 ms (v8.5.1) 361.00 ms (v8.5.1) TanStack Start 5.00 ms (v1.169.4) 20.00 ms (v1.169.4) 39.00 ms (v1.169.4) 102.00 ms (v1.169.4) 198.00 ms (v1.169.4) 215.00 ms (v1.169.4) 220.00 ms (v1.169.4)