Skip to content

Conversation

@adriandlam
Copy link
Member

@adriandlam adriandlam commented Nov 25, 2025

express docs were using the fromNodeHandler export which is outdated

also simplify workbench express app

@changeset-bot
Copy link

changeset-bot bot commented Nov 25, 2025

⚠️ No Changeset found

Latest commit: c8b0232

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

@vercel
Copy link
Contributor

vercel bot commented Nov 25, 2025

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

Project Deployment Preview Comments Updated (UTC)
example-nextjs-workflow-turbopack Ready Ready Preview Comment Dec 2, 2025 5:30am
example-nextjs-workflow-webpack Ready Ready Preview Comment Dec 2, 2025 5:30am
example-workflow Ready Ready Preview Comment Dec 2, 2025 5:30am
workbench-express-workflow Ready Ready Preview Comment Dec 2, 2025 5:30am
workbench-fastify-workflow Error Error Dec 2, 2025 5:30am
workbench-hono-workflow Ready Ready Preview Comment Dec 2, 2025 5:30am
workbench-nitro-workflow Ready Ready Preview Comment Dec 2, 2025 5:30am
workbench-nuxt-workflow Ready Ready Preview Comment Dec 2, 2025 5:30am
workbench-sveltekit-workflow Ready Ready Preview Comment Dec 2, 2025 5:30am
workbench-vite-workflow Ready Ready Preview Comment Dec 2, 2025 5:30am
workflow-docs Ready Ready Preview Comment Dec 2, 2025 5:30am

@github-actions
Copy link
Contributor

github-actions bot commented Dec 2, 2025

📊 Benchmark Results

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

workflow with no steps

World Framework Workflow Time Wall Time Overhead vs Fastest
💻 Local 🥇 Next.js (Turbopack) 0.041s (~) 1.018s (~) 0.977s 1.00x
💻 Local Nitro 0.042s (-2.1%) 1.007s (~) 0.965s 1.02x
💻 Local Express 0.044s (+0.7%) 1.007s (~) 0.963s 1.07x
🐘 Postgres Nitro 0.302s (-5.7% 🟢) 1.022s (+0.5%) 0.720s 7.30x
🐘 Postgres Next.js (Turbopack) 0.369s (-6.4% 🟢) 1.026s (~) 0.657s 8.92x
🐘 Postgres Express 0.396s (-6.9% 🟢) 1.012s (~) 0.617s 9.56x
▲ Vercel Nitro 0.468s (-8.9% 🟢) 1.570s (+13.6% 🔺) 1.102s 11.30x
▲ Vercel Express 0.481s (+8.6% 🔺) 1.505s (+11.8% 🔺) 1.024s 11.62x
▲ Vercel Next.js (Turbopack) 0.567s (+26.7% 🔺) 1.540s (+14.3% 🔺) 0.973s 13.71x

workflow with 1 step

World Framework Workflow Time Wall Time Overhead vs Fastest
💻 Local 🥇 Next.js (Turbopack) 0.093s (~) 1.012s (~) 0.919s 1.00x
💻 Local Express 0.110s (-2.0%) 1.006s (~) 0.896s 1.18x
💻 Local Nitro 0.113s (-0.6%) 1.006s (~) 0.893s 1.21x
🐘 Postgres Next.js (Turbopack) 0.655s (-13.3% 🟢) 1.016s (~) 0.361s 7.01x
🐘 Postgres Express 0.769s (-40.3% 🟢) 1.010s (-49.8% 🟢) 0.241s 8.23x
🐘 Postgres Nitro 1.126s (-3.1%) 2.011s (~) 0.886s 12.05x
▲ Vercel Express 1.410s (+9.1% 🔺) 2.333s (-13.2% 🟢) 0.923s 15.10x
▲ Vercel Next.js (Turbopack) 1.424s (+2.4%) 2.518s (+4.7%) 1.094s 15.24x
▲ Vercel Nitro 1.425s (+8.6% 🔺) 2.534s (+15.7% 🔺) 1.109s 15.25x

workflow with 10 sequential steps

World Framework Workflow Time Wall Time Overhead vs Fastest
💻 Local 🥇 Next.js (Turbopack) 0.618s (-3.4%) 1.010s (~) 0.392s 1.00x
💻 Local Express 0.758s (-2.5%) 1.005s (~) 0.247s 1.23x
💻 Local Nitro 0.784s (-0.7%) 1.006s (~) 0.222s 1.27x
🐘 Postgres Express 5.197s (-31.9% 🟢) 6.014s (-26.9% 🟢) 0.817s 8.41x
🐘 Postgres Next.js (Turbopack) 5.708s (+11.1% 🔺) 6.029s (~) 0.321s 9.24x
▲ Vercel Next.js (Turbopack) 9.475s (-2.2%) 10.407s (+0.9%) 0.932s 15.33x
▲ Vercel Express 9.534s (-1.4%) 10.264s (~) 0.730s 15.43x
🐘 Postgres Nitro 10.512s (+1.7%) 11.019s (~) 0.507s 17.01x
▲ Vercel Nitro 11.021s (+14.1% 🔺) 11.700s (+10.7% 🔺) 0.678s 17.83x

workflow with 10 parallel steps

World Framework Workflow Time Wall Time Overhead vs Fastest
💻 Local 🥇 Nitro 0.379s (-8.5% 🟢) 1.005s (~) 0.626s 1.00x
💻 Local Next.js (Turbopack) 0.383s (-3.2%) 1.012s (~) 0.630s 1.01x
💻 Local Express 0.401s (+2.2%) 1.006s (~) 0.605s 1.06x
🐘 Postgres Express 0.878s (-14.1% 🟢) 1.209s (-25.1% 🟢) 0.331s 2.32x
🐘 Postgres Next.js (Turbopack) 1.316s (+27.9% 🔺) 2.030s (+40.9% 🔺) 0.714s 3.47x
🐘 Postgres Nitro 1.615s (-1.8%) 2.011s (~) 0.396s 4.26x
▲ Vercel Express 2.392s (-30.5% 🟢) 2.993s (-30.3% 🟢) 0.602s 6.31x
▲ Vercel Next.js (Turbopack) 2.476s (-16.3% 🟢) 3.348s (-10.6% 🟢) 0.871s 6.53x
▲ Vercel Nitro 2.640s (-4.4%) 3.643s (+4.9%) 1.003s 6.96x

Stream Benchmarks

Stream benchmarks include Time to First Byte (TTFB) metrics.

workflow with stream

World Framework Workflow Time TTFB Wall Time Overhead vs Fastest
💻 Local 🥇 Next.js (Turbopack) 0.157s (+3.4%) 1.003s (~) 1.014s (~) 0.857s 1.00x
💻 Local Express 0.175s (~) 0.992s (~) 1.008s (~) 0.834s 1.11x
💻 Local Nitro 0.183s (-1.7%) 0.992s (~) 1.009s (~) 0.826s 1.16x
🐘 Postgres Nitro 0.983s (-31.2% 🟢) 1.082s (-36.7% 🟢) 1.311s (-34.8% 🟢) 0.327s 6.26x
🐘 Postgres Express 1.027s (-26.3% 🟢) 1.438s (-16.5% 🟢) 1.511s (-24.9% 🟢) 0.484s 6.54x
🐘 Postgres Next.js (Turbopack) 1.130s (-8.0% 🟢) 1.916s (+5.4% 🔺) 2.017s (~) 0.887s 7.19x
▲ Vercel Next.js (Turbopack) 2.294s (-6.0% 🟢) 2.550s (-8.1% 🟢) 2.949s (-7.2% 🟢) 0.655s 14.60x
▲ Vercel Express 2.386s (+1.1%) 2.748s (-1.4%) 3.176s (~) 0.790s 15.19x
▲ Vercel Nitro 2.458s (-4.0%) 2.864s (-0.7%) 3.347s (+2.0%) 0.889s 15.65x

Summary: Fastest Framework by World

Winner determined by most benchmark wins

World 🥇 Fastest Framework Wins
💻 Local Next.js (Turbopack) 4/5
🐘 Postgres Nitro 2/5
▲ Vercel Express 2/5

Summary: Fastest World by Framework

Winner determined by most benchmark wins

Framework 🥇 Fastest World Wins
Express 💻 Local 5/5
Next.js (Turbopack) 💻 Local 5/5
Nitro 💻 Local 5/5
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)
  • Wall Time: Total testbench time (trigger workflow + poll for result)
  • Overhead: Testbench overhead (Wall Time - Workflow Time)
  • vs Fastest: How much slower compared to the fastest configuration for this benchmark

Worlds:

  • 💻 Local: In-memory filesystem world
  • 🐘 Postgres: PostgreSQL database world
  • ▲ Vercel: Vercel production world

@adriandlam adriandlam merged commit 2e25421 into main Dec 2, 2025
65 checks passed
@adriandlam adriandlam deleted the docs/fix-express-nitro-config branch December 2, 2025 17:09
adriandlam added a commit that referenced this pull request Dec 2, 2025
* docs: fix express nitro config

* docs: remove fromNodeHandler wrapper in express app

* fix: dup import in docs

* docs: fix use srvx toFetchHandler

* docs: express add rollup deps

* test

* simplify express
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