# nuxt/nuxt — codebase unpack

> Canonical page: https://codevetter.com/unpack/nuxt

This is a deterministic Repo Unpack scan of nuxt/nuxt — a structural map, not a review, security audit, or maintainer-endorsed description.

- Scanned commit: 3fde4d625cc353e83ac10f6b75db8ca480167be4 (2026-10-01)
- Last upstream commit: feat(kit): add `resolveServerVariant` + `addServerImports` variant support (#36445)
- Generated by codevetter 1.15.0 on 2026-10-02
- 2361 files scanned · 6.7 MB

Source inspection; upstream code and tests were not executed.

## Languages

- TypeScript: 1160 files
- Vue: 613 files
- Markdown: 263 files
- JSON: 137 files
- YAML: 54 files
- JavaScript: 23 files
- CSS: 19 files
- HTML: 8 files

## Repository structure

- test/ — 1152 files
- packages/ — 852 files
- docs/ — 275 files
- .github/ — 37 files
- scripts/ — 9 files
- playground/ — 5 files
- .devcontainer/ — 2 files
- .stackblitz/ — 2 files

Probable source entrypoint: `packages/` (inferred from the tree, not upstream docs)

## Package

- package.json: nuxt-framework — 70 declared dependencies

## Structural health signals

Average score 7.4/10 across 96 files; 17 hotspots. These are deterministic review leads, not proof of a bug.

## Recent history

- 3fde4d625cc3 (2026-10-01) feat(kit): add `resolveServerVariant` + `addServerImports` variant support (#36445)
- 7802b2c21683 (2026-09-30) feat(nitro): improve scanning + reporting for nitro v2-style code (#36442)
- ebdec4cb5ad1 (2026-09-27) docs: document typing runtime config and events in modules
- ee2bac0856db (2026-09-27) fix(schema,vite-server): accept `null` from prerender ignore functions
- e43d847a6bf5 (2026-09-27) fix(nuxt): keep `CookieOptions` compatible with cookie serialize options

## Overview

Nuxt is a Vue full-stack framework for developers building server-rendered, static, hybrid, and client-rendered websites and applications. At commit 3fde4d625cc353e83ac10f6b75db8ca480167be4, this monorepo contains the core framework, module toolkit, configuration schema, app builders, and separate server integrations, with package manifests on the 5.0.0-0 prerelease line. Its distinctive architecture combines filesystem discovery and generated modules with request-scoped Vue applications, serialized hydration payloads, and an extensible renderer. This brief is agent-authored and has not been human-reviewed; it reflects bounded source inspection, with no repository code or tests executed.

## System map

This is a framework monorepo rather than a single deployed application. Configuration loading and module initialization produce generated application modules consumed by an app builder and a separately selected server builder. Vue application state lives within NuxtApp instances, while renderer artifacts are cached per renderer instance and sessions persist through sealed cookies. Published package exports, documentation packaging, playground scripts, and release automation form separate delivery surfaces.
- The core programmatic entrypoint exports createNuxt and loadNuxt from core/nuxt.ts and build from core/builder.ts; the nuxt and nuxi executables delegate directly to the external @nuxt/cli/cli package. — [packages/nuxt/src/index.ts#L1-2](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/index.ts#L1-L2) [packages/nuxt/bin/nuxt.mjs#L1-2](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/bin/nuxt.mjs#L1-L2) [packages/nuxt/package.json#L14-22](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/package.json#L14-L22)
- The documented package split assigns module authoring to packages/kit, framework orchestration to packages/nuxt, configuration types/defaults to packages/schema, and compilation to the Vite, Webpack, and Rspack packages. — [CONTRIBUTING.md#L19-26](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/CONTRIBUTING.md#L19-L26)
- createNuxt constructs the Hookable lifecycle, virtual filesystem, application registry, build-output providers, and serverBuild description; ready enters initNuxt within Nuxt context. — [packages/nuxt/src/core/nuxt.ts#L63-99](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/nuxt.ts#L63-L99)
- App-builder configuration maps vite, webpack, and rspack names to their packages and defaults to Vite; server.builder independently maps nitro and vite and defaults to @nuxt/nitro-server. — [packages/schema/src/config/build.ts#L8-23](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/schema/src/config/build.ts#L8-L23) [packages/schema/src/config/nitro.ts#L4-23](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/schema/src/config/nitro.ts#L4-L23)
- The server renderer exposes createNuxtRenderer(...).fetch(event) returning Promise<Response>; Nitro adapts ServerRequest into an event, optionally decorates legacy semantics, and calls that renderer. — [packages/nuxt/src/runtime/server/renderer/index.ts#L51-69](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/index.ts#L51-L69) [packages/nitro-server/src/runtime/handlers/renderer.ts#L21-48](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nitro-server/src/runtime/handlers/renderer.ts#L21-L48)
- NuxtApp owns reactive payload.data, payload.state, payload._errors, async-data registries, and state defaults; createRendererInstance separately owns renderer options and lazily loaded build artifacts. — [packages/nuxt/src/app/nuxt.ts#L247-297](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/nuxt.ts#L247-L297) [packages/nuxt/src/runtime/server/renderer/instance.ts#L5-26](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/instance.ts#L5-L26) [packages/nuxt/src/runtime/server/renderer/build-files.ts#L41-72](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/build-files.ts#L41-L72)
- The inspected persistence paths include hydration payloads, optional template writes, renderer prerender payload-cache operations, and sealed session cookies; these have distinct state owners. — [packages/nuxt/src/core/app.ts#L89-125](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/app.ts#L89-L125) [packages/nuxt/src/runtime/server/renderer/index.ts#L295-303](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/index.ts#L295-L303) [packages/nuxt/src/runtime/server/renderer/index.ts#L401-408](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/index.ts#L401-L408) [packages/nuxt/src/server/session.ts#L205-232](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/server/session.ts#L205-L232)
- Root scripts build workspace packages, prepare development artifacts, run the playground, and expose distinct unit, runtime, fixture, type, bundle, public-API, and Playwright test commands; the package manager is pinned to pnpm@12.6.0. — [package.json#L10-48](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/package.json#L10-L48) [package.json#L122-125](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/package.json#L122-L125) [playground/package.json#L5-14](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/playground/package.json#L5-L14)
- The documented Nitro Node deployment starts .output/server/index.mjs and uses NITRO_PORT/PORT and NITRO_HOST/HOST; the default server-build description resolves client/server inputs under buildDir and deployment output under .output. — [docs/1.getting-started/16.deployment.md#L21-39](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/docs/1.getting-started/16.deployment.md#L21-L39) [packages/kit/src/internal/server-build.ts#L55-76](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/kit/src/internal/server-build.ts#L55-L76)
- The docs package distributes raw Markdown/YAML. UI templates are built with Vite, UnoCSS, and rendering plugins, while docs deployment automation triggers a webhook on documentation pushes. — [docs/package.json#L10-22](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/docs/package.json#L10-L22) [packages/ui-templates/vite.config.ts#L16-37](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/ui-templates/vite.config.ts#L16-L37) [.github/workflows/docs-deploy.yml#L3-21](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/.github/workflows/docs-deploy.yml#L3-L21)
- Release automation creates release PRs, handles merged release branches, packs tarballs, and publishes through npm OIDC; the main branch remains a v5 prerelease line and v5 tags publish under 5x. — [.github/workflows/release.yml#L34-54](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/.github/workflows/release.yml#L34-L54) [.github/workflows/release.yml#L56-76](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/.github/workflows/release.yml#L56-L76) [.github/workflows/release.yml#L95-115](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/.github/workflows/release.yml#L95-L115)

## Feature catalog

The developer-facing surface centers on convention-based Vue applications, generated routing, SSR-friendly data access, and deployment choices. The inspected implementation also supports metadata management, component discovery, plugin execution, navigation prefetching, cookie sessions, and route-specific rendering behavior. Development tooling includes filesystem-driven regeneration and optional DevTools integration. This catalog covers the evidenced feature families and explicit experimental limits, rather than claiming an exhaustive inventory of every composable or external CLI command.
- Filesystem routing scans page directories across layers, builds a route tree, resolves metadata, and emits routes.mjs through normalizeRoutes. — [packages/nuxt/src/pages/utils.ts#L92-115](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/pages/utils.ts#L92-L115) [packages/nuxt/src/pages/module.ts#L813-828](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/pages/module.ts#L813-L828)
- Navigation middleware combines global middleware, matched-page metadata, and routeRules.appMiddleware; named middleware loads on demand and may continue, cancel, redirect, or return an error. — [packages/nuxt/src/pages/runtime/plugins/router.ts#L265-305](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/pages/runtime/plugins/router.ts#L265-L305) [packages/nuxt/src/pages/runtime/plugins/router.ts#L313-343](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/pages/runtime/plugins/router.ts#L313-L343)
- SSR, client-only shells, prerender payload extraction, cached-route payload extraction, noScripts, and streaming are selected through build flags and route rules in renderRoute. — [packages/nuxt/src/runtime/server/renderer/index.ts#L270-306](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/index.ts#L270-L306) [packages/nuxt/src/runtime/server/renderer/index.ts#L340-359](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/index.ts#L340-L359) [packages/nuxt/src/runtime/server/renderer/index.ts#L506-525](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/index.ts#L506-L525)
- useFetch and useLazyFetch wrap typed fetching with reactive request keys and fetch options; useAsyncData supplies default values, transforms, pick, deduplication, cancellation, and status/error refs. — [packages/nuxt/src/app/composables/fetch.ts#L701-735](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/fetch.ts#L701-L735) [packages/nuxt/src/app/composables/fetch.ts#L756-782](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/fetch.ts#L756-L782) [packages/nuxt/src/app/composables/asyncData.ts#L902-950](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/asyncData.ts#L902-L950) [packages/nuxt/src/app/composables/asyncData.ts#L969-1010](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/asyncData.ts#L969-L1010)
- useState creates keyed reactive hydration state using the $s prefix; clearNuxtState can target all keys, selected keys, or a predicate, then reset defaults or delete values. — [packages/nuxt/src/app/composables/state.ts#L19-48](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/state.ts#L19-L48) [packages/nuxt/src/app/composables/state.ts#L63-88](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/state.ts#L63-L88)
- useHead, useHeadSafe, and useSeoMeta obtain the request/server head or injected client head and delegate to Unhead. — [packages/nuxt/src/head/runtime/composables.ts#L17-48](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/head/runtime/composables.ts#L17-L48)
- Auto-imports use an Unimport context with an OXC parser, generated #imports exports, source transforms, and composables/utils scanning; component discovery separately scans component directories and exposes components:extend. — [packages/nuxt/src/imports/module.ts#L104-137](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/imports/module.ts#L104-L137) [packages/nuxt/src/imports/module.ts#L152-169](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/imports/module.ts#L152-L169) [packages/nuxt/src/components/module.ts#L200-221](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/components/module.ts#L200-L221)
- NuxtLink supports visibility and interaction prefetch triggers, opt-outs, a link:prefetch hook, production route-component prefetching, and cleanup of observation and idle callbacks. — [packages/nuxt/src/app/components/nuxt-link.ts#L467-510](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/components/nuxt-link.ts#L467-L510) [packages/nuxt/src/app/components/nuxt-link.ts#L513-537](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/components/nuxt-link.ts#L513-L537)
- Core initialization registers NuxtLayout, NuxtErrorBoundary, ClientOnly, DevOnly, ServerPlaceholder, and NuxtLink as built-in components. — [packages/nuxt/src/core/nuxt.ts#L646-689](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/nuxt.ts#L646-L689)
- Component-island requests have a dedicated /__nuxt_island/ dispatch boundary, and client payload revival can schedule island JSON fetches and retain their results in payload.data. — [packages/nuxt/src/runtime/server/renderer/index.ts#L64-69](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/index.ts#L64-L69) [packages/nuxt/src/app/plugins/revive-payload.client.ts#L33-68](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/plugins/revive-payload.client.ts#L33-L68)
- The nuxt/server surface exports session management, purpose-specific secret derivation, CORS handling, validated query/body helpers, and request-event types. — [packages/nuxt/src/server/index.ts#L22-40](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/server/index.ts#L22-L40) [packages/nuxt/src/server/session.ts#L102-124](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/server/session.ts#L102-L124)
- Layered configuration supports theme, _extends, and extends sources, a custom layer resolver, remote-layer support checks, and aliases such as #layers/<name>. — [packages/kit/src/loader/config.ts#L355-383](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/kit/src/loader/config.ts#L355-L383) [packages/kit/src/loader/config.ts#L466-468](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/kit/src/loader/config.ts#L466-L468)
- Development mode regenerates affected templates on builder:watch and can restart when local module files change; Vite DevTools is added by default unless disabled, while telemetry can be disabled through configuration or NUXT_TELEMETRY_DISABLED. — [packages/nuxt/src/core/builder.ts#L52-88](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/builder.ts#L52-L88) [packages/nuxt/src/core/nuxt.ts#L897-902](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/nuxt.ts#L897-L902) [packages/nuxt/src/core/nuxt.ts#L996-1005](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/nuxt.ts#L996-L1005) [packages/nuxt/src/core/nuxt.ts#L1048-1050](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/nuxt.ts#L1048-L1050)
- The experimental @nuxt/vite-server builds a static SPA or SSR fetch handler and supports generation by crawling the server, but explicitly excludes server routes/middleware and HTTP-layer caching, proxying, and CORS rules. — [packages/vite-server/src/index.ts#L17-35](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/vite-server/src/index.ts#L17-L35) [packages/vite-server/src/index.ts#L49-72](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/vite-server/src/index.ts#L49-L72)

## Data flow

Configuration and filesystem inputs are transformed into resolved options, discovered application structure, generated modules, and bundled artifacts. Incoming requests enter a server adapter and receive a fresh SSR context before Vue plugins, routing, and page data execute. Async results and useState values become serialized payloads that the browser revives before mounting. Session persistence follows a separate cookie-sealing path and does not use the hydration-state registry.
- loadNuxtConfig populates environment-based defaults before loading the schema, imports executable config with native import or Jiti fallback, and passes layered configuration through c12. — [packages/kit/src/loader/config.ts#L262-289](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/kit/src/loader/config.ts#L262-L289) [packages/kit/src/loader/config.ts#L305-336](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/kit/src/loader/config.ts#L305-L336) [packages/kit/src/loader/config.ts#L355-368](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/kit/src/loader/config.ts#L355-L368)
- Resolved layer configuration supplies user hooks in reverse layer order; module resolution similarly registers extended-layer modules before project modules and deduplicates resolved module paths. — [packages/nuxt/src/core/nuxt.ts#L218-224](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/nuxt.ts#L218-L224) [packages/nuxt/src/core/nuxt.ts#L1197-1232](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/nuxt.ts#L1197-L1232)
- generateApp resolves application structure, combines default and user templates, invokes app:templates, compiles contents, and stores changed results under absolute paths and #build aliases in nuxt.vfs. — [packages/nuxt/src/core/app.ts#L53-79](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/app.ts#L53-L79) [packages/nuxt/src/core/app.ts#L89-114](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/app.ts#L89-L114)
- Page files from layer appPages directories become prioritized InputFile entries, then a PagesContext route tree and augmented NuxtPage records; routes.mjs serializes normalized routes and imports for runtime use. — [packages/nuxt/src/pages/utils.ts#L92-115](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/pages/utils.ts#L92-L115) [packages/nuxt/src/pages/module.ts#L813-828](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/pages/module.ts#L813-L828)
- Nitro's renderer adapter converts ServerRequest through createEvent, then renderRoute calls createSSRContext to attach URL, runtime config, head manager, payload, reducer registry, and module tracking. — [packages/nitro-server/src/runtime/handlers/renderer.ts#L23-33](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nitro-server/src/runtime/handlers/renderer.ts#L23-L33) [packages/nuxt/src/runtime/server/renderer/index.ts#L251-258](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/index.ts#L251-L258) [packages/nuxt/src/runtime/server/renderer/app.ts#L21-44](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/app.ts#L21-L44)
- createNuxtApp connects its payload to ssrContext and exposes only runtimeConfig.public and runtimeConfig.app as client config, while private runtime config remains available through the server context. — [packages/nuxt/src/app/nuxt.ts#L299-314](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/nuxt.ts#L299-L314) [packages/nuxt/src/runtime/server/renderer/app.ts#L23-32](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/app.ts#L23-L32)
- useFetch derives a hashed key from the request and option segments, selects custom $fetch or request-scoped server fetching, and delegates execution to useAsyncData with a cancellation signal. — [packages/nuxt/src/app/composables/fetch.ts#L701-708](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/fetch.ts#L701-L708) [packages/nuxt/src/app/composables/fetch.ts#L756-767](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/fetch.ts#L756-L767)
- Async-data execution applies transform and pick before assigning data/status; unless serialize is false, the same result is written into nuxtApp.payload.data[key], and stale replaced promises are prevented from updating state. — [packages/nuxt/src/app/composables/asyncData.ts#L963-989](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/asyncData.ts#L963-L989) [packages/nuxt/src/app/composables/asyncData.ts#L991-1010](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/asyncData.ts#L991-L1010)
- Payload output uses devalue stringify with custom reducers; splitPayload separates data and prerenderedAt from initial state, and renderRoute chooses full inline JSON or initial JSON referencing an external payload URL. — [packages/nuxt/src/runtime/server/renderer/payload.ts#L10-46](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/payload.ts#L10-L46) [packages/nuxt/src/runtime/server/renderer/payload.ts#L99-108](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/payload.ts#L99-L108) [packages/nuxt/src/runtime/server/renderer/index.ts#L506-515](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/index.ts#L506-L515)
- Client payload loading parses __NUXT_DATA__, optionally retrieves external JSON with force-cache for prerendered pages or no-cache for runtime pages, merges client config, and installs registered revivers before assigning the result to NuxtApp. — [packages/nuxt/src/app/composables/payload.ts#L228-262](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/payload.ts#L228-L262) [packages/nuxt/src/app/plugins/revive-payload.client.ts#L77-85](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/plugins/revive-payload.client.ts#L77-L85)
- Hydration reads async-data values from payload.data and useState values from payload.state; ordinary nonmanual async-data cache lookup can instead read nuxtApp.static.data after hydration. — [packages/nuxt/src/app/composables/asyncData.ts#L1064-1071](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/asyncData.ts#L1064-L1071) [packages/nuxt/src/app/composables/state.ts#L29-46](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/state.ts#L29-L46)
- Session input arrives through a named request cookie, is unsealed once per event/name, and becomes a cached Session object; updates merge data, reseal the versioned payload, and replace that session's Set-Cookie header. — [packages/nuxt/src/server/session.ts#L134-170](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/server/session.ts#L134-L170) [packages/nuxt/src/server/session.ts#L195-232](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/server/session.ts#L195-L232)

## Behavior traces

The traced flows cover framework startup/build, an SSR page request through browser hydration, SSR-friendly fetching, and cookie persistence across requests. Each trace follows concrete functions and state transitions in the inspected implementation. Development regeneration and error rendering add alternate paths that influence these flows. These are source-derived execution sequences, not observed runtime executions.
- Startup begins with kit loadNuxt normalizing cwd and dev overrides, resolving the installed nuxt package, and importing its loadNuxt; core loadNuxt then calls loadNuxtConfig and createNuxt, and awaits ready unless ready:false. — [packages/kit/src/loader/nuxt.ts#L20-38](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/kit/src/loader/nuxt.ts#L20-L38) [packages/nuxt/src/core/nuxt.ts#L967-980](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/nuxt.ts#L967-L980) [packages/nuxt/src/core/nuxt.ts#L1100-1104](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/nuxt.ts#L1100-L1104) [packages/nuxt/src/core/nuxt.ts#L1144-1145](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/nuxt.ts#L1144-L1145)
- Initialization registers core pages/head/components/compiler/import/schema modules, installs resolved modules, emits modules:done, calls bundleServer, registers payload support, and emits ready. — [packages/nuxt/src/core/nuxt.ts#L1025-1039](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/nuxt.ts#L1025-L1039) [packages/nuxt/src/core/nuxt.ts#L780-796](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/nuxt.ts#L780-L796) [packages/nuxt/src/core/nuxt.ts#L944-963](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/nuxt.ts#L944-L963)
- A normal build calls ensureGeneratedTsConfigs → createApp → generateApp → resolveBuilder → build:before → builder.bundle → build:done; a production build then closes Nuxt. — [packages/nuxt/src/core/builder.ts#L17-36](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/builder.ts#L17-L36) [packages/nuxt/src/core/builder.ts#L118-132](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/builder.ts#L118-L132) [packages/nuxt/src/core/builder.ts#L147-151](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/builder.ts#L147-L151)
- In the separate Nitro build path, build:done invokes nitro:build:before → prepare; development calls build and waits for compiled, while production calls prerender and then build, with public assets copied through rollup:before. — [packages/nitro-server/src/index.ts#L1169-1173](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nitro-server/src/index.ts#L1169-L1173) [packages/nitro-server/src/legacy.ts#L13-18](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nitro-server/src/legacy.ts#L13-L18) [packages/nitro-server/src/legacy.ts#L56-74](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nitro-server/src/legacy.ts#L56-L74)
- A buffered SSR request follows Nitro handler.fetch → createEvent → renderer.fetch → renderRoute → createSSRContext → instance.getRenderer; build-files loads the server entry and creates vue-bundle-renderer's renderer. — [packages/nitro-server/src/runtime/handlers/renderer.ts#L21-33](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nitro-server/src/runtime/handlers/renderer.ts#L21-L33) [packages/nuxt/src/runtime/server/renderer/index.ts#L94-97](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/index.ts#L94-L97) [packages/nuxt/src/runtime/server/renderer/index.ts#L251-309](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/index.ts#L251-L309) [packages/nuxt/src/runtime/server/renderer/build-files.ts#L56-72](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/build-files.ts#L56-L72)
- The server entry runs createApp(RootComponent) → createNuxtApp → applyPlugins → app:created; buffered rendering then calls renderToString, app:rendered, render:html, and runtime.createResponse for the document. — [packages/nuxt/src/app/entry.ts#L22-37](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/entry.ts#L22-L37) [packages/nuxt/src/runtime/server/renderer/index.ts#L362-390](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/index.ts#L362-L390) [packages/nuxt/src/runtime/server/renderer/index.ts#L555-562](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/index.ts#L555-L562)
- Browser startup detects serverRendered/data-ssr → chooses createSSRApp or createApp → creates NuxtApp → applies plugins, including payload revival → emits app:created and app:beforeMount → mounts → emits app:mounted. — [packages/nuxt/src/app/entry.ts#L51-60](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/entry.ts#L51-L60) [packages/nuxt/src/app/entry.ts#L83-94](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/entry.ts#L83-L94) [packages/nuxt/src/app/plugins/revive-payload.client.ts#L77-85](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/plugins/revive-payload.client.ts#L77-L85)
- SSR fetching follows useFetch → useAsyncData → createInitialFetch/buildAsyncData → execute → selected $fetch; server execution registers its promise with onServerPrefetch or app:created, then applies transforms and writes serializable data to the payload. — [packages/nuxt/src/app/composables/fetch.ts#L756-767](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/fetch.ts#L756-L767) [packages/nuxt/src/app/composables/asyncData.ts#L481-487](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/asyncData.ts#L481-L487) [packages/nuxt/src/app/composables/asyncData.ts#L498-520](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/asyncData.ts#L498-L520) [packages/nuxt/src/app/composables/asyncData.ts#L969-989](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/asyncData.ts#L969-L989)
- Cookie persistence follows useSession → getSession → loadSession → getCookie/unsealSession; missing or invalid seals create a UUID session, and updateSession → sealSession → setSessionCookie writes a cookie that the next request can load. — [packages/nuxt/src/server/session.ts#L102-119](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/server/session.ts#L102-L119) [packages/nuxt/src/server/session.ts#L134-170](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/server/session.ts#L134-L170) [packages/nuxt/src/server/session.ts#L195-232](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/server/session.ts#L195-L232) [packages/nuxt/test/server-session.test.ts#L92-99](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/test/server-session.test.ts#L92-L99)
- Development changes enter builder:watch: structural changes invalidate application discovery, eligible content changes regenerate filtered templates, and unfiltered builder:generateApp requests force complete structure resolution. — [packages/nuxt/src/core/builder.ts#L52-88](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/builder.ts#L52-L88) [packages/nuxt/src/core/app.ts#L30-44](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/app.ts#L30-L44)
- Renderer error dispatch rejects direct external /__nuxt_error access, avoids inline HTML handling for JSON requests and recursive error renders, and otherwise catches route-render failures through renderErrorResponse. — [packages/nuxt/src/runtime/server/renderer/index.ts#L71-100](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/index.ts#L71-L100) [test/renderer/inline-errors.test.ts#L153-171](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/test/renderer/inline-errors.test.ts#L153-L171)

## Testing signals

Tests and CI were inspected, not executed; their existence and assertions establish intended coverage, not passing results. Vitest separates unit, renderer, Nuxt-environment, fixture-matrix, bundle, and type-performance projects, while Playwright drives browser scenarios. CI schedules type/API checks, runtime/unit tests, fixture tests, browser tests, and security analysis with event-specific gates. The inspection is bounded, and explicit exclusions, disabled jobs, and a fixme prevent treating the configured suite as exhaustive coverage.
- The unit Vitest project discovers package test/spec files and supplies generated-module/runtime aliases; Nuxt-environment projects run test/nuxt with @nuxt/test-utils configuration and fixture preparation. — [vitest.config.ts#L259-283](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/vitest.config.ts#L259-L283) [vitest.config.ts#L298-315](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/vitest.config.ts#L298-L315)
- Fixture projects exercise Vite dev/built, async/default context, and manifest-on/off combinations; Nitro-Vite, Rspack, and Webpack intentionally use smaller matrices, with additional legacy-error projects. — [vitest.config.ts#L99-119](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/vitest.config.ts#L99-L119) [vitest.config.ts#L122-142](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/vitest.config.ts#L122-L142)
- Renderer tests prepare standalone generated artifacts and inject renderer configuration; standalone.test.ts asserts HTML, asset URL helpers, SPA route behavior, hooks, and isolation between renderer options. — [vitest.config.ts#L148-175](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/vitest.config.ts#L148-L175) [test/renderer/standalone.test.ts#L40-106](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/test/renderer/standalone.test.ts#L40-L106)
- Inline-error tests assert preservation of Set-Cookie and middleware headers, static fallback after an error-page failure, rejection rather than HTML for payload failures, and 404 handling for the retired error route. — [test/renderer/inline-errors.test.ts#L119-171](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/test/renderer/inline-errors.test.ts#L119-L171)
- Session unit tests use synthetic Web Request events and mocked runtime config to check cookie flags, cross-request round trips, tampering, expiry, format rejection, cookie-size limits, and missing appSecret failures. — [packages/nuxt/test/server-session.test.ts#L1-43](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/test/server-session.test.ts#L1-L43) [packages/nuxt/test/server-session.test.ts#L92-99](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/test/server-session.test.ts#L92-L99) [packages/nuxt/test/server-session.test.ts#L143-191](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/test/server-session.test.ts#L143-L191) [packages/nuxt/test/server-session.test.ts#L224-267](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/test/server-session.test.ts#L224-L267)
- Nuxt runtime fetching tests register local endpoints and inspect payload entries, computed request equivalence, removed params handling, serialize:false, reactive keys, basic async-data return shape, and shallow refs. — [test/nuxt/use-fetch.test.ts#L21-110](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/test/nuxt/use-fetch.test.ts#L21-L110) [test/nuxt/use-async-data.test.ts#L45-95](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/test/nuxt/use-async-data.test.ts#L45-L95)
- Builder tests create temporary applications and exercise chokidar, granular chokidar, and Parcel watcher strategies, including parent-path changes and selective template recompilation. — [packages/nuxt/test/builder.test.ts#L11-71](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/test/builder.test.ts#L11-L71) [packages/nuxt/test/builder.test.ts#L74-115](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/test/builder.test.ts#L74-L115)
- Playwright uses Desktop Chrome across Vite dev/built, Nitro-Vite dev/built, and built Webpack/Rspack projects; it excludes dev-only, build-only, Vite-only, shared-fixture mutation, and Rspack chunk-error scenarios as configured. — [playwright.config.ts#L9-50](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/playwright.config.ts#L9-L50) [playwright.config.ts#L80-102](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/playwright.config.ts#L80-L102)
- Streaming browser tests assert redirects, pre-shell error fallback, mid-stream error payloads/client error pages, and late-status behavior; the dev SFC stylesheet-before-shell scenario is explicitly test.fixme. — [test/e2e/ssr-streaming.test.ts#L254-275](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/test/e2e/ssr-streaming.test.ts#L254-L275) [test/e2e/ssr-streaming.test.ts#L332-389](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/test/e2e/ssr-streaming.test.ts#L332-L389)
- CI defines built-type/public-API checks, prepared runtime/unit/no-Jiti tests, Linux/Windows fixture projects, and Linux/Windows Playwright runs; these workflow definitions were read without executing or retrieving run results. — [.github/workflows/ci.yml#L97-104](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/.github/workflows/ci.yml#L97-L104) [.github/workflows/ci.yml#L275-298](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/.github/workflows/ci.yml#L275-L298) [.github/workflows/ci.yml#L395-418](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/.github/workflows/ci.yml#L395-L418) [.github/workflows/ci.yml#L473-510](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/.github/workflows/ci.yml#L473-L510)
- The benchmark CI job is disabled with if:false pending CodSpeed's Vitest 5 support. Root test:unit includes unit and renderer but omits the separately configured renderer-legacy-errors project. — [.github/workflows/ci.yml#L370-391](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/.github/workflows/ci.yml#L370-L391) [package.json#L37-39](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/package.json#L37-L39) [vitest.config.ts#L181-184](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/vitest.config.ts#L181-L184)
- Security/documentation checks include CodeQL for JavaScript/TypeScript and Actions, OpenSSF SARIF analysis, and Lychee checks that limit pull requests to internal docs links but expand scheduled/manual runs. — [.github/workflows/ci.yml#L174-207](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/.github/workflows/ci.yml#L174-L207) [.github/workflows/scorecards.yml#L39-57](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/.github/workflows/scorecards.yml#L39-L57) [.github/workflows/docs-check-links.yml#L38-70](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/.github/workflows/docs-check-links.yml#L38-L70)

## Risk map

The following items are sensitive source boundaries and explicit limitations, not confirmed vulnerabilities. Executable configuration, remote layers, dependency installation, development HTTP handlers, and request-header forwarding deserve focused review when changed. Hydration serialization and streaming response commitment impose correctness constraints that cross package boundaries. The strongest observed testing limits are configured exclusions, a disabled benchmark job, and a documented development CSS fixme.
- Configuration is executable input: importConfigFile uses native dynamic import and may retry through Jiti, while c12 enables global rc loading by default and accepts remote extends sources. — [packages/kit/src/loader/config.ts#L305-336](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/kit/src/loader/config.ts#L305-L336) [packages/kit/src/loader/config.ts#L355-377](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/kit/src/loader/config.ts#L355-L377)
- Dependency recovery can mutate a consumer project and spawn a package-manager process: ensureDependencyInstalled prompts outside CI, permits StackBlitz-specific auto-install behavior, and runCommand invokes tinyexec with the detected command and arguments. — [packages/kit/src/dependency.ts#L62-94](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/kit/src/dependency.ts#L62-L94) [packages/kit/src/dependency.ts#L134-152](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/kit/src/dependency.ts#L134-L152)
- The Vite builder includes workspaceDir, module directories, layer roots, and discovered component/plugin/middleware/layout directories in its allowDirs calculation, so development file access must be reviewed beyond the application's immediate root. — [packages/vite/src/vite.ts#L61-78](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/vite/src/vite.ts#L61-L78)
- Request-scoped fetch forwards incoming headers, excluding a defined denylist, only when the underlying request is a string beginning with '/'; the wrapper sits below user hooks. useFetch separately rejects protocol-relative requests without baseURL. — [packages/nuxt/src/app/composables/ssr.ts#L52-95](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/ssr.ts#L52-L95) [packages/nuxt/src/app/composables/fetch.ts#L710-712](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/fetch.ts#L710-L712)
- Public/app runtime config and serializable async-data results reach browser-visible scripts or payload JSON; private values placed into those objects would therefore cross the client boundary. (inferred) — [packages/nuxt/src/app/nuxt.ts#L310-314](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/nuxt.ts#L310-L314) [packages/nuxt/src/runtime/server/renderer/payload.ts#L22-45](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/payload.ts#L22-L45) [packages/nuxt/src/app/composables/asyncData.ts#L983-985](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/asyncData.ts#L983-L985)
- deriveSecret fails with status 500 when appSecret is unset or shorter than 32 characters and derives purpose-specific HKDF-SHA256 material; session sealing depends on that derivation unless an explicit password is supplied. — [packages/nuxt/src/server/secret.ts#L23-41](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/server/secret.ts#L23-L41) [packages/nuxt/src/server/session.ts#L235-238](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/server/session.ts#L235-L238)
- Session data is sealed into the cookie and limited to 4096 serialized characters; default HttpOnly, Secure, SameSite=Lax, and root-path settings can be overridden through config.cookie. — [packages/nuxt/src/server/session.ts#L205-221](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/server/session.ts#L205-L221) [packages/nuxt/src/server/session.ts#L241-248](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/server/session.ts#L241-L248)
- getRequestIP trusts the first x-forwarded-for value only when explicitly enabled. Applications using that option for access decisions depend on their proxy's header handling; this is an integration hypothesis, not a demonstrated exploit. (inferred) — [packages/nuxt/src/server/index.ts#L218-226](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/server/index.ts#L218-L226)
- The optional Chrome DevTools workspace endpoint exposes an absolute root and stable UUID, but its implementation requires both a loopback peer and isLocalDevRequest; allowedHosts:true changes the host policy input. — [packages/nitro-server/src/index.ts#L982-1012](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nitro-server/src/index.ts#L982-L1012) [packages/nitro-server/src/index.ts#L1191-1204](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nitro-server/src/index.ts#L1191-L1204)
- Streaming commits response status before delayed page work completes: tests explicitly expect a mid-stream error to retain HTTP 200 and a late 418 to be dropped, while buffered rendering applies the late status. — [test/e2e/ssr-streaming.test.ts#L345-389](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/test/e2e/ssr-streaming.test.ts#L345-L389)
- Compatibility code is an active transition surface: nitroLegacy has independent imports/h3/specifier/runtimeConfig/config toggles, detects migrated Nitro v3 specifiers, and states that the compatibility layer is intended for removal in Nuxt 6. — [packages/nitro-server/src/compat.ts#L22-51](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nitro-server/src/compat.ts#L22-L51) [packages/nitro-server/src/compat.ts#L73-82](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nitro-server/src/compat.ts#L73-L82)
- Source-recorded verification gaps include disabled benchmark CI, excluded Rspack chunk-error browser tests, excluded mutation suites under Nitro-Vite, and a fixme for dev streaming CSS; these do not establish failures in other configurations. — [.github/workflows/ci.yml#L370-374](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/.github/workflows/ci.yml#L370-L374) [playwright.config.ts#L31-49](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/playwright.config.ts#L31-L49) [test/e2e/ssr-streaming.test.ts#L267-275](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/test/e2e/ssr-streaming.test.ts#L267-L275)
- Privileged pull_request_target workflows warn against adding checkout and currently operate on PR metadata; ecosystem CI additionally checks triage permission and whether the PR repository was pushed after the trigger comment before dispatching a captured SHA. — [.github/workflows/agent-scan.yml#L3-16](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/.github/workflows/agent-scan.yml#L3-L16) [.github/workflows/semantic-pull-requests.yml#L3-19](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/.github/workflows/semantic-pull-requests.yml#L3-L19) [.github/workflows/ecosystem-ci-trigger.yml#L23-51](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/.github/workflows/ecosystem-ci-trigger.yml#L23-L51) [.github/workflows/ecosystem-ci-trigger.yml#L65-100](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/.github/workflows/ecosystem-ci-trigger.yml#L65-L100)

## Extension points

Nuxt exposes build-time modules, hooks, templates, discovery registries, and runtime plugins as its primary extension model. App and server builders can be supplied independently, with renderer options providing a further runtime adapter boundary. Fetch factories and middleware allow reusable application-level policy without replacing the core async-data machinery. Some server-build helpers are explicitly internal and experimental, so their existence does not imply stable public API.
- defineNuxtModule accepts function or object definitions and normalizes metadata; getOptions merges inline options, configKey values, defaults, and optional schema defaults, with duplicate installation prevented by module name/configKey. — [packages/kit/src/module/define.ts#L22-74](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/kit/src/module/define.ts#L22-L74) [packages/kit/src/module/define.ts#L84-98](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/kit/src/module/define.ts#L84-L98)
- Modules can enter through layer configuration, automatically scanned local module directories, project modules, or private _modules; resolveModules tracks both module identity and resolved paths. — [packages/nuxt/src/core/nuxt.ts#L1197-1247](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/nuxt.ts#L1197-L1247)
- Build-time hooks are attached through layer config.hooks and caller override hooks, while createNuxt exposes hook, addHooks, callHook, and runWithContext. — [packages/nuxt/src/core/nuxt.ts#L76-98](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/nuxt.ts#L76-L98) [packages/nuxt/src/core/nuxt.ts#L220-224](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/nuxt.ts#L220-L224) [packages/nuxt/src/core/nuxt.ts#L1123-1127](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/nuxt.ts#L1123-L1127)
- addTemplate registers generated files and replaces entries targeting the same destination; addServerTemplate contributes Nitro virtual files, and addTypeTemplate attaches declarations to selected type contexts. — [packages/kit/src/template.ts#L23-60](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/kit/src/template.ts#L23-L60) [packages/kit/src/template.ts#L65-108](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/kit/src/template.ts#L65-L108)
- Auto-import customization uses imports:sources, imports:context, imports:extend, presets, and Unimport addons; component customization receives scan results through components:extend. — [packages/nuxt/src/imports/module.ts#L99-118](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/imports/module.ts#L99-L118) [packages/nuxt/src/imports/module.ts#L152-169](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/imports/module.ts#L152-L169) [packages/nuxt/src/components/module.ts#L202-205](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/components/module.ts#L202-L205)
- Router customization can replace or modify generated routes through routerOptions.routes and supply a custom history implementation, while router.options.mjs aggregates discovered router-options files. — [packages/nuxt/src/pages/runtime/plugins/router.ts#L55-71](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/pages/runtime/plugins/router.ts#L55-L71) [packages/nuxt/src/pages/module.ts#L842-850](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/pages/module.ts#L842-L850)
- Runtime plugins can provide injected values, register hooks, declare dependsOn, execute in parallel, and opt out of island execution; applyPlugins selects dependency-aware execution when needed. — [packages/nuxt/src/app/nuxt.ts#L417-444](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/nuxt.ts#L417-L444) [packages/nuxt/src/app/nuxt.ts#L455-491](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/nuxt.ts#L455-L491)
- A custom app builder can be supplied as a bundle-capable object; a server builder can likewise be an object or package, and core wrappers route failures through build:error. — [packages/schema/src/config/build.ts#L8-11](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/schema/src/config/build.ts#L8-L11) [packages/schema/src/config/nitro.ts#L14-21](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/schema/src/config/nitro.ts#L14-L21) [packages/nuxt/src/core/builder.ts#L347-363](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/builder.ts#L347-L363) [packages/nuxt/src/core/server.ts#L8-18](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/server.ts#L8-L18)
- setServerBuild updates input/output paths, capabilities, runtime descriptors, and other server-build properties; the source explicitly marks this internal shape as subject to change without a major release. — [packages/kit/src/internal/server-build.ts#L7-32](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/kit/src/internal/server-build.ts#L7-L32)
- createNuxtRenderer accepts runtime options or an existing renderer instance; runtime hooks can adjust streaming preference through render:route and mutate final document fragments through render:html. — [packages/nuxt/src/runtime/server/renderer/index.ts#L59-61](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/index.ts#L59-L61) [packages/nuxt/src/runtime/server/renderer/index.ts#L346-359](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/index.ts#L346-L359) [packages/nuxt/src/runtime/server/renderer/index.ts#L555-562](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/index.ts#L555-L562)
- createUseFetch and createUseAsyncData are keyed composable factories with addon handling; plain factory options act as defaults while function-derived fetch options override caller options. — [packages/nuxt/src/app/composables/fetch.ts#L564-575](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/fetch.ts#L564-L575) [packages/nuxt/src/app/composables/fetch.ts#L666-692](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/fetch.ts#L666-L692) [packages/nuxt/src/app/composables/asyncData.ts#L270-280](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/asyncData.ts#L270-L280)
- Async-data middleware wraps the handler in reverse registration order, receiving next and a signal-bearing context; payload revivers provide a separate registration point for reconstructing rich client values. — [packages/nuxt/src/app/composables/asyncData.ts#L949-958](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/composables/asyncData.ts#L949-L958) [packages/nuxt/src/app/plugins/revive-payload.client.ts#L19-30](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/plugins/revive-payload.client.ts#L19-L30) [packages/nuxt/src/app/plugins/revive-payload.client.ts#L80-84](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/plugins/revive-payload.client.ts#L80-L84)

## Contributor handoff

Begin with repository contribution policy, the relevant package manifest, and the build/runtime boundary that owns the requested behavior. Tests and CI were inspected, not executed, so this brief supplies test targets rather than validation results. Preserve generated-module contracts, request-scoped state, cookie headers, and builder compatibility when making later authorized changes. The inventory is bounded; investigate neighboring consumers and tests before drawing absence or vulnerability conclusions.
- Read AGENTS.md and CONTRIBUTING.md before authoring artifacts: AGENTS prohibits AI-authored public writing and autonomous submitted contributions and requires disclosure of agent authorship and human-review status. — [AGENTS.md#L3-11](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/AGENTS.md#L3-L11) [CONTRIBUTING.md#L47-54](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/CONTRIBUTING.md#L47-L54)
- CONTRIBUTING contains an automated-agent fast-track note that conflicts with AGENTS; agent-scan automation can label and close automated PRs. Treat the note as a policy conflict to resolve, not authorization to submit. — [CONTRIBUTING.md#L56-57](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/CONTRIBUTING.md#L56-L57) [AGENTS.md#L7-9](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/AGENTS.md#L7-L9) [.github/workflows/agent-scan.yml#L97-105](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/.github/workflows/agent-scan.yml#L97-L105)
- Use the pinned pnpm@12.6.0 workspace and its catalogs/overrides; Vite, Rolldown, OXC, and Vue are explicitly pinned together, and Renovate explains the risk of loading a second Rolldown native binding. — [package.json#L122-125](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/package.json#L122-L125) [pnpm-workspace.yaml#L25-34](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/pnpm-workspace.yaml#L25-L34) [renovate.json#L72-72](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/renovate.json#L72-L72)
- For initialization or build changes, read core/nuxt.ts, core/builder.ts, core/app.ts, schema builder resolvers, and the chosen server integration; app-builder bundle and server-builder setup are separate lifecycle responsibilities. — [packages/nuxt/src/core/nuxt.ts#L944-963](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/nuxt.ts#L944-L963) [packages/nuxt/src/core/builder.ts#L17-36](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/builder.ts#L17-L36) [packages/nuxt/src/core/server.ts#L8-14](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/server.ts#L8-L14) [packages/schema/src/config/nitro.ts#L12-23](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/schema/src/config/nitro.ts#L12-L23)
- Change template generators and discovery logic at their owners: app generation populates nuxt.vfs/#build and writes only templates marked write, while routes.mjs and imports.mjs are generated outputs. — [packages/nuxt/src/core/app.ts#L89-125](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/app.ts#L89-L125) [packages/nuxt/src/pages/module.ts#L813-828](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/pages/module.ts#L813-L828) [packages/nuxt/src/imports/module.ts#L121-127](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/imports/module.ts#L121-L127)
- Preserve TypeScript strictness and generated context separation: root options enable strict/noUncheckedIndexedAccess/noUncheckedSideEffectImports, and addTypeTemplate distinguishes Nuxt, node, and shared references. — [tsconfig.json#L14-22](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/tsconfig.json#L14-L22) [packages/kit/src/template.ts#L73-108](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/kit/src/template.ts#L73-L108)
- After separately authorized runtime changes, the existing focused targets are test:runtime and test:unit; renderer legacy-error changes also require selecting renderer-legacy-errors explicitly because test:unit does not include it. — [package.json#L33-40](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/package.json#L33-L40) [vitest.config.ts#L181-184](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/vitest.config.ts#L181-L184)
- Browser verification should select the matching Playwright matrix project and inspect its exclusions first; fixture mutation suites intentionally avoid the Nitro-Vite shared project, and dev/build/Vite/Rspack applicability differs. — [playwright.config.ts#L9-50](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/playwright.config.ts#L9-L50) [package.json#L40-44](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/package.json#L40-L44)
- Tests and CI were inspected rather than executed in this investigation; their configured commands and source assertions are future verification pointers, not proof that this checkout passes. — [package.json#L28-48](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/package.json#L28-L48) [.github/workflows/ci.yml#L275-298](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/.github/workflows/ci.yml#L275-L298) [.github/workflows/ci.yml#L506-510](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/.github/workflows/ci.yml#L506-L510)
- Preparation is material to test/build behavior: renderer projects generate fixture artifacts, and build ensures generated tsconfigs exist before starting a bundler because missing references can be cached as failures. — [vitest.config.ts#L148-175](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/vitest.config.ts#L148-L175) [packages/nuxt/src/core/builder.ts#L154-165](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/core/builder.ts#L154-L165)
- Keep application and request isolation intact: createNuxtApp owns reactive payload registries, renderer instances own options/artifact loaders, and sessionCache keys sessions by event object and cookie name. — [packages/nuxt/src/app/nuxt.ts#L247-297](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/app/nuxt.ts#L247-L297) [packages/nuxt/src/runtime/server/renderer/instance.ts#L5-26](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/runtime/server/renderer/instance.ts#L5-L26) [packages/nuxt/src/server/session.ts#L134-144](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/server/session.ts#L134-L144) [packages/nuxt/src/server/session.ts#L186-192](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/nuxt/src/server/session.ts#L186-L192)
- Do not equate server.builder:'vite' with Nitro feature parity or treat internal server-build helpers as stable public APIs; both sources explicitly describe experimental limitations. — [packages/vite-server/src/index.ts#L17-35](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/vite-server/src/index.ts#L17-L35) [packages/kit/src/internal/server-build.ts#L7-10](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/packages/kit/src/internal/server-build.ts#L7-L10)
- For performance or streaming work, account for disabled benchmark CI, the dev CSS fixme, and committed streaming status behavior; no benchmark improvement or comprehensive browser coverage was established by this source inspection. — [.github/workflows/ci.yml#L370-374](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/.github/workflows/ci.yml#L370-L374) [test/e2e/ssr-streaming.test.ts#L267-275](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/test/e2e/ssr-streaming.test.ts#L267-L275) [test/e2e/ssr-streaming.test.ts#L345-389](https://github.com/nuxt/nuxt/blob/3fde4d625cc353e83ac10f6b75db8ca480167be4/test/e2e/ssr-streaming.test.ts#L345-L389)

Source repository: https://github.com/nuxt/nuxt
Full evidence corpus: https://github.com/Codevetter/codevetter/tree/main/benchmarks/repo-unpacks/nuxt.json

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
