Skip to content

Next.js

Dev Time benchmarks use each meta-framework’s starter-* package.

Each starter follows its framework’s CLI or documented setup, with the selected options and adjustments recorded in the methodology.

See Default Benchmark Setup for the shared benchmark environment.

Methodology: Dependency Counts.

Measuring a meta-framework’s dependencies isn’t as straightforward as you might think. You could:

  • Measure just the meta-framework package itself
  • Maybe a full project setup

Both approaches have flaws. Some meta-frameworks need many other packages to work. A full project setup can include more packages than necessary.

To provide a clearer picture, we run the dependency-count tests three times, starting small and expanding in scope. In this order, we:

  1. Start with the meta-framework package itself, for example, @sveltejs/kit
  2. We then expand this to the meta-framework and its first-party packages. Looking at @sveltejs/kit again, this means any package maintained by the meta-framework authors that’s needed to run a project, for example, the svelte package.
  3. Finally, we count the dependencies for the entire starter-* project. Their CLI or documentation recommends this setup by default, so this is the default most people will start with.

Core Package · Production Dependencies

Latest · v16.4.36No change from previous
Core Package · Production Dependencies data
Framework versionDependencies
16.1.16
16.2.126
16.3.86
16.4.36

The latest release is shown as a filled point; earlier releases use outlined points.

Core Package · Development Dependencies

Latest · v16.4.30No change from previous
Core Package · Development Dependencies data
Framework versionDependencies
16.1.1223
16.2.120
16.3.80
16.4.30

The latest release is shown as a filled point; earlier releases use outlined points.

Core Package · All Dependencies

Latest · v16.4.36No change from previous
Core Package · All Dependencies data
Framework versionDependencies
16.1.1229
16.2.126
16.3.86
16.4.36

The latest release is shown as a filled point; earlier releases use outlined points.

Starter Project · Production Dependencies

Latest · v16.4.33No change from previous
Starter Project · Production Dependencies data
Framework versionDependencies
16.1.13
16.2.123
16.3.83
16.4.33

The latest release is shown as a filled point; earlier releases use outlined points.

Starter Project · Development Dependencies

Latest · v16.4.36No change from previous
Starter Project · Development Dependencies data
Framework versionDependencies
16.1.16
16.2.126
16.3.86
16.4.36

The latest release is shown as a filled point; earlier releases use outlined points.

Starter Project · All Dependencies

Latest · v16.4.3424−2 from previous
Starter Project · All Dependencies data
Framework versionDependencies
16.1.1421
16.2.12423
16.3.8426
16.4.3424

The latest release is shown as a filled point; earlier releases use outlined points.

Starter Project · Duplicate Dependencies

Latest · v16.4.312−2 from previous
Starter Project · Duplicate Dependencies data
Framework versionDuplicates
16.1.112
16.2.1214
16.3.814
16.4.312

The latest release is shown as a filled point; earlier releases use outlined points.

Methodology: Node Modules Size.

Node Modules Size

Latest · v16.4.3463.42 MB+10.70 MB from previous
Node Modules Size data
Framework versionMB
16.1.1560.05 MB
16.2.12451.10 MB
16.3.8452.72 MB
16.4.3463.42 MB

The latest release is shown as a filled point; earlier releases use outlined points.

Dependency Install Size

Latest · v16.4.3405.08 MB+8.82 MB from previous
Dependency Install Size data
Framework versionMB
16.1.1506.22 MB
16.2.12395.87 MB
16.3.8396.25 MB
16.4.3405.08 MB

The latest release is shown as a filled point; earlier releases use outlined points.

Methodology: Build and Install Times.

Median Install Time

Latest · v16.4.36.11s−0.31s from previous
Median Install Time data
Framework versionSeconds
16.1.16.75s
16.2.125.85s
16.3.86.42s
16.4.36.11s

The latest release is shown as a filled point; earlier releases use outlined points.

Median Cold Build Time

Latest · v16.4.35.71s−1.08s from previous
Median Cold Build Time data
Framework versionSeconds
16.1.15.02s
16.2.125.19s
16.3.86.79s
16.4.35.71s

The latest release is shown as a filled point; earlier releases use outlined points.

Median Warm Build Time

Latest · v16.4.32.35s−0.41s from previous
Median Warm Build Time data
Framework versionSeconds
16.1.15.04s
16.2.125.01s
16.3.82.76s
16.4.32.35s

The latest release is shown as a filled point; earlier releases use outlined points.

Methodology: Dev Server Startup.

Median Dev Server Startup Time

Latest · v16.4.32.05s−0.13s from previous
Median Dev Server Startup Time data
Framework versionSeconds
16.1.12.64s
16.2.122.18s
16.3.82.18s
16.4.32.05s

The latest release is shown as a filled point; earlier releases use outlined points.

Methodology: Core-JS Polyfills.

Size of JS Files Containing Core-JS

Combined size of matching build output files, including any other code in those files.

Latest · v16.4.3109.96 KBNo change from previous
Size of JS Files Containing Core-JS data
Framework versionKB
16.1.1109.96 KB
16.2.12109.96 KB
16.3.8109.96 KB
16.4.3109.96 KB

The latest release is shown as a filled point; earlier releases use outlined points.

Methodology: Browser Baseline.

VersionBaselineFeatureYearFeatures
16.1.1High—202246
16.2.12High—202247
16.3.8High—202247
16.4.3High—202247

Run Time benchmarks use each meta-framework’s app-* package.

Currently, each test uses a different route in its app, configured to meet each test’s requirements.

See Default Benchmark Setup for the base set-up. Each test’s specific setup is linked in the methodology with links in each section.

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 by Version

Not enough data yet. This chart needs at least two versions.

Initial Load: Excluding JavaScript by Version

Not enough data yet. This chart needs at least two versions.

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)

Latest · v16.4.3342.00 ms+2.00 ms from previous
Client First Paint (Lighthouse) data
Framework versionMilliseconds
16.1.1339.00 ms
16.2.12341.00 ms
16.3.8340.00 ms
16.4.3342.00 ms

The latest release is shown as a filled point; earlier releases use outlined points.

Client FCP (Lighthouse)

Latest · v16.4.3342.21 ms+2.31 ms from previous
Client FCP (Lighthouse) data
Framework versionMilliseconds
16.1.1339.11 ms
16.2.12341.32 ms
16.3.8339.90 ms
16.4.3342.21 ms

The latest release is shown as a filled point; earlier releases use outlined points.

Client Interaction Breakdown by Version (Lighthouse)

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.
Client Interaction Breakdown by Version (Lighthouse) data
Framework versionTotalInput delayProcessing durationPresentation delay
v16.1.117.88 ms1.49 ms5.55 ms10.83 ms
v16.2.1220.62 ms1.63 ms4.35 ms14.64 ms
v16.3.816.80 ms1.24 ms5.87 ms9.69 ms
v16.4.319.90 ms1.63 ms4.86 ms13.41 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)

Latest · v16.4.3373.00 ms+248.00 ms from previous
Server First Paint (Lighthouse) data
Framework versionMilliseconds
16.1.1134.00 ms
16.2.12122.00 ms
16.3.8125.00 ms
16.4.3373.00 ms

The latest release is shown as a filled point; earlier releases use outlined points.

Server FCP (Lighthouse)

Latest · v16.4.3372.88 ms+247.80 ms from previous
Server FCP (Lighthouse) data
Framework versionMilliseconds
16.1.1134.21 ms
16.2.12121.75 ms
16.3.8125.08 ms
16.4.3372.88 ms

The latest release is shown as a filled point; earlier releases use outlined points.

Server Interaction Breakdown by Version (Lighthouse)

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.
Server Interaction Breakdown by Version (Lighthouse) data
Framework versionTotalInput delayProcessing durationPresentation delay
v16.1.120.25 ms1.49 ms6.78 ms11.99 ms
v16.2.1217.12 ms1.34 ms5.77 ms10.00 ms
v16.3.817.52 ms1.39 ms7.00 ms9.13 ms
v16.4.314.49 ms1.36 ms4.35 ms8.78 ms

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

Latest · v16.4.3134
Ops/sec data
Framework versionOperations per second
16.1.1—
16.2.12—
16.3.8—
16.4.3134

The latest release is shown as a filled point; earlier releases use outlined points.

Body Size

Latest · v16.4.3204.56 KB
Body Size data
Framework versionKilobytes
16.1.1—
16.2.12—
16.3.8—
16.4.3204.56 KB

The latest release is shown as a filled point; earlier releases use outlined points.

Median Latency

Median of measured run average latencies; not a pooled request-level median.

Latest · v16.4.37.70 ms
Median Latency data
Framework versionMilliseconds
16.1.1—
16.2.12—
16.3.8—
16.4.37.70 ms

The latest release is shown as a filled point; earlier releases use outlined points.

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.

Ordinary anchors at /server-side-rendered-plain-links. Historical standard-test measurements are unavailable; new CI runs will populate this series.

Total Measured Requests

Latest · v16.4.34801−1085 from previous
Total Measured Requests data
Framework versionRequests
16.1.13798
16.2.125877
16.3.85886
16.4.34801

The latest release is shown as a filled point; earlier releases use outlined points.

Median Sweep P99 Latency at 25 Connections

Latest · v16.4.31219.00 ms+80.00 ms from previous
Median Sweep P99 Latency at 25 Connections data
Framework versionMilliseconds
16.1.11827.00 ms
16.2.121175.00 ms
16.3.81139.00 ms
16.4.31219.00 ms

The latest release is shown as a filled point; earlier releases use outlined points.

Median Sweep P99 Latency at 50 Connections

Latest · v16.4.34269.00 ms+326.00 ms from previous
Median Sweep P99 Latency at 50 Connections data
Framework versionMilliseconds
16.1.14723.00 ms
16.2.124312.00 ms
16.3.83943.00 ms
16.4.34269.00 ms

The latest release is shown as a filled point; earlier releases use outlined points.

Median Sweep P99 Latency at 100 Connections

Latest · v16.4.34656.00 ms+54.00 ms from previous
Median Sweep P99 Latency at 100 Connections data
Framework versionMilliseconds
16.1.14744.00 ms
16.2.124636.00 ms
16.3.84602.00 ms
16.4.34656.00 ms

The latest release is shown as a filled point; earlier releases use outlined points.

Median Sweep P90 Latency at 25 Connections

Latest · v16.4.3521.00 ms+107.00 ms from previous
Median Sweep P90 Latency at 25 Connections data
Framework versionMilliseconds
16.1.1652.00 ms
16.2.12483.00 ms
16.3.8414.00 ms
16.4.3521.00 ms

The latest release is shown as a filled point; earlier releases use outlined points.

Median Sweep P90 Latency at 50 Connections

Latest · v16.4.31768.00 ms+572.00 ms from previous
Median Sweep P90 Latency at 50 Connections data
Framework versionMilliseconds
16.1.12313.00 ms
16.2.121488.00 ms
16.3.81196.00 ms
16.4.31768.00 ms

The latest release is shown as a filled point; earlier releases use outlined points.

Median Sweep P90 Latency at 100 Connections

Latest · v16.4.32283.00 ms+405.00 ms from previous
Median Sweep P90 Latency at 100 Connections data
Framework versionMilliseconds
16.1.12584.00 ms
16.2.121889.00 ms
16.3.81878.00 ms
16.4.32283.00 ms

The latest release is shown as a filled point; earlier releases use outlined points.

Median Sweep P75 Latency at 25 Connections

Latest · v16.4.3503.00 ms+99.00 ms from previous
Median Sweep P75 Latency at 25 Connections data
Framework versionMilliseconds
16.1.1640.00 ms
16.2.12468.00 ms
16.3.8404.00 ms
16.4.3503.00 ms

The latest release is shown as a filled point; earlier releases use outlined points.

Median Sweep P75 Latency at 50 Connections

Latest · v16.4.3979.00 ms+199.00 ms from previous
Median Sweep P75 Latency at 50 Connections data
Framework versionMilliseconds
16.1.11062.00 ms
16.2.12875.00 ms
16.3.8780.00 ms
16.4.3979.00 ms

The latest release is shown as a filled point; earlier releases use outlined points.

Median Sweep P75 Latency at 100 Connections

Latest · v16.4.31014.00 ms+196.00 ms from previous
Median Sweep P75 Latency at 100 Connections data
Framework versionMilliseconds
16.1.11047.00 ms
16.2.12902.00 ms
16.3.8818.00 ms
16.4.31014.00 ms

The latest release is shown as a filled point; earlier releases use outlined points.

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.

Framework router links at /server-side-rendered. Historical HTTP load results are preserved in this series.

Total Measured Requests

Latest · v16.4.34278−1005 from previous
Total Measured Requests data
Framework versionRequests
16.1.13438
16.2.125248
16.3.85283
16.4.34278

The latest release is shown as a filled point; earlier releases use outlined points.

Median Sweep P99 Latency at 25 Connections

Latest · v16.4.31400.00 ms+130.00 ms from previous
Median Sweep P99 Latency at 25 Connections data
Framework versionMilliseconds
16.1.11949.00 ms
16.2.121273.00 ms
16.3.81270.00 ms
16.4.31400.00 ms

The latest release is shown as a filled point; earlier releases use outlined points.

Median Sweep P99 Latency at 50 Connections

Latest · v16.4.34758.00 ms+414.00 ms from previous
Median Sweep P99 Latency at 50 Connections data
Framework versionMilliseconds
16.1.14745.00 ms
16.2.124612.00 ms
16.3.84344.00 ms
16.4.34758.00 ms

The latest release is shown as a filled point; earlier releases use outlined points.

Median Sweep P99 Latency at 100 Connections

Latest · v16.4.34742.00 ms+149.00 ms from previous
Median Sweep P99 Latency at 100 Connections data
Framework versionMilliseconds
16.1.14746.00 ms
16.2.124529.00 ms
16.3.84593.00 ms
16.4.34742.00 ms

The latest release is shown as a filled point; earlier releases use outlined points.

Median Sweep P90 Latency at 25 Connections

Latest · v16.4.3569.00 ms+100.00 ms from previous
Median Sweep P90 Latency at 25 Connections data
Framework versionMilliseconds
16.1.1714.00 ms
16.2.12513.00 ms
16.3.8469.00 ms
16.4.3569.00 ms

The latest release is shown as a filled point; earlier releases use outlined points.

Median Sweep P90 Latency at 50 Connections

Latest · v16.4.32234.00 ms+650.00 ms from previous
Median Sweep P90 Latency at 50 Connections data
Framework versionMilliseconds
16.1.12412.00 ms
16.2.121856.00 ms
16.3.81584.00 ms
16.4.32234.00 ms

The latest release is shown as a filled point; earlier releases use outlined points.

Median Sweep P90 Latency at 100 Connections

Latest · v16.4.32445.00 ms+470.00 ms from previous
Median Sweep P90 Latency at 100 Connections data
Framework versionMilliseconds
16.1.12775.00 ms
16.2.122127.00 ms
16.3.81975.00 ms
16.4.32445.00 ms

The latest release is shown as a filled point; earlier releases use outlined points.

Median Sweep P75 Latency at 25 Connections

Latest · v16.4.3549.00 ms+94.00 ms from previous
Median Sweep P75 Latency at 25 Connections data
Framework versionMilliseconds
16.1.1700.00 ms
16.2.12504.00 ms
16.3.8455.00 ms
16.4.3549.00 ms

The latest release is shown as a filled point; earlier releases use outlined points.

Median Sweep P75 Latency at 50 Connections

Latest · v16.4.31107.00 ms+242.00 ms from previous
Median Sweep P75 Latency at 50 Connections data
Framework versionMilliseconds
16.1.11109.00 ms
16.2.12934.00 ms
16.3.8865.00 ms
16.4.31107.00 ms

The latest release is shown as a filled point; earlier releases use outlined points.

Median Sweep P75 Latency at 100 Connections

Latest · v16.4.31065.00 ms+200.00 ms from previous
Median Sweep P75 Latency at 100 Connections data
Framework versionMilliseconds
16.1.11088.00 ms
16.2.12925.00 ms
16.3.8865.00 ms
16.4.31065.00 ms

The latest release is shown as a filled point; earlier releases use outlined points.