Skip to content

Dev Time Stats

Dev Time benchmarks use starter projects; see the Dev Time methodology for setup details.

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.

The meta-framework package itself, for example, @sveltejs/kit.

Core Package Dependencies
  • Production
  • Development
Core Package Dependencies data
FrameworkProductionDevelopment
Astro5225
Next.js60
Nuxt6613
Pracht32
React Router2324
SolidStart245
Solid 2.040
SvelteKit815
TanStack Start914

Looking at a meta-framework’s first-party packages. For @sveltejs/kit, this means packages maintained by the meta-framework authors that are needed to run a project, for example, svelte.

First-Party Dependencies
  • Production
  • Development
First-Party Dependencies data
FrameworkProductionDevelopment
Astro11
Next.js11
Nuxt10
Pracht22
React Router31
SolidStart40
Solid 2.044
SvelteKit05
TanStack Start71
First-Party Duplicate Dependencies
First-Party Duplicate Dependencies data
FrameworkDependency count
SvelteKit1
TanStack Start3
Pracht4
React Router5
SolidStart6
Next.js12
Solid 2.012
Astro14
Nuxt76

The chart includes a dotted median reference line calculated from the visible framework values.

Finally, we look at the complete dependency footprint of the default starter project, including third-party packages selected by its CLI or documented setup.

Starter Dependencies
  • Production
  • Development
Starter Dependencies data
FrameworkProductionDevelopment
Astro12
Next.js36
Nuxt33
Pracht26
React Router69
SolidStart61
Solid 2.0411
SvelteKit08
TanStack Start1412
Starter Project · Duplicate Dependencies
Starter Project · Duplicate Dependencies data
FrameworkDuplicates
SvelteKit1
Pracht4
React Router5
Next.js12
Astro14
Solid 2.017
SolidStart23
TanStack Start37
Nuxt76

The chart includes a dotted median reference line calculated from the visible framework values.

Methodology: Node Modules Size.

Node Modules Size
Node Modules Size data
FrameworkMB
SvelteKit88.32 MB
React Router109.34 MB
Pracht132.55 MB
SolidStart149.16 MB
Solid 2.0181.84 MB
Astro204.21 MB
Nuxt246.12 MB
TanStack Start274.09 MB
Next.js463.42 MB

The chart includes a dotted median reference line calculated from the visible framework values.

Methodology: Build and Install Times.

Median Install Time
Median Install Time data
FrameworkSeconds
React Router1.34s
SvelteKit1.42s
Pracht1.63s
SolidStart2.16s
Solid 2.02.65s
Astro3.78s
TanStack Start5.11s
Nuxt5.64s
Next.js6.05s

The chart includes a dotted median reference line calculated from the visible framework values.

Median Cold Build Time
Median Cold Build Time data
FrameworkSeconds
Pracht0.69s
Solid 2.00.81s
Astro0.97s
SvelteKit1.68s
React Router1.70s
TanStack Start2.08s
SolidStart3.06s
Nuxt4.21s
Next.js5.42s

The chart includes a dotted median reference line calculated from the visible framework values.

Median Warm Build Time
Median Warm Build Time data
FrameworkSeconds
Pracht0.69s
Solid 2.00.73s
Astro0.91s
SvelteKit1.50s
React Router1.68s
TanStack Start1.94s
Next.js2.21s
SolidStart3.08s
Nuxt4.00s

The chart includes a dotted median reference line calculated from the visible framework values.

Methodology: Dev Server Startup.

Median Dev Server Startup Time
Median Dev Server Startup Time data
FrameworkSeconds
Pracht0.84s
React Router0.95s
Solid 2.00.96s
SvelteKit1.31s
Astro1.51s
TanStack Start1.79s
Next.js2.00s
Nuxt2.48s
SolidStart2.83s

The chart includes a dotted median reference line calculated from the visible framework values.

Methodology: Core-JS Polyfills.

FrameworkCore-JS detectedMatching JS filesModules not needed by target browsers
AstroNo——
Next.jsYes110.0 KB302
NuxtNo——
PrachtNo——
React RouterNo——
SolidStartNo——
Solid 2.0No——
SvelteKitNo——
TanStack StartNo——

Methodology: Browser Baseline.

FrameworkBaselineFeatureYearFeatures
Astro———0
Next.jsHigh—202247
NuxtHigh—202342
PrachtHigh—202037
React RouterHigh—202244
SolidStartHigh—202031
Solid 2.0High—202035
SvelteKitHigh—202147
TanStack StartHigh—202248

Methodology: Minimum Node Version.

FrameworkMin NodeSet by
Astrov22.23.4@astrojs/prism, @astrojs/telemetry, astro
Next.jsv20.19.0eslint-visitor-keys
Nuxtv22.22.3@nuxt/nitro-server, @nuxt/vite-builder, @nuxt/vite-server, cssnano, nuxt, postcss-calc
Prachtv22.18.0@pracht/adapter-node, @pracht/capabilities, @pracht/cli, @pracht/core, @pracht/preact-ssr-precompile, @pracht/vite-plugin
React Routerv22.22.0@react-router/dev, @react-router/express, @react-router/node, @react-router/serve, react-router
SolidStartv24.0.0@solidjs/start, starter-solid-start
Solid 2.0v22.13.0—
SvelteKitv22.17.0@sveltejs/kit
TanStack Startv22.22.2@asamuzakjp/css-color, @asamuzakjp/dom-selector, jsdom, w3c-xmlserializer