Skip to content

fix(builders): exclude .nitro/ from input file discovery#2109

Open
RihanArfan wants to merge 1 commit into
mainfrom
fix/builder-nitro-exclude
Open

fix(builders): exclude .nitro/ from input file discovery#2109
RihanArfan wants to merge 1 commit into
mainfrom
fix/builder-nitro-exclude

Conversation

@RihanArfan
Copy link
Copy Markdown
Member

  • Exclude .nitro/ from the workflow builder's input file discovery and build artifact detection
  • Prevents stale build output in .nitro/workflow/ from being treated as source files during subsequent builds, which caused unresolvable import errors (e.g. referencing deleted files from a previous build)

Nitro v2 uses .nitro/ as its build directory. Unlike .next/, .nuxt/, etc., it wasn't excluded from the builder's glob scan. When the builder ran, it would pick up its own previous output as input, potentially re-including imports to

@RihanArfan RihanArfan requested a review from a team as a code owner May 26, 2026 14:18
@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented May 26, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
example-nextjs-workflow-turbopack Ready Ready Preview, Comment May 26, 2026 2:19pm
example-nextjs-workflow-webpack Ready Ready Preview, Comment May 26, 2026 2:19pm
example-workflow Ready Ready Preview, Comment May 26, 2026 2:19pm
workbench-astro-workflow Ready Ready Preview, Comment May 26, 2026 2:19pm
workbench-express-workflow Ready Ready Preview, Comment May 26, 2026 2:19pm
workbench-fastify-workflow Ready Ready Preview, Comment May 26, 2026 2:19pm
workbench-hono-workflow Ready Ready Preview, Comment May 26, 2026 2:19pm
workbench-nitro-workflow Ready Ready Preview, Comment May 26, 2026 2:19pm
workbench-nuxt-workflow Ready Ready Preview, Comment May 26, 2026 2:19pm
workbench-sveltekit-workflow Ready Ready Preview, Comment May 26, 2026 2:19pm
workbench-tanstack-start-workflow Ready Ready Preview, Comment May 26, 2026 2:19pm
workbench-vite-workflow Ready Ready Preview, Comment May 26, 2026 2:19pm
workflow-swc-playground Ready Ready Preview, Comment May 26, 2026 2:19pm
workflow-tarballs Ready Ready Preview, Comment May 26, 2026 2:19pm
workflow-web Ready Ready Preview, Comment May 26, 2026 2:19pm

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 26, 2026

🧪 E2E Test Results

Some tests failed

Summary

Passed Failed Skipped Total
❌ ▲ Vercel Production 1220 2 219 1441
✅ 💻 Local Development 1615 0 219 1834
✅ 📦 Local Production 1615 0 219 1834
✅ 🐘 Local Postgres 1615 0 219 1834
✅ 🪟 Windows 131 0 0 131
✅ 📋 Other 741 0 176 917
Total 6937 2 1052 7991

❌ Failed Tests

▲ Vercel Production (2 failed)

fastify (1 failed):

sveltekit (1 failed):

  • customSerializationWorkflow - custom class serialization with WORKFLOW_SERIALIZE/WORKFLOW_DESERIALIZE | wrun_01KSJAX700PSSY96ZB2CXWR08V | 🔍 observability

Details by Category

❌ ▲ Vercel Production
App Passed Failed Skipped
✅ astro 105 0 26
✅ example 105 0 26
✅ express 105 0 26
❌ fastify 104 1 26
✅ hono 105 0 26
✅ nextjs-turbopack 129 0 2
✅ nextjs-webpack 129 0 2
✅ nitro 105 0 26
✅ nuxt 105 0 26
❌ sveltekit 123 1 7
✅ vite 105 0 26
✅ 💻 Local Development
App Passed Failed Skipped
✅ astro-stable 106 0 25
✅ express-stable 106 0 25
✅ fastify-stable 106 0 25
✅ hono-stable 106 0 25
✅ nextjs-turbopack-canary 112 0 19
✅ nextjs-turbopack-stable-lazy-discovery-disabled 131 0 0
✅ nextjs-turbopack-stable-lazy-discovery-enabled 131 0 0
✅ nextjs-webpack-canary 112 0 19
✅ nextjs-webpack-stable-lazy-discovery-disabled 131 0 0
✅ nextjs-webpack-stable-lazy-discovery-enabled 131 0 0
✅ nitro-stable 106 0 25
✅ nuxt-stable 106 0 25
✅ sveltekit-stable 125 0 6
✅ vite-stable 106 0 25
✅ 📦 Local Production
App Passed Failed Skipped
✅ astro-stable 106 0 25
✅ express-stable 106 0 25
✅ fastify-stable 106 0 25
✅ hono-stable 106 0 25
✅ nextjs-turbopack-canary 112 0 19
✅ nextjs-turbopack-stable-lazy-discovery-disabled 131 0 0
✅ nextjs-turbopack-stable-lazy-discovery-enabled 131 0 0
✅ nextjs-webpack-canary 112 0 19
✅ nextjs-webpack-stable-lazy-discovery-disabled 131 0 0
✅ nextjs-webpack-stable-lazy-discovery-enabled 131 0 0
✅ nitro-stable 106 0 25
✅ nuxt-stable 106 0 25
✅ sveltekit-stable 125 0 6
✅ vite-stable 106 0 25
✅ 🐘 Local Postgres
App Passed Failed Skipped
✅ astro-stable 106 0 25
✅ express-stable 106 0 25
✅ fastify-stable 106 0 25
✅ hono-stable 106 0 25
✅ nextjs-turbopack-canary 112 0 19
✅ nextjs-turbopack-stable-lazy-discovery-disabled 131 0 0
✅ nextjs-turbopack-stable-lazy-discovery-enabled 131 0 0
✅ nextjs-webpack-canary 112 0 19
✅ nextjs-webpack-stable-lazy-discovery-disabled 131 0 0
✅ nextjs-webpack-stable-lazy-discovery-enabled 131 0 0
✅ nitro-stable 106 0 25
✅ nuxt-stable 106 0 25
✅ sveltekit-stable 125 0 6
✅ vite-stable 106 0 25
✅ 🪟 Windows
App Passed Failed Skipped
✅ nextjs-turbopack 131 0 0
✅ 📋 Other
App Passed Failed Skipped
✅ e2e-local-dev-nest-stable 106 0 25
✅ e2e-local-dev-tanstack-start- 106 0 25
✅ e2e-local-postgres-nest-stable 106 0 25
✅ e2e-local-postgres-tanstack-start- 106 0 25
✅ e2e-local-prod-nest-stable 106 0 25
✅ e2e-local-prod-tanstack-start- 106 0 25
✅ e2e-vercel-prod-tanstack-start 105 0 26

📋 View full workflow run


Some E2E test jobs failed:

  • Vercel Prod: failure
  • Local Dev: success
  • Local Prod: success
  • Local Postgres: success
  • Windows: success

Check the workflow run for details.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 26, 2026

📊 Benchmark Results

📈 Comparing against baseline from main branch. Green 🟢 = faster, Red 🔺 = slower.

workflow with no steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Nitro 0.029s (-33.4% 🟢) 1.005s (~) 0.976s 10 1.00x
💻 Local Express 0.030s (-31.4% 🟢) 1.006s (~) 0.975s 10 1.06x
🐘 Postgres Nitro 0.051s (-47.0% 🟢) 1.012s (-3.0%) 0.961s 10 1.76x
🐘 Postgres Express 0.051s (-12.1% 🟢) 1.012s (~) 0.961s 10 1.78x
💻 Local Next.js (Turbopack) 0.051s 1.006s 0.955s 10 1.79x
🐘 Postgres Next.js (Turbopack) 0.058s 1.011s 0.953s 10 2.03x
workflow with 1 step

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Express 1.070s (-4.9%) 2.006s (~) 0.937s 10 1.00x
💻 Local Nitro 1.070s (-5.4% 🟢) 2.006s (~) 0.936s 10 1.00x
🐘 Postgres Nitro 1.083s (-5.0%) 2.009s (~) 0.926s 10 1.01x
🐘 Postgres Express 1.086s (-5.3% 🟢) 2.010s (~) 0.924s 10 1.02x
💻 Local Next.js (Turbopack) 1.108s 2.007s 0.898s 10 1.04x
🐘 Postgres Next.js (Turbopack) 1.118s 2.010s 0.892s 10 1.05x
workflow with 10 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Nitro 10.396s (-5.0% 🟢) 11.022s (~) 0.626s 3 1.00x
💻 Local Express 10.404s (-4.7%) 11.021s (~) 0.618s 3 1.00x
🐘 Postgres Express 10.425s (-4.9%) 11.016s (~) 0.591s 3 1.00x
🐘 Postgres Nitro 10.438s (-4.0%) 11.018s (~) 0.580s 3 1.00x
💻 Local Next.js (Turbopack) 10.688s 11.023s 0.335s 3 1.03x
🐘 Postgres Next.js (Turbopack) 10.723s 11.019s 0.296s 3 1.03x
workflow with 25 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Nitro 13.433s (-10.8% 🟢) 14.027s (-12.5% 🟢) 0.594s 5 1.00x
🐘 Postgres Nitro 13.464s (-7.8% 🟢) 14.016s (-6.7% 🟢) 0.552s 5 1.00x
💻 Local Express 13.477s (-10.0% 🟢) 14.025s (-6.7% 🟢) 0.548s 5 1.00x
🐘 Postgres Express 13.485s (-7.5% 🟢) 14.022s (-6.7% 🟢) 0.537s 5 1.00x
💻 Local Next.js (Turbopack) 14.097s 15.030s 0.933s 4 1.05x
🐘 Postgres Next.js (Turbopack) 14.165s 15.021s 0.856s 4 1.05x
workflow with 50 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Nitro 11.843s (-29.4% 🟢) 12.023s (-29.4% 🟢) 0.180s 8 1.00x
🐘 Postgres Express 11.917s (-14.9% 🟢) 12.020s (-17.6% 🟢) 0.103s 8 1.01x
💻 Local Express 11.921s (-28.2% 🟢) 12.147s (-28.7% 🟢) 0.226s 8 1.01x
🐘 Postgres Nitro 11.998s (-14.1% 🟢) 12.643s (-11.6% 🟢) 0.646s 8 1.01x
💻 Local Next.js (Turbopack) 13.060s 13.740s 0.681s 7 1.10x
🐘 Postgres Next.js (Turbopack) 13.120s 14.015s 0.894s 7 1.11x
Promise.all with 10 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 1.148s (-9.9% 🟢) 2.008s (~) 0.860s 15 1.00x
🐘 Postgres Express 1.150s (-8.8% 🟢) 2.007s (~) 0.858s 15 1.00x
💻 Local Express 1.175s (-21.1% 🟢) 2.007s (~) 0.832s 15 1.02x
💻 Local Nitro 1.190s (-27.0% 🟢) 2.006s (-3.3%) 0.815s 15 1.04x
🐘 Postgres Next.js (Turbopack) 1.213s 2.007s 0.794s 15 1.06x
💻 Local Next.js (Turbopack) 1.279s 2.006s 0.727s 15 1.11x
Promise.all with 25 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 1.199s (-49.0% 🟢) 2.008s (-33.3% 🟢) 0.809s 15 1.00x
🐘 Postgres Express 1.221s (-48.3% 🟢) 2.007s (-33.3% 🟢) 0.786s 15 1.02x
🐘 Postgres Next.js (Turbopack) 1.346s 2.007s 0.660s 15 1.12x
💻 Local Nitro 1.703s (-45.8% 🟢) 2.005s (-48.4% 🟢) 0.302s 15 1.42x
💻 Local Express 1.768s (-40.1% 🟢) 2.007s (-41.9% 🟢) 0.240s 15 1.47x
💻 Local Next.js (Turbopack) 1.899s 2.293s 0.394s 14 1.58x
Promise.all with 50 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 1.307s (-62.4% 🟢) 2.008s (-49.9% 🟢) 0.701s 15 1.00x
🐘 Postgres Express 1.319s (-62.2% 🟢) 2.007s (-49.9% 🟢) 0.689s 15 1.01x
🐘 Postgres Next.js (Turbopack) 1.632s 2.007s 0.375s 15 1.25x
💻 Local Nitro 4.623s (-44.6% 🟢) 5.010s (-44.5% 🟢) 0.388s 6 3.54x
💻 Local Express 5.508s (-33.9% 🟢) 6.013s (-33.4% 🟢) 0.506s 5 4.21x
💻 Local Next.js (Turbopack) 5.541s 6.013s 0.472s 5 4.24x
Promise.race with 10 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 1.145s (-8.9% 🟢) 2.008s (~) 0.863s 15 1.00x
🐘 Postgres Express 1.148s (-8.7% 🟢) 2.009s (~) 0.861s 15 1.00x
🐘 Postgres Next.js (Turbopack) 1.212s 2.008s 0.796s 15 1.06x
💻 Local Next.js (Turbopack) 1.302s 2.006s 0.703s 15 1.14x
💻 Local Nitro 1.378s (-26.1% 🟢) 2.006s (-14.3% 🟢) 0.628s 15 1.20x
💻 Local Express 1.408s (-25.7% 🟢) 2.007s (-15.1% 🟢) 0.599s 15 1.23x
Promise.race with 25 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 1.202s (-48.6% 🟢) 2.008s (-33.3% 🟢) 0.806s 15 1.00x
🐘 Postgres Express 1.207s (-48.4% 🟢) 2.009s (-33.3% 🟢) 0.802s 15 1.00x
🐘 Postgres Next.js (Turbopack) 1.359s 2.007s 0.648s 15 1.13x
💻 Local Nitro 1.938s (-36.8% 🟢) 2.392s (-38.5% 🟢) 0.454s 13 1.61x
💻 Local Express 2.071s (-33.9% 🟢) 2.592s (-31.1% 🟢) 0.521s 12 1.72x
💻 Local Next.js (Turbopack) 2.072s 3.008s 0.936s 10 1.72x
Promise.race with 50 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 1.317s (-62.4% 🟢) 2.008s (-49.9% 🟢) 0.690s 15 1.00x
🐘 Postgres Nitro 1.325s (-61.9% 🟢) 2.007s (-49.9% 🟢) 0.682s 15 1.01x
🐘 Postgres Next.js (Turbopack) 1.609s 2.008s 0.399s 15 1.22x
💻 Local Nitro 4.832s (-47.2% 🟢) 5.515s (-45.0% 🟢) 0.682s 6 3.67x
💻 Local Next.js (Turbopack) 5.597s 6.014s 0.418s 6 4.25x
💻 Local Express 6.043s (-31.3% 🟢) 6.414s (-30.8% 🟢) 0.371s 5 4.59x
workflow with 10 sequential data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Nitro 0.447s (-54.4% 🟢) 1.004s (-8.2% 🟢) 0.556s 60 1.00x
🐘 Postgres Nitro 0.455s (-44.5% 🟢) 1.007s (~) 0.551s 60 1.02x
🐘 Postgres Express 0.456s (-45.7% 🟢) 1.006s (-1.7%) 0.550s 60 1.02x
💻 Local Express 0.482s (-51.0% 🟢) 1.021s (-5.1% 🟢) 0.539s 59 1.08x
🐘 Postgres Next.js (Turbopack) 0.667s 1.006s 0.339s 60 1.49x
💻 Local Next.js (Turbopack) 0.720s 1.005s 0.284s 60 1.61x
workflow with 25 sequential data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 1.023s (-48.2% 🟢) 1.643s (-27.2% 🟢) 0.621s 55 1.00x
🐘 Postgres Nitro 1.102s (-42.8% 🟢) 1.904s (-9.4% 🟢) 0.802s 48 1.08x
💻 Local Nitro 1.143s (-62.3% 🟢) 2.006s (-46.6% 🟢) 0.863s 45 1.12x
💻 Local Express 1.213s (-59.8% 🟢) 2.006s (-44.1% 🟢) 0.792s 45 1.19x
🐘 Postgres Next.js (Turbopack) 1.645s 2.008s 0.363s 45 1.61x
💻 Local Next.js (Turbopack) 1.772s 2.006s 0.234s 45 1.73x
workflow with 50 sequential data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 2.118s (-48.4% 🟢) 2.697s (-41.4% 🟢) 0.579s 45 1.00x
🐘 Postgres Express 2.208s (-44.7% 🟢) 2.798s (-36.0% 🟢) 0.590s 43 1.04x
💻 Local Nitro 2.634s (-71.7% 🟢) 3.007s (-70.0% 🟢) 0.373s 40 1.24x
💻 Local Express 2.671s (-71.0% 🟢) 3.007s (-70.0% 🟢) 0.337s 40 1.26x
🐘 Postgres Next.js (Turbopack) 3.190s 4.009s 0.819s 30 1.51x
💻 Local Next.js (Turbopack) 3.764s 4.008s 0.244s 30 1.78x
workflow with 10 concurrent data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 0.172s (-39.2% 🟢) 1.006s (~) 0.833s 60 1.00x
🐘 Postgres Express 0.192s (-32.0% 🟢) 1.006s (~) 0.814s 60 1.11x
🐘 Postgres Next.js (Turbopack) 0.234s 1.006s 0.772s 60 1.36x
💻 Local Nitro 0.394s (-34.8% 🟢) 1.004s (-1.7%) 0.610s 60 2.29x
💻 Local Express 0.398s (-29.1% 🟢) 1.004s (~) 0.607s 60 2.31x
💻 Local Next.js (Turbopack) 0.520s 1.022s 0.501s 59 3.02x
workflow with 25 concurrent data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 0.300s (-39.5% 🟢) 1.006s (~) 0.706s 90 1.00x
🐘 Postgres Express 0.303s (-40.5% 🟢) 1.006s (~) 0.702s 90 1.01x
🐘 Postgres Next.js (Turbopack) 0.445s 1.006s 0.561s 90 1.48x
💻 Local Nitro 2.052s (-19.2% 🟢) 2.579s (-14.3% 🟢) 0.527s 35 6.83x
💻 Local Express 2.121s (-15.6% 🟢) 2.766s (-8.1% 🟢) 0.645s 33 7.06x
💻 Local Next.js (Turbopack) 2.237s 2.977s 0.741s 31 7.45x
workflow with 50 concurrent data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 0.622s (-24.1% 🟢) 1.006s (-1.1%) 0.384s 120 1.00x
🐘 Postgres Nitro 0.635s (-19.7% 🟢) 1.006s (~) 0.371s 120 1.02x
🐘 Postgres Next.js (Turbopack) 0.928s 1.218s 0.289s 100 1.49x
💻 Local Nitro 9.584s (-14.4% 🟢) 10.109s (-13.3% 🟢) 0.525s 12 15.42x
💻 Local Express 10.396s (-7.1% 🟢) 10.862s (-9.0% 🟢) 0.465s 12 16.73x
💻 Local Next.js (Turbopack) 10.663s 11.209s 0.546s 11 17.16x
Stream Benchmarks (includes TTFB metrics)
workflow with stream

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Nitro 1.133s (+429.9% 🔺) 2.005s (+99.6% 🔺) 0.010s (-17.6% 🟢) 2.017s (+98.0% 🔺) 0.885s 10 1.00x
🐘 Postgres Express 1.136s (+453.9% 🔺) 1.997s (+100.0% 🔺) 0.002s (-6.3% 🟢) 2.011s (+98.8% 🔺) 0.875s 10 1.00x
💻 Local Express 1.136s (+470.7% 🔺) 2.005s (+99.6% 🔺) 0.012s (-1.7%) 2.019s (+98.3% 🔺) 0.883s 10 1.00x
🐘 Postgres Nitro 1.141s (+456.5% 🔺) 1.998s (+99.8% 🔺) 0.001s (-6.7% 🟢) 2.010s (+98.8% 🔺) 0.869s 10 1.01x
💻 Local Next.js (Turbopack) 1.184s 2.004s 0.013s 2.020s 0.836s 10 1.05x
🐘 Postgres Next.js (Turbopack) 1.197s 2.002s 0.001s 2.011s 0.814s 10 1.06x
stream pipeline with 5 transform steps (1MB)

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Nitro 1.510s (+80.0% 🔺) 2.012s (+98.8% 🔺) 0.007s (-22.5% 🟢) 2.021s (+81.1% 🔺) 0.511s 30 1.00x
🐘 Postgres Express 1.519s (+141.1% 🔺) 2.005s (+99.2% 🔺) 0.004s (-3.4%) 2.026s (+98.0% 🔺) 0.507s 30 1.01x
🐘 Postgres Nitro 1.526s (+144.6% 🔺) 2.002s (+98.9% 🔺) 0.004s (-2.5%) 2.026s (+98.2% 🔺) 0.500s 30 1.01x
💻 Local Next.js (Turbopack) 1.669s 2.010s 0.010s 2.023s 0.354s 30 1.11x
🐘 Postgres Next.js (Turbopack) 1.682s 2.010s 0.004s 2.025s 0.343s 30 1.11x
💻 Local Express 1.730s (+128.5% 🔺) 2.014s (+95.7% 🔺) 0.009s (-3.3%) 2.204s (+112.0% 🔺) 0.474s 28 1.15x
10 parallel streams (1MB each)

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 0.650s (-32.3% 🟢) 1.011s (-20.9% 🟢) 0.000s (-100.0% 🟢) 1.024s (-21.6% 🟢) 0.373s 59 1.00x
🐘 Postgres Nitro 0.683s (-29.5% 🟢) 1.048s (-16.0% 🟢) 0.000s (+26.3% 🔺) 1.067s (-15.1% 🟢) 0.384s 57 1.05x
🐘 Postgres Next.js (Turbopack) 0.792s 1.090s 0.000s 1.097s 0.305s 56 1.22x
💻 Local Nitro 1.332s (+8.9% 🔺) 2.015s (~) 0.001s (+400.0% 🔺) 2.017s (~) 0.685s 30 2.05x
💻 Local Express 1.341s (+9.5% 🔺) 2.015s (~) 0.000s (-10.0% 🟢) 2.017s (~) 0.676s 30 2.06x
💻 Local Next.js (Turbopack) 1.440s 2.014s 0.000s 2.017s 0.576s 30 2.21x
fan-out fan-in 10 streams (1MB each)

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 1.301s (-27.4% 🟢) 2.067s (-3.5%) 0.000s (-3.4%) 2.079s (-4.4%) 0.778s 29 1.00x
🐘 Postgres Express 1.389s (-21.6% 🟢) 2.098s (-3.7%) 0.000s (+Infinity% 🔺) 2.121s (-3.5%) 0.732s 29 1.07x
🐘 Postgres Next.js (Turbopack) 1.699s 2.311s 0.000s 2.319s 0.620s 26 1.31x
💻 Local Next.js (Turbopack) 2.680s 3.238s 0.001s 3.242s 0.562s 19 2.06x
💻 Local Express 3.150s (-9.2% 🟢) 3.676s (-8.9% 🟢) 0.001s (+32.4% 🔺) 3.684s (-8.7% 🟢) 0.534s 17 2.42x
💻 Local Nitro 3.364s (-0.7%) 3.829s (-5.0% 🟢) 0.000s (-50.0% 🟢) 4.167s (+3.2%) 0.802s 15 2.59x

Summary

Fastest Framework by World

Winner determined by most benchmark wins

World 🥇 Fastest Framework Wins
💻 Local Nitro 17/21
🐘 Postgres Nitro 13/21
Fastest World by Framework

Winner determined by most benchmark wins

Framework 🥇 Fastest World Wins
Express 🐘 Postgres 17/21
Next.js (Turbopack) 🐘 Postgres 14/21
Nitro 🐘 Postgres 13/21
Column Definitions
  • Workflow Time: Runtime reported by workflow (completedAt - createdAt) - primary metric
  • TTFB: Time to First Byte - time from workflow start until first stream byte received (stream benchmarks only)
  • Slurp: Time from first byte to complete stream consumption (stream benchmarks only)
  • Wall Time: Total testbench time (trigger workflow + poll for result)
  • Overhead: Testbench overhead (Wall Time - Workflow Time)
  • Samples: Number of benchmark iterations run
  • vs Fastest: How much slower compared to the fastest configuration for this benchmark

Worlds:

  • 💻 Local: In-memory filesystem world (local development)
  • 🐘 Postgres: PostgreSQL database world (local development)
  • ▲ Vercel: Vercel production/preview deployment
  • 🌐 Turso: Community world (local development)
  • 🌐 MongoDB: Community world (local development)
  • 🌐 Redis: Community world (local development)
  • 🌐 Jazz: Community world (local development)
  • 🌐 Redis: Community world (local development)
  • 🌐 Redis + BullMQ: Community world (local development)
  • 🌐 Cloudflare: Community world (local development)
  • 🌐 MySQL: Community world (local development)
  • 🌐 Azure: Community world (local development)
  • 🌐 NATS JetStream: Community world (local development)
  • 🌐 Upstash: Community world (local development)

📋 View full workflow run


Some benchmark jobs failed:

  • Local: success
  • Postgres: success
  • Vercel: failure

Check the workflow run for details.

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented May 26, 2026

⚠️ No Changeset found

Latest commit: 1f16ec5

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@RihanArfan RihanArfan enabled auto-merge (squash) May 26, 2026 14:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants