The Wire · Showcase
NEXT.JS OPTIMIZES APP ROUTING ENTRY POINTS WHILE WORKFLOW CUTS STREAM LATENCY 20 PERCENT
By RepoJournal · Filed · About Vercel
Next.js extracted invariant app-page handlers into shared runtime modules while Workflow's stream write batching moves into core, eliminating per-token round trips on idle producers.
Next.js shipped three optimization passes across routing and developer experience [1] [2] [3]. The headline win: app-page entry analysis now splits route-specific wrappers from shared runtime logic, keeping Turbopack's loader tree metadata while reducing redundant code per entry point. TypeScript plugin quick-info hovering now preserves verbosity metadata [3], fixing a regression where VS Code's expand-on-hover stopped working for Next.js config exports. Docs clarified prefetching as automatic framework behavior [4], not a controllable knob, and documented the streaming interrupts for notFound/forbidden/unauthorized patterns [5].
Workflow's performance push hit harder. Stream write batching moved from flushablePipe into WorkflowServerWritableStream core [6] [7], engaging regardless of piping path. Raw ReadableStreams crossing workflow/step boundaries previously batched nothing; batching now captures chunks arriving during in-flight requests. Leading-edge dispatch timing flipped: idle streams fire immediately instead of waiting 10ms [8], cutting ~20% latency on slow producers (>70% emit >10ms apart) while fast producers keep their in-flight accumulation. The dev watcher in workflow/next now respects .gitignore [9], preventing EMFILE crashes on large monorepos. Eve shipped three patches stabilizing remote agent auth, session reset helpers, and workspace hoisting in dev mode [10] [11] [12]. Turborepo fixed pnpm prune to preserve aliased and root dependencies [13] [14] [15]. Vercel CLI alerts improved custom alert display with structured inspect views [16], while @vercel/connect added experimental_startInstallation API [17]. Connect attach now resolves custom environments to stable IDs [18] [19].
One email a day. Unsubscribe in one click.
Keep up with Vercel in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
One email a day. Unsubscribe in one click. Read a past issue →
Action items
- → Test stream batching performance in workflow prod scenarios before next release vercel/workflow [plan]
- → Update monorepo Next.js config docs to reference new prefetch and interrupt guidance vercel/next.js [monitor]
- → Verify pnpm v9 pruning in turborepo test suites covers aliased deps vercel/turborepo [plan]
References
- [1] Optimize app page entry analysis ↗ vercel/next.js
- [2] Include additional prerender metadata about build-time routes ↗ vercel/next.js
- [3] [ts-plugin] Preserve TypeScript quick info metadata ↗ vercel/next.js
- [4] docs: reframe prefetching around automatic vs. controllable behavior ↗ vercel/next.js
- [5] docs: navigation interrupts after streaming has started (notFound, forbidden, unauthorized) ↗ vercel/next.js
- [6] perf(core): path-independent stream write batching (group commit in the server writable) (#3078) vercel/workflow
- [7] perf(core): path-independent stream write batching (group commit in the server writable) ↗ vercel/workflow
- [8] perf(core): immediate leading-edge dispatch for idle streams (flush window default 0) ↗ vercel/workflow
- [9] [next] Respect .gitignore in dev watcher to avoid EMFILE on large monorepos ↗ vercel/workflow
- [10] [email protected] ↗ vercel/eve
- [11] [email protected] ↗ vercel/eve
- [12] [email protected] ↗ vercel/eve
- [13] fix: Preserve pnpm aliased dependencies during prune ↗ vercel/turborepo
- [14] fix: Preserve pnpm root dependencies during prune ↗ vercel/turborepo
- [15] fix: Preserve pnpm aliased dependencies during prune (#13477) vercel/turborepo
- [16] Improve alerts CLI custom alert display ↗ vercel/vercel
- [17] @vercel/connect: add experimental startInstallation API ↗ vercel/vercel
- [18] [connex] Resolve custom environments when attaching projects ↗ vercel/vercel
- [19] [MKT-3999] Add custom environment routing to connect attach ↗ vercel/vercel