Skip to content

Version Packages (beta)#1787

Closed
ghost wants to merge 1 commit intomainfrom
changeset-release/main
Closed

Version Packages (beta)#1787
ghost wants to merge 1 commit intomainfrom
changeset-release/main

Conversation

@ghost
Copy link
Copy Markdown

@ghost ghost commented Apr 16, 2026

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

⚠️⚠️⚠️⚠️⚠️⚠️

main is currently in pre mode so this branch has prereleases rather than normal releases. If you want to exit prereleases, run changeset pre exit on main.

⚠️⚠️⚠️⚠️⚠️⚠️

Releases

@workflow/swc-plugin@5.0.0-beta.3

Major Changes

  • #1686 417c493 Thanks @TooTallNate! - BREAKING CHANGE: Remove client transform mode from SWC plugin. The client and step modes were nearly identical — both preserved step function bodies, replaced workflow bodies with throw stubs, and emitted the same JSON manifest. The only differences were the step registration mechanism (simple property assignment vs. IIFE) and whether DCE ran. Step mode now absorbs all client-mode behaviors: hoisted variable references for object property steps (so .stepId is accessible), and dead code elimination. All integrations that previously used mode: 'client' now use mode: 'step'.

@workflow/core@5.0.0-beta.3

Minor Changes

Patch Changes

  • Updated dependencies [354840e]:
    • @workflow/world-vercel@5.0.0-beta.3

workflow@5.0.0-beta.3

Minor Changes

Patch Changes

  • Updated dependencies [417c493, e295bae]:
    • @workflow/cli@5.0.0-beta.3
    • @workflow/next@5.0.0-beta.3
    • @workflow/rollup@5.0.0-beta.3
    • @workflow/nest@5.0.0-beta.3
    • @workflow/core@5.0.0-beta.3
    • @workflow/astro@5.0.0-beta.3
    • @workflow/nitro@5.0.0-beta.3
    • @workflow/sveltekit@5.0.0-beta.3
    • @workflow/typescript-plugin@5.0.0-beta.2
    • @workflow/nuxt@5.0.0-beta.3

@workflow/world-vercel@5.0.0-beta.3

Minor Changes

  • #1824 354840e Thanks @TooTallNate! - Add VERCEL_WORKFLOW_SERVER_PROTECTION_BYPASS and VERCEL_WORKFLOW_SERVER_URL env vars.

@workflow/ai@5.0.0-beta.3

Patch Changes

  • #1544 3f6d98f Thanks @iNishant! - Forward strict, inputExamples, and providerOptions tool properties to language model providers, and handle type: 'dynamic' tools

  • Updated dependencies [e295bae]:

    • workflow@5.0.0-beta.3

@workflow/astro@5.0.0-beta.3

Patch Changes

  • Updated dependencies [417c493]:
    • @workflow/swc-plugin@5.0.0-beta.3
    • @workflow/builders@5.0.0-beta.3
    • @workflow/rollup@5.0.0-beta.3
    • @workflow/vite@5.0.0-beta.3

@workflow/builders@5.0.0-beta.3

Patch Changes

  • #1686 417c493 Thanks @TooTallNate! - BREAKING CHANGE: Remove client transform mode from SWC plugin. The client and step modes were nearly identical — both preserved step function bodies, replaced workflow bodies with throw stubs, and emitted the same JSON manifest. The only differences were the step registration mechanism (simple property assignment vs. IIFE) and whether DCE ran. Step mode now absorbs all client-mode behaviors: hoisted variable references for object property steps (so .stepId is accessible), and dead code elimination. All integrations that previously used mode: 'client' now use mode: 'step'.

  • Updated dependencies [417c493, e295bae]:

    • @workflow/swc-plugin@5.0.0-beta.3
    • @workflow/core@5.0.0-beta.3

@workflow/cli@5.0.0-beta.3

Patch Changes

  • #1686 417c493 Thanks @TooTallNate! - BREAKING CHANGE: Remove client transform mode from SWC plugin. The client and step modes were nearly identical — both preserved step function bodies, replaced workflow bodies with throw stubs, and emitted the same JSON manifest. The only differences were the step registration mechanism (simple property assignment vs. IIFE) and whether DCE ran. Step mode now absorbs all client-mode behaviors: hoisted variable references for object property steps (so .stepId is accessible), and dead code elimination. All integrations that previously used mode: 'client' now use mode: 'step'.

  • Updated dependencies [417c493, e295bae, 354840e]:

    • @workflow/swc-plugin@5.0.0-beta.3
    • @workflow/builders@5.0.0-beta.3
    • @workflow/core@5.0.0-beta.3
    • @workflow/world-vercel@5.0.0-beta.3
    • @workflow/web@5.0.0-beta.3

@workflow/nest@5.0.0-beta.3

Patch Changes

  • #1686 417c493 Thanks @TooTallNate! - BREAKING CHANGE: Remove client transform mode from SWC plugin. The client and step modes were nearly identical — both preserved step function bodies, replaced workflow bodies with throw stubs, and emitted the same JSON manifest. The only differences were the step registration mechanism (simple property assignment vs. IIFE) and whether DCE ran. Step mode now absorbs all client-mode behaviors: hoisted variable references for object property steps (so .stepId is accessible), and dead code elimination. All integrations that previously used mode: 'client' now use mode: 'step'.

  • Updated dependencies [417c493]:

    • @workflow/swc-plugin@5.0.0-beta.3
    • @workflow/builders@5.0.0-beta.3

@workflow/next@5.0.0-beta.3

Patch Changes

  • #1686 417c493 Thanks @TooTallNate! - BREAKING CHANGE: Remove client transform mode from SWC plugin. The client and step modes were nearly identical — both preserved step function bodies, replaced workflow bodies with throw stubs, and emitted the same JSON manifest. The only differences were the step registration mechanism (simple property assignment vs. IIFE) and whether DCE ran. Step mode now absorbs all client-mode behaviors: hoisted variable references for object property steps (so .stepId is accessible), and dead code elimination. All integrations that previously used mode: 'client' now use mode: 'step'.

  • Updated dependencies [417c493, e295bae]:

    • @workflow/swc-plugin@5.0.0-beta.3
    • @workflow/builders@5.0.0-beta.3
    • @workflow/core@5.0.0-beta.3

@workflow/nitro@5.0.0-beta.3

Patch Changes

  • Updated dependencies [417c493, e295bae]:
    • @workflow/swc-plugin@5.0.0-beta.3
    • @workflow/builders@5.0.0-beta.3
    • @workflow/rollup@5.0.0-beta.3
    • @workflow/core@5.0.0-beta.3
    • @workflow/vite@5.0.0-beta.3

@workflow/nuxt@5.0.0-beta.3

Patch Changes

  • Updated dependencies []:
    • @workflow/nitro@5.0.0-beta.3

@workflow/rollup@5.0.0-beta.3

Patch Changes

  • #1686 417c493 Thanks @TooTallNate! - BREAKING CHANGE: Remove client transform mode from SWC plugin. The client and step modes were nearly identical — both preserved step function bodies, replaced workflow bodies with throw stubs, and emitted the same JSON manifest. The only differences were the step registration mechanism (simple property assignment vs. IIFE) and whether DCE ran. Step mode now absorbs all client-mode behaviors: hoisted variable references for object property steps (so .stepId is accessible), and dead code elimination. All integrations that previously used mode: 'client' now use mode: 'step'.

  • Updated dependencies [417c493]:

    • @workflow/swc-plugin@5.0.0-beta.3
    • @workflow/builders@5.0.0-beta.3

@workflow/sveltekit@5.0.0-beta.3

Patch Changes

  • Updated dependencies [417c493]:
    • @workflow/swc-plugin@5.0.0-beta.3
    • @workflow/builders@5.0.0-beta.3
    • @workflow/rollup@5.0.0-beta.3
    • @workflow/vite@5.0.0-beta.3

@workflow/vite@5.0.0-beta.3

Patch Changes

  • Updated dependencies [417c493]:
    • @workflow/builders@5.0.0-beta.3

@workflow/vitest@5.0.0-beta.3

Patch Changes

  • Updated dependencies [417c493, e295bae]:
    • @workflow/builders@5.0.0-beta.3
    • @workflow/rollup@5.0.0-beta.3
    • @workflow/core@5.0.0-beta.3

@workflow/web-shared@5.0.0-beta.3

Patch Changes

  • Updated dependencies [e295bae]:
    • @workflow/core@5.0.0-beta.3

@workflow/world-testing@5.0.0-beta.3

Patch Changes

  • Updated dependencies [417c493, e295bae]:
    • @workflow/cli@5.0.0-beta.3
    • @workflow/core@5.0.0-beta.3
    • workflow@5.0.0-beta.3

@workflow/web@5.0.0-beta.3

@ghost ghost self-requested a review as a code owner April 16, 2026 22:52
@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented Apr 16, 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 Apr 22, 2026 0:48am
example-nextjs-workflow-webpack Ready Ready Preview, Comment Apr 22, 2026 0:48am
example-workflow Ready Ready Preview, Comment Apr 22, 2026 0:48am
workbench-astro-workflow Ready Ready Preview, Comment Apr 22, 2026 0:48am
workbench-express-workflow Ready Ready Preview, Comment Apr 22, 2026 0:48am
workbench-fastify-workflow Ready Ready Preview, Comment Apr 22, 2026 0:48am
workbench-hono-workflow Ready Ready Preview, Comment Apr 22, 2026 0:48am
workbench-nitro-workflow Ready Ready Preview, Comment Apr 22, 2026 0:48am
workbench-nuxt-workflow Ready Ready Preview, Comment Apr 22, 2026 0:48am
workbench-sveltekit-workflow Ready Ready Preview, Comment Apr 22, 2026 0:48am
workbench-vite-workflow Ready Ready Preview, Comment Apr 22, 2026 0:48am
workflow-docs Ready Ready Preview, Comment, Open in v0 Apr 22, 2026 0:48am
workflow-swc-playground Ready Ready Preview, Comment Apr 22, 2026 0:48am
workflow-web Ready Ready Preview, Comment Apr 22, 2026 0:48am

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 16, 2026

🧪 E2E Test Results

Some tests failed

Summary

Passed Failed Skipped Total
✅ 💻 Local Development 1054 0 86 1140
❌ 📦 Local Production 1052 2 86 1140
✅ 🐘 Local Postgres 1054 0 86 1140
✅ 🪟 Windows 95 0 0 95
✅ 📋 Other 267 0 18 285
Total 3522 2 276 3800

❌ Failed Tests

📦 Local Production (2 failed)

hono-stable (1 failed):

  • hookWorkflow

nextjs-webpack-stable (1 failed):

  • distributedAbortController - reconnect to existing controller

Details by Category

✅ 💻 Local Development
App Passed Failed Skipped
✅ astro-stable 89 0 6
✅ express-stable 89 0 6
✅ fastify-stable 89 0 6
✅ hono-stable 89 0 6
✅ nextjs-turbopack-canary 76 0 19
✅ nextjs-turbopack-stable 95 0 0
✅ nextjs-webpack-canary 76 0 19
✅ nextjs-webpack-stable 95 0 0
✅ nitro-stable 89 0 6
✅ nuxt-stable 89 0 6
✅ sveltekit-stable 89 0 6
✅ vite-stable 89 0 6
❌ 📦 Local Production
App Passed Failed Skipped
✅ astro-stable 89 0 6
✅ express-stable 89 0 6
✅ fastify-stable 89 0 6
❌ hono-stable 88 1 6
✅ nextjs-turbopack-canary 76 0 19
✅ nextjs-turbopack-stable 95 0 0
✅ nextjs-webpack-canary 76 0 19
❌ nextjs-webpack-stable 94 1 0
✅ nitro-stable 89 0 6
✅ nuxt-stable 89 0 6
✅ sveltekit-stable 89 0 6
✅ vite-stable 89 0 6
✅ 🐘 Local Postgres
App Passed Failed Skipped
✅ astro-stable 89 0 6
✅ express-stable 89 0 6
✅ fastify-stable 89 0 6
✅ hono-stable 89 0 6
✅ nextjs-turbopack-canary 76 0 19
✅ nextjs-turbopack-stable 95 0 0
✅ nextjs-webpack-canary 76 0 19
✅ nextjs-webpack-stable 95 0 0
✅ nitro-stable 89 0 6
✅ nuxt-stable 89 0 6
✅ sveltekit-stable 89 0 6
✅ vite-stable 89 0 6
✅ 🪟 Windows
App Passed Failed Skipped
✅ nextjs-turbopack 95 0 0
✅ 📋 Other
App Passed Failed Skipped
✅ e2e-local-dev-nest-stable 89 0 6
✅ e2e-local-postgres-nest-stable 89 0 6
✅ e2e-local-prod-nest-stable 89 0 6

📋 View full workflow run


Some E2E test jobs failed:

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

Check the workflow run for details.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 16, 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.041s (-6.5% 🟢) 1.005s (~) 0.963s 10 1.00x
💻 Local Nitro 0.044s (+2.6%) 1.005s (~) 0.961s 10 1.07x
💻 Local Next.js (Turbopack) 0.047s 1.005s 0.958s 10 1.14x
🐘 Postgres Next.js (Turbopack) 0.057s 1.010s 0.953s 10 1.37x
🐘 Postgres Express 0.058s (~) 1.010s (~) 0.952s 10 1.40x
🐘 Postgres Nitro 0.062s (-35.3% 🟢) 1.011s (-3.1%) 0.949s 10 1.49x
workflow with 1 step

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Next.js (Turbopack) 1.119s 2.006s 0.887s 10 1.00x
💻 Local Nitro 1.124s (-0.6%) 2.005s (~) 0.881s 10 1.00x
💻 Local Express 1.133s (+0.7%) 2.006s (~) 0.873s 10 1.01x
🐘 Postgres Next.js (Turbopack) 1.139s 2.010s 0.871s 10 1.02x
🐘 Postgres Express 1.148s (~) 2.010s (~) 0.861s 10 1.03x
🐘 Postgres Nitro 1.150s (+0.9%) 2.011s (~) 0.861s 10 1.03x
workflow with 10 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Next.js (Turbopack) 10.797s 11.023s 0.226s 3 1.00x
🐘 Postgres Nitro 10.895s (~) 11.023s (~) 0.128s 3 1.01x
🐘 Postgres Express 10.901s (-0.6%) 11.021s (~) 0.119s 3 1.01x
🐘 Postgres Next.js (Turbopack) 10.904s 11.020s 0.116s 3 1.01x
💻 Local Nitro 10.916s (~) 11.023s (~) 0.106s 3 1.01x
💻 Local Express 10.932s (~) 11.022s (~) 0.090s 3 1.01x
workflow with 25 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Next.js (Turbopack) 14.425s 15.024s 0.599s 4 1.00x
🐘 Postgres Nitro 14.518s (-0.5%) 15.021s (~) 0.504s 4 1.01x
🐘 Postgres Express 14.538s (~) 15.026s (~) 0.488s 4 1.01x
💻 Local Next.js (Turbopack) 14.646s 15.031s 0.385s 4 1.02x
💻 Local Express 14.912s (~) 15.028s (~) 0.116s 4 1.03x
💻 Local Nitro 14.983s (-0.5%) 15.279s (-4.7%) 0.296s 4 1.04x
workflow with 50 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Next.js (Turbopack) 13.855s 14.022s 0.167s 7 1.00x
🐘 Postgres Nitro 13.957s (~) 14.165s (-1.0%) 0.208s 7 1.01x
🐘 Postgres Express 13.987s (~) 14.165s (-2.9%) 0.178s 7 1.01x
💻 Local Next.js (Turbopack) 16.142s 17.032s 0.890s 6 1.17x
💻 Local Express 16.369s (-1.4%) 17.029s (~) 0.661s 6 1.18x
💻 Local Nitro 16.627s (-0.9%) 17.030s (~) 0.403s 6 1.20x
Promise.all with 10 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Next.js (Turbopack) 1.222s 2.010s 0.787s 15 1.00x
🐘 Postgres Nitro 1.265s (-0.7%) 2.008s (~) 0.743s 15 1.04x
🐘 Postgres Express 1.271s (+0.8%) 2.009s (~) 0.739s 15 1.04x
💻 Local Express 1.493s (~) 2.005s (~) 0.512s 15 1.22x
💻 Local Nitro 1.530s (-6.2% 🟢) 2.006s (-3.3%) 0.475s 15 1.25x
💻 Local Next.js (Turbopack) 1.553s 2.005s 0.452s 15 1.27x
Promise.all with 25 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 2.312s (-1.7%) 3.010s (~) 0.698s 10 1.00x
🐘 Postgres Express 2.351s (~) 3.010s (~) 0.658s 10 1.02x
🐘 Postgres Next.js (Turbopack) 2.394s 3.010s 0.616s 10 1.04x
💻 Local Express 2.747s (-7.0% 🟢) 3.009s (-12.9% 🟢) 0.261s 10 1.19x
💻 Local Nitro 2.940s (-6.5% 🟢) 3.676s (-5.4% 🟢) 0.735s 9 1.27x
💻 Local Next.js (Turbopack) 2.978s 3.453s 0.475s 9 1.29x
Promise.all with 50 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 3.468s (~) 4.012s (~) 0.544s 8 1.00x
🐘 Postgres Express 3.479s (~) 4.011s (~) 0.532s 8 1.00x
🐘 Postgres Next.js (Turbopack) 3.668s 4.011s 0.343s 8 1.06x
💻 Local Express 7.687s (-7.8% 🟢) 8.271s (-8.4% 🟢) 0.584s 4 2.22x
💻 Local Next.js (Turbopack) 8.121s 8.519s 0.398s 4 2.34x
💻 Local Nitro 8.905s (+6.7% 🔺) 9.276s (+2.8%) 0.371s 4 2.57x
Promise.race with 10 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Next.js (Turbopack) 1.234s 2.008s 0.774s 15 1.00x
🐘 Postgres Nitro 1.257s (~) 2.008s (~) 0.751s 15 1.02x
🐘 Postgres Express 1.258s (~) 2.008s (~) 0.749s 15 1.02x
💻 Local Next.js (Turbopack) 1.513s 2.006s 0.493s 15 1.23x
💻 Local Express 1.553s (-18.0% 🟢) 2.005s (-15.2% 🟢) 0.452s 15 1.26x
💻 Local Nitro 1.580s (-15.3% 🟢) 2.006s (-14.3% 🟢) 0.426s 15 1.28x
Promise.race with 25 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 2.335s (~) 3.011s (~) 0.676s 10 1.00x
🐘 Postgres Nitro 2.341s (~) 3.010s (~) 0.669s 10 1.00x
🐘 Postgres Next.js (Turbopack) 2.403s 3.009s 0.606s 10 1.03x
💻 Local Express 2.836s (-9.5% 🟢) 3.107s (-17.4% 🟢) 0.272s 10 1.21x
💻 Local Next.js (Turbopack) 2.970s 3.565s 0.595s 9 1.27x
💻 Local Nitro 2.977s (-2.9%) 3.759s (-3.3%) 0.782s 8 1.27x
Promise.race with 50 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 3.462s (-1.1%) 4.010s (~) 0.548s 8 1.00x
🐘 Postgres Nitro 3.498s (~) 4.012s (~) 0.514s 8 1.01x
🐘 Postgres Next.js (Turbopack) 3.692s 4.012s 0.320s 8 1.07x
💻 Local Express 7.706s (-12.4% 🟢) 8.271s (-10.8% 🟢) 0.565s 4 2.23x
💻 Local Next.js (Turbopack) 8.580s 9.274s 0.694s 4 2.48x
💻 Local Nitro 9.121s (~) 9.773s (-2.5%) 0.652s 4 2.63x
workflow with 10 sequential data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Next.js (Turbopack) 0.767s 1.006s 0.239s 60 1.00x
🐘 Postgres Express 0.820s (-2.3%) 1.006s (-1.7%) 0.186s 60 1.07x
🐘 Postgres Nitro 0.833s (+1.5%) 1.023s (+1.7%) 0.191s 59 1.09x
💻 Local Next.js (Turbopack) 0.848s 1.005s 0.157s 60 1.11x
💻 Local Express 1.011s (+2.8%) 1.627s (+51.2% 🔺) 0.615s 37 1.32x
💻 Local Nitro 1.042s (+6.2% 🔺) 1.942s (+77.5% 🔺) 0.900s 31 1.36x
workflow with 25 sequential data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Next.js (Turbopack) 1.918s 2.150s 0.232s 42 1.00x
🐘 Postgres Express 1.924s (-2.6%) 2.075s (-8.1% 🟢) 0.151s 44 1.00x
🐘 Postgres Nitro 1.940s (+0.7%) 2.151s (+2.4%) 0.211s 42 1.01x
💻 Local Next.js (Turbopack) 2.708s 3.008s 0.299s 30 1.41x
💻 Local Express 3.043s (+0.9%) 3.759s (+4.8%) 0.716s 24 1.59x
💻 Local Nitro 3.062s (+0.9%) 3.759s (~) 0.697s 24 1.60x
workflow with 50 sequential data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Next.js (Turbopack) 3.833s 4.010s 0.177s 30 1.00x
🐘 Postgres Express 3.930s (-1.5%) 4.251s (-2.7%) 0.321s 29 1.03x
🐘 Postgres Nitro 3.972s (-3.2%) 4.405s (-4.3%) 0.432s 28 1.04x
💻 Local Next.js (Turbopack) 8.728s 9.017s 0.289s 14 2.28x
💻 Local Express 8.879s (-3.6%) 9.324s (-6.9% 🟢) 0.445s 13 2.32x
💻 Local Nitro 9.053s (-2.6%) 9.479s (-5.4% 🟢) 0.427s 13 2.36x
workflow with 10 concurrent data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Next.js (Turbopack) 0.258s 1.007s 0.749s 60 1.00x
🐘 Postgres Express 0.281s (~) 1.007s (~) 0.726s 60 1.09x
🐘 Postgres Nitro 0.284s (~) 1.007s (~) 0.723s 60 1.10x
💻 Local Express 0.572s (+2.1%) 1.004s (~) 0.432s 60 2.22x
💻 Local Nitro 0.578s (-4.5%) 1.005s (-1.7%) 0.427s 60 2.24x
💻 Local Next.js (Turbopack) 0.584s 1.021s 0.437s 59 2.27x
workflow with 25 concurrent data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 0.484s (-5.0%) 1.007s (~) 0.522s 90 1.00x
🐘 Postgres Next.js (Turbopack) 0.491s 1.007s 0.516s 90 1.01x
🐘 Postgres Nitro 0.503s (+1.4%) 1.006s (~) 0.503s 90 1.04x
💻 Local Express 2.462s (-2.0%) 3.008s (~) 0.547s 30 5.08x
💻 Local Nitro 2.487s (-2.0%) 3.009s (~) 0.521s 30 5.13x
💻 Local Next.js (Turbopack) 2.650s 3.009s 0.358s 30 5.47x
workflow with 50 concurrent data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Next.js (Turbopack) 0.777s 1.007s 0.229s 120 1.00x
🐘 Postgres Express 0.780s (-4.8%) 1.007s (-1.0%) 0.227s 120 1.00x
🐘 Postgres Nitro 0.794s (~) 1.007s (~) 0.214s 120 1.02x
💻 Local Express 10.910s (-2.5%) 11.484s (-3.8%) 0.574s 11 14.04x
💻 Local Nitro 10.970s (-2.0%) 11.482s (-1.6%) 0.512s 11 14.12x
💻 Local Next.js (Turbopack) 11.084s 11.482s 0.397s 11 14.26x
Stream Benchmarks (includes TTFB metrics)
workflow with stream

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Next.js (Turbopack) 0.172s 1.003s 0.012s 1.018s 0.846s 10 1.00x
🐘 Postgres Next.js (Turbopack) 0.188s 1.001s 0.001s 1.009s 0.821s 10 1.10x
💻 Local Express 0.204s (+2.4%) 1.004s (~) 0.010s (-18.2% 🟢) 1.016s (~) 0.812s 10 1.19x
💻 Local Nitro 0.204s (-4.6%) 1.004s (~) 0.012s (-4.0%) 1.018s (~) 0.814s 10 1.19x
🐘 Postgres Nitro 0.208s (+1.3%) 0.996s (~) 0.001s (-6.7% 🟢) 1.010s (~) 0.803s 10 1.21x
🐘 Postgres Express 0.209s (+2.1%) 1.001s (~) 0.001s (-37.5% 🟢) 1.009s (~) 0.800s 10 1.22x
stream pipeline with 5 transform steps (1MB)

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Next.js (Turbopack) 0.599s 1.009s 0.005s 1.025s 0.426s 59 1.00x
🐘 Postgres Express 0.616s (-2.2%) 1.003s (~) 0.013s (+238.1% 🔺) 1.030s (+0.7%) 0.414s 59 1.03x
🐘 Postgres Nitro 0.631s (+1.1%) 1.021s (+1.5%) 0.003s (-37.0% 🟢) 1.036s (+1.4%) 0.406s 58 1.05x
💻 Local Next.js (Turbopack) 0.754s 1.011s 0.009s 1.116s 0.363s 54 1.26x
💻 Local Nitro 0.754s (-10.1% 🟢) 1.013s (~) 0.009s (-0.7%) 1.024s (-8.2% 🟢) 0.270s 59 1.26x
💻 Local Express 0.872s (+15.2% 🔺) 1.011s (-1.7%) 0.009s (-0.9%) 1.115s (+7.3% 🔺) 0.244s 54 1.46x
10 parallel streams (1MB each)

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 0.931s (-3.1%) 1.084s (-15.1% 🟢) 0.000s (-100.0% 🟢) 1.098s (-15.9% 🟢) 0.167s 55 1.00x
🐘 Postgres Next.js (Turbopack) 0.948s 1.177s 0.000s 1.184s 0.236s 51 1.02x
🐘 Postgres Nitro 0.978s (+0.9%) 1.237s (-0.8%) 0.000s (+46.9% 🔺) 1.253s (~) 0.275s 49 1.05x
💻 Local Nitro 1.253s (+2.4%) 2.023s (~) 0.000s (~) 2.025s (~) 0.772s 30 1.34x
💻 Local Express 1.253s (+2.3%) 2.022s (~) 0.000s (+10.0% 🔺) 2.024s (~) 0.771s 30 1.35x
💻 Local Next.js (Turbopack) 1.268s 2.019s 0.000s 2.022s 0.754s 30 1.36x
fan-out fan-in 10 streams (1MB each)

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 1.723s (-2.8%) 2.035s (-6.5% 🟢) 0.000s (NaN%) 2.071s (-5.8% 🟢) 0.349s 29 1.00x
🐘 Postgres Nitro 1.782s (-0.5%) 2.067s (-3.5%) 0.000s (-100.0% 🟢) 2.090s (-3.9%) 0.308s 29 1.03x
🐘 Postgres Next.js (Turbopack) 1.813s 2.107s 0.000s 2.113s 0.300s 29 1.05x
💻 Local Express 3.494s (+0.8%) 4.103s (+1.7%) 0.000s (-66.7% 🟢) 4.105s (+1.7%) 0.612s 15 2.03x
💻 Local Nitro 3.589s (+6.0% 🔺) 4.035s (~) 0.001s (+37.5% 🔺) 4.038s (~) 0.448s 15 2.08x
💻 Local Next.js (Turbopack) 3.729s 4.232s 0.000s 4.236s 0.507s 15 2.16x

Summary

Fastest Framework by World

Winner determined by most benchmark wins

World 🥇 Fastest Framework Wins
💻 Local Express 10/21
🐘 Postgres Next.js (Turbopack) 13/21
Fastest World by Framework

Winner determined by most benchmark wins

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

📋 View full workflow run


Some benchmark jobs failed:

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

Check the workflow run for details.

@ghost ghost force-pushed the changeset-release/main branch from aae4c5a to 377ad9e Compare April 17, 2026 01:18
@ghost ghost force-pushed the changeset-release/main branch from db9fc7e to 8cfd0ac Compare April 17, 2026 01:35
@ghost ghost force-pushed the changeset-release/main branch from 8cfd0ac to c8807a4 Compare April 17, 2026 14:18
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.

1 participant