Skip to content

feat(build): add transport-neutral worker stages - #3083

Draft
james-elicx wants to merge 1 commit into
codex/cdn-stack-toolingfrom
codex/cdn-stack-core
Draft

feat(build): add transport-neutral worker stages#3083
james-elicx wants to merge 1 commit into
codex/cdn-stack-toolingfrom
codex/cdn-stack-core

Conversation

@james-elicx

@james-elicx james-elicx commented Aug 25, 2026

Copy link
Copy Markdown
Member

Summary

  • split App and Pages Worker handling into request and response stages
  • expose transport-neutral stage contracts and lazy virtual entry loaders
  • keep middleware, config routing, and request-specific composition above reusable response rendering
  • preserve single-stage behavior when no staged output is selected
  • isolate render dependencies from the request-stage startup graph

This layer contains no Cloudflare RPC, Worker export, Wrangler, or HTTP transport implementation.

Stack

  1. tooling baseline (chore(deps): update Cloudflare Workers tooling #3082)
  2. This PR: transport-neutral worker stages (feat(build): add transport-neutral worker stages #3083)
  3. Cloudflare Workers Cache entrypoint isolation (feat(cloudflare): isolate Workers Cache with staged entrypoints #3079)
  4. independently deployed HTTP stages (feat(build): support independently deployed worker stages #3084)
  5. Workers Cache tag parity (fix(cloudflare): preserve Workers Cache tag parity #3085)

Validation

  • CI: all 68 checks passed
  • 846 focused core/config tests passed locally
  • vp run vinext#build
  • Knip
@pkg-pr-new

pkg-pr-new Bot commented Aug 25, 2026

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/@vinext/cloudflare@3083
npm i https://pkg.pr.new/create-vinext-app@3083
npm i https://pkg.pr.new/@vinext/types@3083
npm i https://pkg.pr.new/vinext@3083

commit: eacb78d

@james-elicx
james-elicx force-pushed the codex/cdn-stack-core branch from e242325 to 2a1a9d5 Compare August 25, 2026 23:15
@github-actions

Copy link
Copy Markdown
Contributor
Example Preview Production Original
app-router-cloudflare preview production
pages-router-cloudflare preview production
app-router-playground preview production original
realworld-api-rest preview production
nextra-docs-template preview production
benchmarks preview production
hackernews preview production original
workers-cache preview production
web preview production
@james-elicx
james-elicx force-pushed the codex/cdn-stack-core branch from 2a1a9d5 to eacb78d Compare August 25, 2026 23:19
@github-actions

Copy link
Copy Markdown
Contributor

Performance benchmarks

Compared eacb78d against base 110ef06 using alternating same-runner rounds. Next.js was unchanged and skipped.

0 improved · 4 regressed · 2 within ±1.5%

Scenario Framework Baseline Current Change
Client bundle size (gzip) vinext 142.2 KB 142.2 KB ⚫ +0.0%
Client entry size (gzip) vinext 129.5 KB 129.5 KB ⚫ +0.0%
Dev server cold start vinext 3.03 s 3.15 s 🔴 +4.0%
Production build time vinext 3.33 s 3.39 s 🔴 +1.7%
RSC entry closure size (gzip) vinext 116.6 KB 121.1 KB 🔴 +3.9%
Server bundle size (gzip) vinext 198.1 KB 205.0 KB 🔴 +3.5%

View detailed results and traces

🟢 improvement · 🔴 regression · ⚫ change below 1.5% · paired base/head

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant