Skip to content

Update zoom factor on the trace viewer timeline#2041

Open
mitul-s wants to merge 2 commits into
mainfrom
ms/update-trackpad-zoom
Open

Update zoom factor on the trace viewer timeline#2041
mitul-s wants to merge 2 commits into
mainfrom
ms/update-trackpad-zoom

Conversation

@mitul-s
Copy link
Copy Markdown
Contributor

@mitul-s mitul-s commented May 20, 2026

Currently, zoom felt super slow on a native trackpad with pinch gesture. This speeds it up quite a bit.

We also have control for the mouse wheel which needs to be a bit slower.

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented May 20, 2026

🦋 Changeset detected

Latest commit: 2e0c521

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

This PR includes changesets to release 16 packages
Name Type
@workflow/web-shared Patch
@workflow/web Patch
@workflow/cli Patch
workflow Patch
@workflow/world-testing Patch
@workflow/core Patch
@workflow/builders Patch
@workflow/next Patch
@workflow/nitro Patch
@workflow/vitest Patch
@workflow/astro Patch
@workflow/nest Patch
@workflow/rollup Patch
@workflow/sveltekit Patch
@workflow/vite Patch
@workflow/nuxt 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

@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented May 20, 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 20, 2026 8:19pm
example-nextjs-workflow-webpack Ready Ready Preview, Comment May 20, 2026 8:19pm
example-workflow Ready Ready Preview, Comment May 20, 2026 8:19pm
workbench-astro-workflow Ready Ready Preview, Comment May 20, 2026 8:19pm
workbench-express-workflow Ready Ready Preview, Comment May 20, 2026 8:19pm
workbench-fastify-workflow Ready Ready Preview, Comment May 20, 2026 8:19pm
workbench-hono-workflow Ready Ready Preview, Comment May 20, 2026 8:19pm
workbench-nitro-workflow Building Building Preview, Comment May 20, 2026 8:19pm
workbench-nuxt-workflow Ready Ready Preview, Comment May 20, 2026 8:19pm
workbench-sveltekit-workflow Ready Ready Preview, Comment May 20, 2026 8:19pm
workbench-tanstack-start-workflow Ready Ready Preview, Comment May 20, 2026 8:19pm
workbench-vite-workflow Ready Ready Preview, Comment May 20, 2026 8:19pm
workflow-docs Building Building Preview, Comment, Open in v0 May 20, 2026 8:19pm
workflow-swc-playground Ready Ready Preview, Comment May 20, 2026 8:19pm
workflow-tarballs Ready Ready Preview, Comment May 20, 2026 8:19pm
workflow-web Ready Ready Preview, Comment May 20, 2026 8:19pm

@mitul-s mitul-s marked this pull request as ready for review May 20, 2026 20:15
@mitul-s mitul-s requested a review from a team as a code owner May 20, 2026 20:15
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 20, 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 (-32.7% 🟢) 1.006s (~) 0.977s 10 1.00x
💻 Local Express 0.031s (-29.8% 🟢) 1.006s (~) 0.974s 10 1.07x
💻 Local Next.js (Turbopack) 0.049s 1.005s 0.957s 10 1.67x
🐘 Postgres Express 0.049s (-14.8% 🟢) 1.012s (~) 0.963s 10 1.70x
🐘 Postgres Nitro 0.050s (-47.4% 🟢) 1.012s (-2.9%) 0.962s 10 1.73x
🐘 Postgres Next.js (Turbopack) 0.072s 1.014s 0.942s 10 2.47x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 0.269s (+7.0% 🔺) 2.096s (-10.2% 🟢) 1.827s 10 1.00x
▲ Vercel Express ⚠️ missing - - - -
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Next.js (Turbopack)

workflow with 1 step

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Nitro 1.072s (-5.2% 🟢) 2.006s (~) 0.933s 10 1.00x
💻 Local Express 1.076s (-4.4%) 2.006s (~) 0.930s 10 1.00x
🐘 Postgres Nitro 1.077s (-5.5% 🟢) 2.010s (~) 0.932s 10 1.00x
🐘 Postgres Express 1.090s (-4.9%) 2.009s (~) 0.919s 10 1.02x
💻 Local Next.js (Turbopack) 1.109s 2.006s 0.897s 10 1.03x
🐘 Postgres Next.js (Turbopack) 1.143s 2.011s 0.868s 10 1.07x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 1.798s (-11.7% 🟢) 4.024s (+5.1% 🔺) 2.227s 10 1.00x
▲ Vercel Express ⚠️ missing - - - -
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Next.js (Turbopack)

workflow with 10 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Nitro 10.395s (-5.0% 🟢) 11.021s (~) 0.626s 3 1.00x
🐘 Postgres Nitro 10.427s (-4.1%) 11.021s (~) 0.594s 3 1.00x
💻 Local Express 10.428s (-4.5%) 11.022s (~) 0.594s 3 1.00x
🐘 Postgres Express 10.441s (-4.8%) 11.021s (~) 0.580s 3 1.00x
💻 Local Next.js (Turbopack) 10.669s 11.022s 0.353s 3 1.03x
🐘 Postgres Next.js (Turbopack) 10.856s 11.028s 0.171s 3 1.04x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 13.606s (-21.4% 🟢) 15.522s (-20.0% 🟢) 1.916s 2 1.00x
▲ Vercel Express ⚠️ missing - - - -
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Next.js (Turbopack)

workflow with 25 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Nitro 13.432s (-10.8% 🟢) 14.027s (-12.5% 🟢) 0.595s 5 1.00x
🐘 Postgres Nitro 13.436s (-7.9% 🟢) 14.017s (-6.7% 🟢) 0.581s 5 1.00x
💻 Local Express 13.509s (-9.8% 🟢) 14.028s (-6.7% 🟢) 0.519s 5 1.01x
🐘 Postgres Express 13.521s (-7.3% 🟢) 14.020s (-6.7% 🟢) 0.499s 5 1.01x
💻 Local Next.js (Turbopack) 14.055s 14.829s 0.773s 5 1.05x
🐘 Postgres Next.js (Turbopack) 14.479s 15.023s 0.544s 4 1.08x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 22.115s (-57.9% 🟢) 24.385s (-55.3% 🟢) 2.271s 3 1.00x
▲ Vercel Express ⚠️ missing - - - -
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Next.js (Turbopack)

workflow with 50 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Nitro 11.839s (-29.5% 🟢) 12.021s (-29.4% 🟢) 0.182s 8 1.00x
💻 Local Express 11.954s (-28.0% 🟢) 12.147s (-28.7% 🟢) 0.193s 8 1.01x
🐘 Postgres Nitro 11.961s (-14.4% 🟢) 12.268s (-14.3% 🟢) 0.307s 8 1.01x
🐘 Postgres Express 12.006s (-14.3% 🟢) 12.392s (-15.1% 🟢) 0.386s 8 1.01x
💻 Local Next.js (Turbopack) 12.994s 13.166s 0.172s 7 1.10x
🐘 Postgres Next.js (Turbopack) 13.970s 14.596s 0.626s 7 1.18x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 37.402s (-90.5% 🟢) 40.470s (-89.8% 🟢) 3.068s 3 1.00x
▲ Vercel Express ⚠️ missing - - - -
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Next.js (Turbopack)

Promise.all with 10 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 1.142s (-9.4% 🟢) 2.007s (~) 0.865s 15 1.00x
💻 Local Nitro 1.172s (-28.2% 🟢) 2.006s (-3.3%) 0.834s 15 1.03x
💻 Local Express 1.184s (-20.5% 🟢) 2.006s (~) 0.822s 15 1.04x
🐘 Postgres Nitro 1.185s (-7.0% 🟢) 2.007s (~) 0.822s 15 1.04x
🐘 Postgres Next.js (Turbopack) 1.231s 2.009s 0.778s 15 1.08x
💻 Local Next.js (Turbopack) 1.291s 2.005s 0.715s 15 1.13x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 2.482s (-26.9% 🟢) 4.198s (-14.9% 🟢) 1.716s 8 1.00x
▲ Vercel Express ⚠️ missing - - - -
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Next.js (Turbopack)

Promise.all with 25 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 1.198s (-49.3% 🟢) 2.007s (-33.3% 🟢) 0.809s 15 1.00x
🐘 Postgres Nitro 1.212s (-48.5% 🟢) 2.007s (-33.3% 🟢) 0.795s 15 1.01x
🐘 Postgres Next.js (Turbopack) 1.428s 2.008s 0.581s 15 1.19x
💻 Local Nitro 1.682s (-46.5% 🟢) 2.005s (-48.4% 🟢) 0.323s 15 1.40x
💻 Local Next.js (Turbopack) 1.794s 2.221s 0.426s 14 1.50x
💻 Local Express 1.825s (-38.2% 🟢) 2.072s (-40.0% 🟢) 0.248s 15 1.52x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 3.742s (-47.3% 🟢) 5.751s (-35.4% 🟢) 2.009s 6 1.00x
▲ Vercel Express ⚠️ missing - - - -
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Next.js (Turbopack)

Promise.all with 50 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 1.304s (-62.6% 🟢) 2.007s (-49.9% 🟢) 0.703s 15 1.00x
🐘 Postgres Nitro 1.335s (-61.6% 🟢) 2.011s (-49.8% 🟢) 0.676s 15 1.02x
🐘 Postgres Next.js (Turbopack) 1.739s 2.155s 0.416s 14 1.33x
💻 Local Next.js (Turbopack) 4.699s 5.344s 0.645s 6 3.60x
💻 Local Nitro 4.735s (-43.3% 🟢) 5.345s (-40.7% 🟢) 0.610s 6 3.63x
💻 Local Express 5.516s (-33.8% 🟢) 6.012s (-33.4% 🟢) 0.496s 5 4.23x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 6.220s (-30.2% 🟢) 8.367s (-23.7% 🟢) 2.147s 4 1.00x
▲ Vercel Express ⚠️ missing - - - -
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Next.js (Turbopack)

Promise.race with 10 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 1.143s (-9.1% 🟢) 2.009s (~) 0.866s 15 1.00x
🐘 Postgres Express 1.150s (-8.5% 🟢) 2.011s (~) 0.861s 15 1.01x
🐘 Postgres Next.js (Turbopack) 1.243s 2.009s 0.766s 15 1.09x
💻 Local Next.js (Turbopack) 1.325s 2.006s 0.680s 15 1.16x
💻 Local Express 1.401s (-26.0% 🟢) 2.006s (-15.1% 🟢) 0.605s 15 1.23x
💻 Local Nitro 1.418s (-24.0% 🟢) 2.006s (-14.3% 🟢) 0.589s 15 1.24x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 2.701s (-7.9% 🟢) 4.332s (-6.7% 🟢) 1.631s 7 1.00x
▲ Vercel Express ⚠️ missing - - - -
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Next.js (Turbopack)

Promise.race with 25 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 1.210s (-48.3% 🟢) 2.008s (-33.3% 🟢) 0.798s 15 1.00x
🐘 Postgres Nitro 1.215s (-48.1% 🟢) 2.009s (-33.3% 🟢) 0.794s 15 1.00x
🐘 Postgres Next.js (Turbopack) 1.386s 2.010s 0.624s 15 1.14x
💻 Local Nitro 1.897s (-38.1% 🟢) 2.316s (-40.4% 🟢) 0.420s 13 1.57x
💻 Local Next.js (Turbopack) 2.056s 2.735s 0.679s 11 1.70x
💻 Local Express 2.115s (-32.5% 🟢) 2.508s (-33.4% 🟢) 0.392s 12 1.75x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 3.968s (+26.3% 🔺) 5.581s (+23.4% 🔺) 1.613s 6 1.00x
▲ Vercel Express ⚠️ missing - - - -
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Next.js (Turbopack)

Promise.race with 50 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 1.342s (-61.6% 🟢) 2.009s (-49.9% 🟢) 0.667s 15 1.00x
🐘 Postgres Nitro 1.346s (-61.3% 🟢) 2.008s (-49.9% 🟢) 0.662s 15 1.00x
🐘 Postgres Next.js (Turbopack) 1.713s 2.077s 0.364s 15 1.28x
💻 Local Next.js (Turbopack) 4.822s 5.514s 0.692s 6 3.59x
💻 Local Nitro 5.689s (-37.8% 🟢) 6.181s (-38.3% 🟢) 0.492s 6 4.24x
💻 Local Express 5.945s (-32.5% 🟢) 6.216s (-33.0% 🟢) 0.271s 5 4.43x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 5.675s (-16.0% 🟢) 7.387s (-13.5% 🟢) 1.712s 5 1.00x
▲ Vercel Express ⚠️ missing - - - -
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Next.js (Turbopack)

workflow with 10 sequential data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 0.427s (-48.0% 🟢) 1.007s (~) 0.580s 60 1.00x
🐘 Postgres Express 0.435s (-48.1% 🟢) 1.007s (-1.6%) 0.572s 60 1.02x
💻 Local Nitro 0.459s (-53.2% 🟢) 1.004s (-8.2% 🟢) 0.545s 60 1.08x
💻 Local Express 0.496s (-49.6% 🟢) 1.004s (-6.6% 🟢) 0.509s 60 1.16x
💻 Local Next.js (Turbopack) 0.734s 1.004s 0.270s 60 1.72x
🐘 Postgres Next.js (Turbopack) 0.767s 1.008s 0.241s 60 1.80x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 5.164s (-64.4% 🟢) 7.134s (-55.6% 🟢) 1.970s 9 1.00x
▲ Vercel Express ⚠️ missing - - - -
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Next.js (Turbopack)

workflow with 25 sequential data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 1.087s (-43.6% 🟢) 1.674s (-20.3% 🟢) 0.587s 54 1.00x
🐘 Postgres Express 1.100s (-44.4% 🟢) 1.792s (-20.6% 🟢) 0.693s 51 1.01x
💻 Local Nitro 1.167s (-61.5% 🟢) 2.005s (-46.6% 🟢) 0.838s 45 1.07x
💻 Local Express 1.228s (-59.3% 🟢) 2.006s (-44.0% 🟢) 0.779s 45 1.13x
💻 Local Next.js (Turbopack) 1.814s 2.027s 0.213s 45 1.67x
🐘 Postgres Next.js (Turbopack) 1.819s 2.077s 0.257s 44 1.67x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 13.070s (-73.8% 🟢) 14.847s (-71.3% 🟢) 1.777s 7 1.00x
▲ Vercel Express ⚠️ missing - - - -
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Next.js (Turbopack)

workflow with 50 sequential data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 2.029s (-50.6% 🟢) 2.508s (-45.5% 🟢) 0.479s 48 1.00x
🐘 Postgres Express 2.121s (-46.9% 🟢) 2.758s (-36.9% 🟢) 0.637s 44 1.05x
💻 Local Nitro 2.674s (-71.2% 🟢) 3.032s (-69.7% 🟢) 0.359s 40 1.32x
💻 Local Express 2.741s (-70.2% 🟢) 3.008s (-70.0% 🟢) 0.267s 40 1.35x
🐘 Postgres Next.js (Turbopack) 3.450s 4.010s 0.560s 30 1.70x
💻 Local Next.js (Turbopack) 3.900s 4.181s 0.281s 29 1.92x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 43.601s (-59.3% 🟢) 46.199s (-57.6% 🟢) 2.598s 3 1.00x
▲ Vercel Express ⚠️ missing - - - -
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Next.js (Turbopack)

workflow with 10 concurrent data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 0.174s (-38.5% 🟢) 1.006s (~) 0.832s 60 1.00x
🐘 Postgres Express 0.177s (-37.3% 🟢) 1.007s (~) 0.829s 60 1.02x
🐘 Postgres Next.js (Turbopack) 0.247s 1.006s 0.759s 60 1.42x
💻 Local Nitro 0.439s (-27.4% 🟢) 1.004s (-1.7%) 0.565s 60 2.52x
💻 Local Express 0.458s (-18.3% 🟢) 1.004s (~) 0.546s 60 2.63x
💻 Local Next.js (Turbopack) 0.620s 1.021s 0.402s 59 3.56x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 2.551s (+26.1% 🔺) 4.484s (+18.2% 🔺) 1.933s 14 1.00x
▲ Vercel Express ⚠️ missing - - - -
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Next.js (Turbopack)

workflow with 25 concurrent data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 0.292s (-41.2% 🟢) 1.006s (~) 0.714s 90 1.00x
🐘 Postgres Express 0.303s (-40.6% 🟢) 1.006s (~) 0.703s 90 1.04x
🐘 Postgres Next.js (Turbopack) 0.464s 1.007s 0.543s 90 1.59x
💻 Local Nitro 2.130s (-16.1% 🟢) 2.796s (-7.1% 🟢) 0.666s 33 7.29x
💻 Local Express 2.245s (-10.7% 🟢) 3.008s (~) 0.763s 30 7.69x
💻 Local Next.js (Turbopack) 2.414s 3.009s 0.596s 30 8.27x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 9.589s (+171.2% 🔺) 11.622s (+123.8% 🔺) 2.034s 8 1.00x
▲ Vercel Express ⚠️ missing - - - -
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Next.js (Turbopack)

workflow with 50 concurrent data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 0.620s (-21.5% 🟢) 1.006s (~) 0.386s 120 1.00x
🐘 Postgres Express 0.635s (-22.5% 🟢) 1.006s (-1.1%) 0.371s 120 1.02x
🐘 Postgres Next.js (Turbopack) 0.948s 1.471s 0.523s 82 1.53x
💻 Local Nitro 9.624s (-14.0% 🟢) 10.275s (-11.9% 🟢) 0.652s 12 15.52x
💻 Local Express 10.447s (-6.6% 🟢) 11.026s (-7.7% 🟢) 0.579s 11 16.84x
💻 Local Next.js (Turbopack) 11.591s 12.029s 0.438s 10 18.69x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 28.371s (+174.7% 🔺) 30.667s (+149.6% 🔺) 2.296s 5 1.00x
▲ Vercel Express ⚠️ missing - - - -
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: 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
💻 Local 🥇 Nitro 1.127s (+427.3% 🔺) 2.005s (+99.6% 🔺) 0.010s (-18.4% 🟢) 2.017s (+98.0% 🔺) 0.891s 10 1.00x
🐘 Postgres Nitro 1.137s (+454.6% 🔺) 2.001s (+100.2% 🔺) 0.001s (-20.0% 🟢) 2.010s (+98.8% 🔺) 0.873s 10 1.01x
💻 Local Express 1.139s (+472.0% 🔺) 2.005s (+99.6% 🔺) 0.013s (+6.6% 🔺) 2.021s (+98.5% 🔺) 0.882s 10 1.01x
🐘 Postgres Express 1.143s (+457.2% 🔺) 1.999s (+100.2% 🔺) 0.001s (-31.3% 🟢) 2.011s (+98.8% 🔺) 0.868s 10 1.01x
💻 Local Next.js (Turbopack) 1.175s 2.004s 0.010s 2.018s 0.843s 10 1.04x
🐘 Postgres Next.js (Turbopack) 1.260s 2.001s 0.002s 2.012s 0.753s 10 1.12x

▲ Production (Vercel)

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 2.270s (-66.9% 🟢) 3.754s (-56.6% 🟢) 1.584s (+150.6% 🔺) 6.113s (-37.5% 🟢) 3.843s 10 1.00x
▲ Vercel Express ⚠️ missing - - - - -
▲ Vercel Nitro ⚠️ missing - - - - -

🔍 Observability: Next.js (Turbopack)

stream pipeline with 5 transform steps (1MB)

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 1.507s (+141.4% 🔺) 2.001s (+98.8% 🔺) 0.004s (-4.1%) 2.024s (+98.0% 🔺) 0.518s 30 1.00x
💻 Local Nitro 1.509s (+80.0% 🔺) 2.011s (+98.7% 🔺) 0.009s (-1.1%) 2.022s (+81.2% 🔺) 0.513s 30 1.00x
🐘 Postgres Express 1.539s (+144.2% 🔺) 2.002s (+98.9% 🔺) 0.004s (+3.6%) 2.028s (+98.2% 🔺) 0.489s 30 1.02x
💻 Local Express 1.563s (+106.5% 🔺) 2.011s (+95.4% 🔺) 0.010s (+10.8% 🔺) 2.023s (+94.6% 🔺) 0.460s 30 1.04x
💻 Local Next.js (Turbopack) 1.682s 2.011s 0.009s 2.023s 0.341s 30 1.12x
🐘 Postgres Next.js (Turbopack) 1.759s 2.011s 0.004s 2.027s 0.268s 30 1.17x

▲ Production (Vercel)

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 6.112s (-63.9% 🟢) 7.686s (-57.9% 🟢) 0.412s (+95.1% 🔺) 8.597s (-54.6% 🟢) 2.485s 7 1.00x
▲ Vercel Express ⚠️ missing - - - - -
▲ Vercel Nitro ⚠️ missing - - - - -

🔍 Observability: Next.js (Turbopack)

10 parallel streams (1MB each)

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 0.668s (-31.0% 🟢) 1.068s (-14.4% 🟢) 0.000s (-57.9% 🟢) 1.078s (-14.3% 🟢) 0.410s 57 1.00x
🐘 Postgres Express 0.681s (-29.2% 🟢) 1.033s (-19.2% 🟢) 0.000s (+142.1% 🔺) 1.062s (-18.7% 🟢) 0.381s 57 1.02x
🐘 Postgres Next.js (Turbopack) 0.820s 1.073s 0.000s 1.083s 0.263s 56 1.23x
💻 Local Nitro 1.327s (+8.6% 🔺) 2.015s (~) 0.000s (+66.7% 🔺) 2.017s (~) 0.690s 30 1.99x
💻 Local Express 1.383s (+12.9% 🔺) 2.015s (~) 0.000s (-40.0% 🟢) 2.018s (~) 0.634s 30 2.07x
💻 Local Next.js (Turbopack) 1.478s 2.014s 0.000s 2.018s 0.540s 30 2.21x

▲ Production (Vercel)

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 4.197s (-58.8% 🟢) 5.683s (-50.7% 🟢) 0.001s (+Infinity% 🔺) 6.210s (-48.5% 🟢) 2.013s 10 1.00x
▲ Vercel Express ⚠️ missing - - - - -
▲ Vercel Nitro ⚠️ missing - - - - -

🔍 Observability: Next.js (Turbopack)

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.299s (-27.5% 🟢) 1.901s (-11.2% 🟢) 0.000s (-9.7% 🟢) 1.965s (-9.7% 🟢) 0.665s 31 1.00x
🐘 Postgres Express 1.429s (-19.4% 🟢) 2.103s (-3.4%) 0.000s (+Infinity% 🔺) 2.118s (-3.7%) 0.689s 29 1.10x
🐘 Postgres Next.js (Turbopack) 1.874s 2.351s 0.000s 2.360s 0.486s 26 1.44x
💻 Local Next.js (Turbopack) 3.177s 3.732s 0.000s 3.738s 0.561s 17 2.45x
💻 Local Express 3.224s (-7.0% 🟢) 3.968s (-1.6%) 0.001s (-37.5% 🟢) 3.970s (-1.6%) 0.746s 16 2.48x
💻 Local Nitro 3.384s (~) 3.697s (-8.3% 🟢) 0.001s (+12.5% 🔺) 4.034s (~) 0.650s 15 2.60x

▲ Production (Vercel)

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 5.742s (+2.2%) 7.568s (+8.4% 🔺) 0.000s (-100.0% 🟢) 8.080s (+7.2% 🔺) 2.338s 8 1.00x
▲ Vercel Express ⚠️ missing - - - - -
▲ Vercel Nitro ⚠️ missing - - - - -

🔍 Observability: Next.js (Turbopack)

Summary

Fastest Framework by World

Winner determined by most benchmark wins

World 🥇 Fastest Framework Wins
💻 Local Nitro 17/21
🐘 Postgres Nitro 15/21
▲ Vercel Next.js (Turbopack) 21/21
Fastest World by Framework

Winner determined by most benchmark wins

Framework 🥇 Fastest World Wins
Express 🐘 Postgres 15/21
Next.js (Turbopack) 🐘 Postgres 12/21
Nitro 🐘 Postgres 14/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.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 20, 2026

🧪 E2E Test Results

All tests passed

Summary

Passed Failed Skipped Total
✅ ▲ Vercel Production 1200 0 219 1419
✅ 💻 Local Development 1587 0 219 1806
✅ 📦 Local Production 1587 0 219 1806
✅ 🐘 Local Postgres 1587 0 219 1806
✅ 🪟 Windows 129 0 0 129
✅ 📋 Other 727 0 176 903
Total 6817 0 1052 7869

Details by Category

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

📋 View full workflow run

Signed-off-by: Mitul Shah <mitulxshah@gmail.com>
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