Skip to content

Expose workflows manifest under diagnostics folder#998

Merged
ijjk merged 6 commits intomainfrom
ijjk/diagnostics-manifest
Feb 11, 2026
Merged

Expose workflows manifest under diagnostics folder#998
ijjk merged 6 commits intomainfrom
ijjk/diagnostics-manifest

Conversation

@ijjk
Copy link
Copy Markdown
Member

@ijjk ijjk commented Feb 10, 2026

As discussed this outputs the manifest to the diagnostics folder to allow for observability to query it after being deployed.

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Feb 10, 2026

🦋 Changeset detected

Latest commit: 07b64be

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 19 packages
Name Type
@workflow/builders Patch
@workflow/utils Patch
@workflow/core Patch
@workflow/astro Patch
@workflow/cli Patch
@workflow/nest Patch
@workflow/next Patch
@workflow/nitro Patch
@workflow/rollup Patch
@workflow/sveltekit Patch
@workflow/vite Patch
@workflow/errors Patch
@workflow/web-shared Patch
@workflow/world-local Patch
workflow Patch
@workflow/world-testing Patch
@workflow/nuxt Patch
@workflow/world-postgres Patch
@workflow/world-vercel Patch

Not sure what this means? Click here to learn what changesets are.

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

@ijjk ijjk requested a review from a team February 10, 2026 23:54
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Feb 10, 2026

🧪 E2E Test Results

Some tests failed

Summary

Passed Failed Skipped Total
✅ ▲ Vercel Production 490 0 38 528
✅ 💻 Local Development 418 0 62 480
✅ 📦 Local Production 418 0 62 480
✅ 🐘 Local Postgres 418 0 62 480
✅ 🪟 Windows 45 0 3 48
❌ 🌍 Community Worlds 102 42 9 153
✅ 📋 Other 123 0 21 144
Total 2014 42 257 2313

❌ Failed Tests

🌍 Community Worlds (42 failed)

mongodb (1 failed):

  • webhookWorkflow

turso (41 failed):

  • addTenWorkflow
  • addTenWorkflow
  • should work with react rendering in step
  • promiseAllWorkflow
  • promiseRaceWorkflow
  • promiseAnyWorkflow
  • hookWorkflow
  • webhookWorkflow
  • sleepingWorkflow
  • nullByteWorkflow
  • workflowAndStepMetadataWorkflow
  • fetchWorkflow
  • promiseRaceStressTestWorkflow
  • error handling error propagation workflow errors nested function calls preserve message and stack trace
  • error handling error propagation workflow errors cross-file imports preserve message and stack trace
  • error handling error propagation step errors basic step error preserves message and stack trace
  • error handling error propagation step errors cross-file step error preserves message and function names in stack
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior FatalError fails immediately without retries
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • error handling retry behavior maxRetries=0 disables retries
  • error handling catchability FatalError can be caught and detected with FatalError.is()
  • hookCleanupTestWorkflow - hook token reuse after workflow completion
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously
  • stepFunctionPassingWorkflow - step function references can be passed as arguments (without closure vars)
  • stepFunctionWithClosureWorkflow - step function with closure variables passed as argument
  • closureVariableWorkflow - nested step functions with closure variables
  • spawnWorkflowFromStepWorkflow - spawning a child workflow using start() inside a step
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • pathsAliasWorkflow - TypeScript path aliases resolve correctly
  • Calculator.calculate - static workflow method using static step methods from another class
  • AllInOneService.processNumber - static workflow method using sibling static step methods
  • ChainableService.processWithThis - static step methods using this to reference the class
  • thisSerializationWorkflow - step function invoked with .call() and .apply()
  • customSerializationWorkflow - custom class serialization with WORKFLOW_SERIALIZE/WORKFLOW_DESERIALIZE
  • instanceMethodStepWorkflow - instance methods with "use step" directive
  • crossContextSerdeWorkflow - classes defined in step code are deserializable in workflow context
  • stepFunctionAsStartArgWorkflow - step function reference passed as start() argument
  • pages router addTenWorkflow via pages router
  • pages router promiseAllWorkflow via pages router
  • pages router sleepingWorkflow via pages router

Details by Category

✅ ▲ Vercel Production
App Passed Failed Skipped
✅ astro 44 0 4
✅ example 44 0 4
✅ express 44 0 4
✅ fastify 44 0 4
✅ hono 44 0 4
✅ nextjs-turbopack 47 0 1
✅ nextjs-webpack 47 0 1
✅ nitro 44 0 4
✅ nuxt 44 0 4
✅ sveltekit 44 0 4
✅ vite 44 0 4
✅ 💻 Local Development
App Passed Failed Skipped
✅ astro-stable 41 0 7
✅ express-stable 41 0 7
✅ fastify-stable 41 0 7
✅ hono-stable 41 0 7
✅ nextjs-turbopack-stable 45 0 3
✅ nextjs-webpack-stable 45 0 3
✅ nitro-stable 41 0 7
✅ nuxt-stable 41 0 7
✅ sveltekit-stable 41 0 7
✅ vite-stable 41 0 7
✅ 📦 Local Production
App Passed Failed Skipped
✅ astro-stable 41 0 7
✅ express-stable 41 0 7
✅ fastify-stable 41 0 7
✅ hono-stable 41 0 7
✅ nextjs-turbopack-stable 45 0 3
✅ nextjs-webpack-stable 45 0 3
✅ nitro-stable 41 0 7
✅ nuxt-stable 41 0 7
✅ sveltekit-stable 41 0 7
✅ vite-stable 41 0 7
✅ 🐘 Local Postgres
App Passed Failed Skipped
✅ astro-stable 41 0 7
✅ express-stable 41 0 7
✅ fastify-stable 41 0 7
✅ hono-stable 41 0 7
✅ nextjs-turbopack-stable 45 0 3
✅ nextjs-webpack-stable 45 0 3
✅ nitro-stable 41 0 7
✅ nuxt-stable 41 0 7
✅ sveltekit-stable 41 0 7
✅ vite-stable 41 0 7
✅ 🪟 Windows
App Passed Failed Skipped
✅ nextjs-turbopack 45 0 3
❌ 🌍 Community Worlds
App Passed Failed Skipped
✅ mongodb-dev 3 0 0
❌ mongodb 44 1 3
✅ redis-dev 3 0 0
✅ redis 45 0 3
✅ turso-dev 3 0 0
❌ turso 4 41 3
✅ 📋 Other
App Passed Failed Skipped
✅ e2e-local-dev-nest-stable 41 0 7
✅ e2e-local-postgres-nest-stable 41 0 7
✅ e2e-local-prod-nest-stable 41 0 7

📋 View full workflow run

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Feb 10, 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 🥇 Express 0.032s (-2.8%) 1.005s (~) 0.973s 10 1.00x
💻 Local Nitro 0.033s (-4.1%) 1.005s (~) 0.972s 10 1.03x
💻 Local Next.js (Turbopack) 0.043s 1.005s 0.962s 10 1.34x
🌐 Redis Next.js (Turbopack) 0.046s 1.004s 0.958s 10 1.47x
🌐 MongoDB Next.js (Turbopack) 0.095s 1.008s 0.913s 10 3.00x
🐘 Postgres Nitro 0.134s (-63.6% 🟢) 1.010s (~) 0.876s 10 4.24x
🐘 Postgres Express 0.170s (-17.8% 🟢) 1.009s (~) 0.839s 10 5.38x
🐘 Postgres Next.js (Turbopack) 0.359s 1.010s 0.651s 10 11.37x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Nitro 0.831s (-22.7% 🟢) 2.330s (-17.4% 🟢) 1.499s 10 1.00x
▲ Vercel Express 0.854s (-9.3% 🟢) 2.584s (-1.6%) 1.730s 10 1.03x
▲ Vercel Next.js (Turbopack) 0.964s (-19.8% 🟢) 2.644s (-11.3% 🟢) 1.681s 10 1.16x

🔍 Observability: Nitro | Express | Next.js (Turbopack)

workflow with 1 step

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Next.js (Turbopack) 1.097s 2.005s 0.908s 10 1.00x
💻 Local Express 1.102s (~) 2.005s (~) 0.903s 10 1.00x
🌐 Redis Next.js (Turbopack) 1.104s 2.006s 0.902s 10 1.01x
💻 Local Nitro 1.108s (~) 2.006s (~) 0.897s 10 1.01x
🌐 MongoDB Next.js (Turbopack) 1.308s 2.008s 0.700s 10 1.19x
🐘 Postgres Next.js (Turbopack) 1.879s 2.012s 0.133s 10 1.71x
🐘 Postgres Express 2.247s (+5.0% 🔺) 3.013s (~) 0.766s 10 2.05x
🐘 Postgres Nitro 2.464s (+10.0% 🔺) 3.014s (~) 0.549s 10 2.25x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Nitro 2.681s (-5.3% 🟢) 3.696s (-12.1% 🟢) 1.015s 10 1.00x
▲ Vercel Next.js (Turbopack) 2.740s (-12.2% 🟢) 4.067s (-6.2% 🟢) 1.328s 10 1.02x
▲ Vercel Express 2.751s (-8.2% 🟢) 4.036s (-8.5% 🟢) 1.285s 10 1.03x

🔍 Observability: Nitro | Next.js (Turbopack) | Express

workflow with 10 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🌐 Redis 🥇 Next.js (Turbopack) 10.679s 11.020s 0.341s 3 1.00x
💻 Local Next.js (Turbopack) 10.707s 11.021s 0.313s 3 1.00x
💻 Local Express 10.815s (~) 11.021s (~) 0.206s 3 1.01x
💻 Local Nitro 10.815s (~) 11.021s (~) 0.206s 3 1.01x
🌐 MongoDB Next.js (Turbopack) 12.261s 13.021s 0.760s 3 1.15x
🐘 Postgres Next.js (Turbopack) 15.059s 15.544s 0.486s 2 1.41x
🐘 Postgres Nitro 20.317s (+1.1%) 21.061s (~) 0.745s 2 1.90x
🐘 Postgres Express 20.413s (~) 21.054s (~) 0.642s 2 1.91x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 19.614s (-7.2% 🟢) 20.974s (-5.5% 🟢) 1.360s 2 1.00x
▲ Vercel Express 19.626s (+0.5%) 21.569s (+3.8%) 1.943s 2 1.00x
▲ Vercel Nitro 20.196s (-3.4%) 21.546s (-1.3%) 1.350s 2 1.03x

🔍 Observability: Next.js (Turbopack) | Express | Nitro

workflow with 25 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🌐 Redis 🥇 Next.js (Turbopack) 26.811s 27.046s 0.235s 3 1.00x
💻 Local Next.js (Turbopack) 27.181s 28.050s 0.869s 3 1.01x
💻 Local Express 27.435s (~) 28.051s (~) 0.616s 3 1.02x
💻 Local Nitro 27.496s (~) 28.050s (~) 0.554s 3 1.03x
🌐 MongoDB Next.js (Turbopack) 30.568s 31.046s 0.478s 2 1.14x
🐘 Postgres Next.js (Turbopack) 37.420s 38.092s 0.672s 2 1.40x
🐘 Postgres Express 50.181s (~) 51.119s (~) 0.938s 2 1.87x
🐘 Postgres Nitro 50.334s (~) 51.124s (~) 0.789s 2 1.88x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Express 48.566s (-5.0%) 50.278s (-5.6% 🟢) 1.712s 2 1.00x
▲ Vercel Nitro 49.684s (-1.8%) 51.263s (~) 1.579s 2 1.02x
▲ Vercel Next.js (Turbopack) 50.242s (-1.5%) 51.267s (-3.1%) 1.026s 2 1.03x

🔍 Observability: Express | Nitro | Next.js (Turbopack)

workflow with 50 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🌐 Redis 🥇 Next.js (Turbopack) 54.203s 55.092s 0.889s 2 1.00x
💻 Local Next.js (Turbopack) 56.483s 57.097s 0.613s 2 1.04x
💻 Local Express 57.090s (~) 57.101s (~) 0.011s 2 1.05x
💻 Local Nitro 57.257s (~) 58.100s (~) 0.843s 2 1.06x
🌐 MongoDB Next.js (Turbopack) 61.098s 61.579s 0.481s 2 1.13x
🐘 Postgres Next.js (Turbopack) 74.756s 75.677s 0.921s 2 1.38x
🐘 Postgres Nitro 100.231s (~) 101.229s (~) 0.998s 1 1.85x
🐘 Postgres Express 100.349s (+1.3%) 101.224s (+2.0%) 0.875s 1 1.85x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Nitro 104.149s (~) 105.906s (+0.7%) 1.757s 1 1.00x
▲ Vercel Express 107.214s (+2.4%) 108.551s (+2.6%) 1.337s 1 1.03x
▲ Vercel Next.js (Turbopack) 110.915s (+4.6%) 112.419s (+5.2% 🔺) 1.504s 1 1.06x

🔍 Observability: Nitro | Express | Next.js (Turbopack)

Promise.all with 10 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🌐 Redis 🥇 Next.js (Turbopack) 1.245s 2.006s 0.761s 15 1.00x
💻 Local Express 1.393s (-2.4%) 2.005s (~) 0.612s 15 1.12x
💻 Local Next.js (Turbopack) 1.413s 2.005s 0.592s 15 1.14x
💻 Local Nitro 1.416s (+0.5%) 2.005s (~) 0.588s 15 1.14x
🌐 MongoDB Next.js (Turbopack) 2.155s 3.008s 0.853s 10 1.73x
🐘 Postgres Next.js (Turbopack) 2.260s 2.741s 0.480s 11 1.82x
🐘 Postgres Nitro 2.295s (-6.4% 🟢) 3.013s (~) 0.719s 10 1.84x
🐘 Postgres Express 2.405s (+11.4% 🔺) 3.013s (~) 0.608s 10 1.93x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Nitro 2.827s (-12.8% 🟢) 3.640s (-25.1% 🟢) 0.812s 9 1.00x
▲ Vercel Express 3.284s (+15.6% 🔺) 4.353s (+4.0%) 1.069s 7 1.16x
▲ Vercel Next.js (Turbopack) 3.503s (+10.8% 🔺) 4.813s (+6.9% 🔺) 1.310s 7 1.24x

🔍 Observability: Nitro | Express | Next.js (Turbopack)

Promise.all with 25 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🌐 Redis 🥇 Next.js (Turbopack) 2.472s 3.008s 0.535s 10 1.00x
💻 Local Next.js (Turbopack) 2.502s 3.007s 0.504s 10 1.01x
💻 Local Express 2.580s (+0.9%) 3.007s (~) 0.427s 10 1.04x
💻 Local Nitro 2.597s (+1.7%) 3.008s (~) 0.411s 10 1.05x
🌐 MongoDB Next.js (Turbopack) 4.686s 5.176s 0.490s 6 1.90x
🐘 Postgres Express 8.829s (+16.7% 🔺) 9.276s (+15.4% 🔺) 0.447s 4 3.57x
🐘 Postgres Nitro 9.544s (+32.1% 🔺) 10.034s (+24.9% 🔺) 0.491s 3 3.86x
🐘 Postgres Next.js (Turbopack) 12.743s 13.376s 0.634s 3 5.15x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Nitro 3.104s (-2.4%) 4.330s (-7.0% 🟢) 1.226s 7 1.00x
▲ Vercel Express 3.472s (+11.2% 🔺) 4.708s (+10.4% 🔺) 1.237s 7 1.12x
▲ Vercel Next.js (Turbopack) 3.519s (+9.5% 🔺) 5.173s (+18.9% 🔺) 1.654s 6 1.13x

🔍 Observability: Nitro | Express | Next.js (Turbopack)

Promise.all with 50 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🌐 Redis 🥇 Next.js (Turbopack) 4.038s 4.581s 0.542s 7 1.00x
💻 Local Next.js (Turbopack) 7.010s 7.514s 0.505s 4 1.74x
💻 Local Express 7.352s (+2.8%) 8.022s (~) 0.670s 4 1.82x
💻 Local Nitro 7.407s (+1.4%) 8.022s (~) 0.615s 4 1.83x
🌐 MongoDB Next.js (Turbopack) 9.787s 10.351s 0.564s 3 2.42x
🐘 Postgres Nitro 47.456s (-3.4%) 48.150s (-3.9%) 0.694s 1 11.75x
🐘 Postgres Express 47.996s (-3.6%) 48.113s (-4.0%) 0.117s 1 11.89x
🐘 Postgres Next.js (Turbopack) 53.170s 54.130s 0.960s 1 13.17x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Nitro 3.671s (~) 4.621s (-24.6% 🟢) 0.950s 7 1.00x
▲ Vercel Express 3.708s (+1.0%) 5.109s (+3.7%) 1.401s 6 1.01x
▲ Vercel Next.js (Turbopack) 4.040s (+6.2% 🔺) 5.561s (-3.1%) 1.521s 6 1.10x

🔍 Observability: Nitro | Express | Next.js (Turbopack)

Promise.race with 10 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🌐 Redis 🥇 Next.js (Turbopack) 1.250s 2.006s 0.755s 15 1.00x
💻 Local Next.js (Turbopack) 1.424s 2.004s 0.580s 15 1.14x
💻 Local Nitro 1.425s (~) 2.005s (~) 0.580s 15 1.14x
💻 Local Express 1.443s (+2.0%) 2.005s (~) 0.562s 15 1.15x
🐘 Postgres Next.js (Turbopack) 1.889s 2.011s 0.122s 15 1.51x
🐘 Postgres Express 1.952s (-9.5% 🟢) 2.682s (+3.4%) 0.730s 12 1.56x
🌐 MongoDB Next.js (Turbopack) 2.159s 3.007s 0.848s 10 1.73x
🐘 Postgres Nitro 2.239s (+7.3% 🔺) 2.740s (+2.2%) 0.501s 11 1.79x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Nitro 2.841s (-3.2%) 3.591s (-19.1% 🟢) 0.750s 9 1.00x
▲ Vercel Next.js (Turbopack) 2.999s (+2.5%) 4.029s (-3.6%) 1.030s 8 1.06x
▲ Vercel Express 3.789s (+37.0% 🔺) 4.815s (+13.5% 🔺) 1.026s 7 1.33x

🔍 Observability: Nitro | Next.js (Turbopack) | Express

Promise.race with 25 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🌐 Redis 🥇 Next.js (Turbopack) 2.459s 3.007s 0.548s 10 1.00x
💻 Local Next.js (Turbopack) 2.630s 3.008s 0.378s 10 1.07x
💻 Local Nitro 2.681s (+1.8%) 3.007s (~) 0.326s 10 1.09x
💻 Local Express 2.688s (+1.7%) 3.007s (~) 0.319s 10 1.09x
🌐 MongoDB Next.js (Turbopack) 4.663s 5.177s 0.514s 6 1.90x
🐘 Postgres Nitro 9.095s (-22.2% 🟢) 9.528s (-20.9% 🟢) 0.434s 4 3.70x
🐘 Postgres Express 10.772s (+4.9%) 11.376s (+9.8% 🔺) 0.604s 3 4.38x
🐘 Postgres Next.js (Turbopack) 12.447s 13.033s 0.586s 3 5.06x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Express 2.851s (-17.5% 🟢) 3.780s (-19.9% 🟢) 0.930s 8 1.00x
▲ Vercel Nitro 2.866s (-11.5% 🟢) 3.999s (-17.7% 🟢) 1.134s 8 1.01x
▲ Vercel Next.js (Turbopack) 3.024s (-7.5% 🟢) 4.128s (-12.1% 🟢) 1.104s 8 1.06x

🔍 Observability: Express | Nitro | Next.js (Turbopack)

Promise.race with 50 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🌐 Redis 🥇 Next.js (Turbopack) 4.052s 4.724s 0.671s 7 1.00x
💻 Local Next.js (Turbopack) 7.121s 7.766s 0.645s 4 1.76x
💻 Local Express 7.575s (-0.7%) 8.017s (~) 0.442s 4 1.87x
💻 Local Nitro 7.814s (+2.2%) 8.022s (~) 0.208s 4 1.93x
🌐 MongoDB Next.js (Turbopack) 10.078s 10.349s 0.271s 3 2.49x
🐘 Postgres Nitro 51.567s (-1.1%) 52.123s (-1.9%) 0.556s 1 12.72x
🐘 Postgres Express 51.708s (~) 52.110s (~) 0.402s 1 12.76x
🐘 Postgres Next.js (Turbopack) 53.796s 54.121s 0.325s 1 13.28x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Nitro 3.218s (-23.6% 🟢) 4.665s (-24.3% 🟢) 1.448s 7 1.00x
▲ Vercel Express 3.266s (-1.6%) 4.731s (-11.0% 🟢) 1.465s 7 1.01x
▲ Vercel Next.js (Turbopack) 3.570s (-3.4%) 4.776s (-12.9% 🟢) 1.206s 7 1.11x

🔍 Observability: Nitro | Express | Next.js (Turbopack)

Stream Benchmarks (includes TTFB metrics)
workflow with stream

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
🌐 Redis 🥇 Next.js (Turbopack) 0.143s 1.000s 0.001s 1.007s 0.864s 10 1.00x
💻 Local Next.js (Turbopack) 0.144s 1.001s 0.010s 1.015s 0.871s 10 1.01x
💻 Local Express 0.170s (-0.9%) 1.002s (~) 0.010s (-1.0%) 1.015s (~) 0.845s 10 1.19x
💻 Local Nitro 0.174s (+3.0%) 1.002s (~) 0.010s (-1.9%) 1.015s (~) 0.841s 10 1.22x
🌐 MongoDB Next.js (Turbopack) 0.497s 0.950s 0.001s 1.008s 0.511s 10 3.47x
🐘 Postgres Next.js (Turbopack) 0.925s 0.673s 0.001s 1.011s 0.086s 10 6.46x
🐘 Postgres Nitro 2.354s (+9.0% 🔺) 2.690s (-6.7% 🟢) 0.001s (~) 3.014s (~) 0.660s 10 16.44x
🐘 Postgres Express 2.476s (+11.5% 🔺) 2.566s (-9.0% 🟢) 0.001s (~) 3.013s (~) 0.537s 10 17.29x

▲ Production (Vercel)

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Nitro 2.528s (-6.7% 🟢) 2.885s (-18.5% 🟢) 0.162s (+19.1% 🔺) 3.641s (-19.8% 🟢) 1.112s 10 1.00x
▲ Vercel Express 2.674s (-4.7%) 3.074s (-13.1% 🟢) 0.160s (-29.0% 🟢) 4.008s (-12.9% 🟢) 1.334s 10 1.06x
▲ Vercel Next.js (Turbopack) 2.832s (+5.3% 🔺) 3.334s (+3.4%) 0.127s (-55.2% 🟢) 4.189s (-5.8% 🟢) 1.358s 10 1.12x

🔍 Observability: Nitro | Express | Next.js (Turbopack)

Summary

Fastest Framework by World

Winner determined by most benchmark wins

World 🥇 Fastest Framework Wins
💻 Local Next.js (Turbopack) 10/12
🐘 Postgres Next.js (Turbopack) 7/12
▲ Vercel Nitro 9/12
Fastest World by Framework

Winner determined by most benchmark wins

Framework 🥇 Fastest World Wins
Express 💻 Local 10/12
Next.js (Turbopack) 🌐 Redis 9/12
Nitro 💻 Local 10/12
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)

📋 View full workflow run

@ijjk ijjk changed the title Expose workflows manifest under Next.js diagnostics folder Expose workflows manifest under diagnostics folder Feb 10, 2026
@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented Feb 11, 2026

Comment thread packages/builders/src/base-builder.ts Outdated
Comment thread packages/core/e2e/local-build.test.ts Outdated
Copy link
Copy Markdown
Member

@TooTallNate TooTallNate left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left a couple suggestions, but otherwise :lgtm:

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.

3 participants