Dev Time Run Time e18e.dev Blog
โ† All frameworks

TanStack Start

Version 1.145.3 ยท Measured 3/8/2026

Dev Time Performance

Measured using pnpm on GitHub Actions (ubuntu-latest, Node 24) based on the starter project set up by each framework's CLI.

Prod Deps Dev Deps Dup. Deps Size Size (Prod Only) Graph
13 11 14 234.77MB 201.88MB View
Metric Avg Min Max
Install 2.55s 2.41s 2.74s
Cold Build 8.55s 8.13s 9.89s
Warm Build 8.19s 8.13s 8.26s

Build output size: 2.05MB

Duplicate Dependencies

14 duplicate dependencies detected across this starter's node_modules.

View 14 duplicate dependencies
  • lru-cache
    [duplicate dependency] lru-cache has 2 installed versions:
    11.2.6 via the following 4 package(s) unstorage@2.0.0-alpha.5, @asamuzakjp/dom-selector@6.8.1, @asamuzakjp/css-color@4.1.2, cssstyle@5.3.7
    5.1.1 via the following 1 package(s) @babel/helper-compilation-targets@7.28.6
    ๐Ÿ’ก Suggestions
    - Consider standardizing on version 11.2.6 as this version is the most commonly used.
    - Consider upgrading consuming packages as this may resolve this duplicate version.
    
  • @babel/code-frame
    [duplicate dependency] @babel/code-frame has 2 installed versions:
    7.27.1 via the following 1 package(s) @tanstack/start-plugin-core@1.145.3
    7.29.0 via the following 4 package(s) @babel/core@7.29.0, @babel/traverse@7.29.0, @babel/template@7.28.6, @testing-library/dom@10.4.1
    ๐Ÿ’ก Suggestions
    - Consider standardizing on version 7.29.0 as this version is the most commonly used.
    - Consider upgrading consuming packages as this may resolve this duplicate version.
    
  • js-tokens
    [duplicate dependency] js-tokens has 2 installed versions:
    4.0.0 via the following 2 package(s) @babel/code-frame@7.29.0, @babel/code-frame@7.27.1
    9.0.1 via the following 1 package(s) strip-literal@3.1.0
    ๐Ÿ’ก Suggestions
    - Consider standardizing on version 4.0.0 as this version is the most commonly used.
    - Consider upgrading consuming packages as this may resolve this duplicate version.
    
  • @tanstack/devtools-client
    [duplicate dependency] @tanstack/devtools-client has 2 installed versions:
    0.0.3 via the following 1 package(s) @tanstack/devtools@0.7.0
    0.0.5 via the following 1 package(s) @tanstack/devtools-vite@0.3.12
    ๐Ÿ’ก Suggestions
    - Consider upgrading consuming packages as this may resolve this duplicate version.
    
  • @tanstack/devtools-event-client
    [duplicate dependency] @tanstack/devtools-event-client has 2 installed versions:
    0.3.5 via the following 1 package(s) @tanstack/devtools-client@0.0.3
    0.4.0 via the following 1 package(s) @tanstack/devtools-client@0.0.5
    ๐Ÿ’ก Suggestions
    - Consider upgrading consuming packages as this may resolve this duplicate version.
    
  • picomatch
    [duplicate dependency] picomatch has 2 installed versions:
    4.0.3 via the following 6 package(s) fdir@6.5.0, vite@7.3.0, tinyglobby@0.2.15, unplugin@2.3.11, @tanstack/devtools-vite@0.3.12, vitest@3.2.4
    2.3.1 via the following 2 package(s) anymatch@3.1.3, readdirp@3.6.0
    ๐Ÿ’ก Suggestions
    - Consider standardizing on version 4.0.3 as this version is the most commonly used.
    - Consider upgrading consuming packages as this may resolve this duplicate version.
    
  • @tanstack/router-utils
    [duplicate dependency] @tanstack/router-utils has 2 installed versions:
    1.158.0 via the following 1 package(s) @tanstack/react-start@1.145.3
    1.143.11 via the following 3 package(s) @tanstack/router-generator@1.145.2, @tanstack/router-plugin@1.145.2, @tanstack/start-plugin-core@1.145.3
    ๐Ÿ’ก Suggestions
    - Consider standardizing on version 1.143.11 as this version is the most commonly used.
    - Consider upgrading consuming packages as this may resolve this duplicate version.
    
  • source-map
    [duplicate dependency] source-map has 2 installed versions:
    0.7.6 via the following 1 package(s) @tanstack/router-generator@1.145.2
    0.6.1 via the following 1 package(s) recast@0.23.11
    ๐Ÿ’ก Suggestions
    - Consider upgrading consuming packages as this may resolve this duplicate version.
    
  • @rolldown/pluginutils
    [duplicate dependency] @rolldown/pluginutils has 2 installed versions:
    1.0.0-beta.40 via the following 1 package(s) @tanstack/start-plugin-core@1.145.3
    1.0.0-beta.53 via the following 1 package(s) @vitejs/plugin-react@5.1.2
    ๐Ÿ’ก Suggestions
    - Consider upgrading consuming packages as this may resolve this duplicate version.
    
  • srvx
    [duplicate dependency] srvx has 2 installed versions:
    0.10.1 via the following 3 package(s) @tanstack/start-plugin-core@1.145.3, crossws@0.4.4, nitro@3.0.1-alpha.2
    0.11.4 via the following 1 package(s) h3@2.0.1-rc.14
    ๐Ÿ’ก Suggestions
    - Consider standardizing on version 0.10.1 as this version is the most commonly used.
    - Consider upgrading consuming packages as this may resolve this duplicate version.
    
  • parse5
    [duplicate dependency] parse5 has 2 installed versions:
    7.3.0 via the following 3 package(s) cheerio@1.2.0, parse5-htmlparser2-tree-adapter@7.1.0, parse5-parser-stream@7.1.2
    8.0.0 via the following 1 package(s) jsdom@27.4.0
    ๐Ÿ’ก Suggestions
    - Consider standardizing on version 7.3.0 as this version is the most commonly used.
    - Consider upgrading consuming packages as this may resolve this duplicate version.
    
  • whatwg-mimetype
    [duplicate dependency] whatwg-mimetype has 2 installed versions:
    4.0.0 via the following 2 package(s) cheerio@1.2.0, jsdom@27.4.0
    5.0.0 via the following 1 package(s) data-urls@6.0.1
    ๐Ÿ’ก Suggestions
    - Consider standardizing on version 4.0.0 as this version is the most commonly used.
    - Consider upgrading consuming packages as this may resolve this duplicate version.
    
  • entities
    [duplicate dependency] entities has 3 installed versions:
    4.5.0 via the following 1 package(s) dom-serializer@2.0.0
    7.0.1 via the following 1 package(s) htmlparser2@10.1.0
    6.0.1 via the following 2 package(s) parse5@7.3.0, parse5@8.0.0
    ๐Ÿ’ก Suggestions
    - Consider standardizing on version 6.0.1 as this version is the most commonly used.
    - Consider upgrading consuming packages as this may resolve this duplicate version.
    
  • h3
    [duplicate dependency] h3 has 2 installed versions:
    2.0.1-rc.14 via the following 1 package(s) nitro@3.0.1-alpha.2
    2.0.1-rc.7 via the following 0 package(s) 
    ๐Ÿ’ก Suggestions
    - Consider upgrading consuming packages as this may resolve this duplicate version.
    

Runtime Performance

SSR Performance

Measured on GitHub Actions (ubuntu-latest, Node 24) using custom SSR benchmark apps.

Framework Ops/sec Avg Latency Body Size Duplication
Baseline HTML 706 1.417ms 96.81kb 1x
TanStack Start 185 5.395ms 193.53kb 2x

Methodology

  • Each framework renders a table of 1000 rows with two UUID columns
  • Mock HTTP requests bypass TCP overhead for accurate rendering measurement
  • Data is loaded asynchronously to simulate real-world data fetching
  • Duplication factor indicates how many times each UUID appears in the response (1x = optimal, 2x = includes hydration payload)
  • Benchmarks run for 10 seconds using tinybench
  • Astro, Nuxt, and SvelteKit handle Node.js HTTP requests natively. React Router, SolidStart, and TanStack Start use Web APIs internally, so benchmarks include the cost of their Node.js adapter layers (@react-router/node, h3, and srvx respectively)
  • Next.js defaults to React Server Components (RSC), a different rendering model than traditional SSR. To keep the comparison fair, Next.js uses "use client" to opt out of RSC and use traditional SSR + hydration like most of the other frameworks
  • Inspired by eknkc/ssr-benchmark