{
  "schemaVersion": "vext.docs-manifest/v1",
  "frameworkVersion": "1.0.1",
  "defaultLocale": "en",
  "siteUrl": "https://devcodex-labs.github.io/vextjs/",
  "entries": [
    {
      "locale": "en",
      "route": "/",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/",
      "title": "VextJS",
      "summary": "Ship APIs and server-rendered React pages from one Node.js application with one route model, typed contracts, and built-in docs.",
      "audience": [
        "developers",
        "engineering-leads"
      ],
      "appliesTo": [
        "framework"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/index.mdx",
      "contentHash": "12a25a31f119fc998718ba5daec674275f5829afe1ce9aa078b9d1c04f921eda",
      "related": []
    },
    {
      "locale": "en",
      "route": "/api/access-log",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/api/access-log",
      "title": "Access Log middleware",
      "summary": "VextJS has built-in Access Log middleware, which automatically records the method, path, status code, response time and client IP of each HTTP request. This middleware is based on the onion model (after-middleware mode) and outputs a compact line of access ...",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "public-api"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/api/access-log.md",
      "contentHash": "604d4ed0df64f9de557214fce50d273a9e670ed17fb0eba7f688d7d33ae62adb",
      "related": [
        "https://devcodex-labs.github.io/vextjs/api/context",
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/logger"
      ]
    },
    {
      "locale": "en",
      "route": "/api/app",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/api/app",
      "title": "Application example",
      "summary": "This page details the complete API of the VextJS application instance VextApp, including built-in modules, extension methods, life cycle hooks and startup functions.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "public-api"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/api/app.md",
      "contentHash": "0541ea810331e17285dfe44207dbdf09d06d75efa2614aa39454255b5b6c82c4",
      "related": [
        "https://devcodex-labs.github.io/vextjs/api/config",
        "https://devcodex-labs.github.io/vextjs/api/fetch",
        "https://devcodex-labs.github.io/vextjs/api/plugin-api",
        "https://devcodex-labs.github.io/vextjs/api/route-definition",
        "https://devcodex-labs.github.io/vextjs/guide/cache",
        "https://devcodex-labs.github.io/vextjs/guide/error-handling",
        "https://devcodex-labs.github.io/vextjs/guide/hooks",
        "https://devcodex-labs.github.io/vextjs/zh/api/fetch",
        "https://devcodex-labs.github.io/vextjs/zh/api/plugin-api",
        "https://devcodex-labs.github.io/vextjs/zh/guide/error-handling",
        "https://devcodex-labs.github.io/vextjs/zh/guide/hooks"
      ]
    },
    {
      "locale": "en",
      "route": "/api/config",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/api/config",
      "title": "Configuration items",
      "summary": "This page details all configuration fields, types, default values and usage instructions of VextJS.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "public-api"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/api/config.md",
      "contentHash": "e73a0e8b30723802faeea242839e8b1d2d81b9b4d106c9746c102577947054ca",
      "related": [
        "https://devcodex-labs.github.io/vextjs/api/app",
        "https://devcodex-labs.github.io/vextjs/api/fetch",
        "https://devcodex-labs.github.io/vextjs/api/plugin-api",
        "https://devcodex-labs.github.io/vextjs/benchmark",
        "https://devcodex-labs.github.io/vextjs/guide/cache",
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/openapi",
        "https://devcodex-labs.github.io/vextjs/zh/api/app",
        "https://devcodex-labs.github.io/vextjs/zh/api/fetch",
        "https://devcodex-labs.github.io/vextjs/zh/api/plugin-api",
        "https://devcodex-labs.github.io/vextjs/zh/benchmark"
      ]
    },
    {
      "locale": "en",
      "route": "/api/context",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/api/context",
      "title": "Request and response",
      "summary": "This page details the complete API of VextJS's request object VextRequest and response object VextResponse.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "public-api"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/api/context.md",
      "contentHash": "7235fa51d2cb0b27dc19d73dea7163bc60d401fc812e0823dd96e013ee89967d",
      "related": [
        "https://devcodex-labs.github.io/vextjs/api/access-log",
        "https://devcodex-labs.github.io/vextjs/zh/api/access-log"
      ]
    },
    {
      "locale": "en",
      "route": "/api/fetch",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/api/fetch",
      "title": "FetchAPI",
      "summary": "This page provides a simplified API reference for the app.fetch built-in HTTP client. Complete usage guidelines, examples, and best practices are available in the Built-in HTTP Client Guide.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "public-api"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/api/fetch.md",
      "contentHash": "f961dc6259c998b8f636dde15846089ebc303160f76fb8b1760e5ab5a2e4cc6d",
      "related": [
        "https://devcodex-labs.github.io/vextjs/api/app",
        "https://devcodex-labs.github.io/vextjs/api/config",
        "https://devcodex-labs.github.io/vextjs/guide/fetch"
      ]
    },
    {
      "locale": "en",
      "route": "/api/plugin-api",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/api/plugin-api",
      "title": "Plugin API",
      "summary": "This page details the plug-in system API of VextJS, including plug-in definitions, middleware definition helper functions and related types.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "public-api"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/api/plugin-api.md",
      "contentHash": "169046dab7f3ec5f233dab1690610d3a0f70053fde94e7c14008a840c5230230",
      "related": [
        "https://devcodex-labs.github.io/vextjs/api/app",
        "https://devcodex-labs.github.io/vextjs/api/config",
        "https://devcodex-labs.github.io/vextjs/zh/api/app"
      ]
    },
    {
      "locale": "en",
      "route": "/api/route-definition",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/api/route-definition",
      "title": "Route definition",
      "summary": "This page details the route definition API of VextJS, including defineRoutes, routing options, parameter validation, middleware references and document configuration.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "public-api"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/api/route-definition.md",
      "contentHash": "1cc5ac1a6332d4d981e5e26878cbd018207da4168521dace12bf60dbfccea49b",
      "related": [
        "https://devcodex-labs.github.io/vextjs/api/app",
        "https://devcodex-labs.github.io/vextjs/guide/cache",
        "https://devcodex-labs.github.io/vextjs/zh/api/app"
      ]
    },
    {
      "locale": "en",
      "route": "/api/testing-api",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/api/testing-api",
      "title": "Test tools",
      "summary": "This page details VextJS's testing tool API, including createTestApp, TestApp, TestRequest, TestRequestBuilder and TestResponse.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "public-api"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/api/testing-api.md",
      "contentHash": "c71519bc1ea0b53dde1a2b8a90758ec3bc8b989a58cb5afc7db49924386acc6e",
      "related": []
    },
    {
      "locale": "en",
      "route": "/benchmark",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/benchmark",
      "title": "Performance benchmark test",
      "summary": "This page shows performance benchmark data comparing VextJS with other popular Node.js web frameworks. The reproducible benchmark of the current version is subject to test/benchmark/run-benchmark.mjs in the warehouse; the historical benchmark warehouse data...",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "performance"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/benchmark.md",
      "contentHash": "d14ab5f446a1ee3bf087c7c7bdbad50f53d6f82ecfb714cbff9256728d1555e9",
      "related": [
        "https://devcodex-labs.github.io/vextjs/api/config",
        "https://devcodex-labs.github.io/vextjs/guide/adapters",
        "https://devcodex-labs.github.io/vextjs/guide/cluster",
        "https://devcodex-labs.github.io/vextjs/guide/introduction",
        "https://devcodex-labs.github.io/vextjs/zh/guide/adapters",
        "https://devcodex-labs.github.io/vextjs/zh/guide/introduction"
      ]
    },
    {
      "locale": "en",
      "route": "/examples/crud-api",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/examples/crud-api",
      "title": "CRUD API",
      "summary": "A complete RESTful CRUD API example, demonstrating VextJS's core capabilities such as service layer, middleware, parameter verification, and error handling.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "examples"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/examples/crud-api.md",
      "contentHash": "600dc6f59b4bb4838ed490704d22858108bdbc0c28c64af5364142597f65ab0a",
      "related": [
        "https://devcodex-labs.github.io/vextjs/examples/hello-world",
        "https://devcodex-labs.github.io/vextjs/examples/permission-core-auth",
        "https://devcodex-labs.github.io/vextjs/guide/openapi",
        "https://devcodex-labs.github.io/vextjs/guide/testing",
        "https://devcodex-labs.github.io/vextjs/zh/examples/hello-world"
      ]
    },
    {
      "locale": "en",
      "route": "/examples/hello-world",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/examples/hello-world",
      "title": "HelloWorld",
      "summary": "The simplest VextJS project to help you understand the basic structure and working of the framework.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "examples"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/examples/hello-world.md",
      "contentHash": "44c81823c15fd18d2cb125fe7ac8ba1685c95d3a1c0daf985674eab9d28fc399",
      "related": [
        "https://devcodex-labs.github.io/vextjs/examples/crud-api",
        "https://devcodex-labs.github.io/vextjs/guide/project-structure",
        "https://devcodex-labs.github.io/vextjs/guide/quick-start",
        "https://devcodex-labs.github.io/vextjs/guide/routing"
      ]
    },
    {
      "locale": "en",
      "route": "/examples/nacos-integration",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/examples/nacos-integration",
      "title": "Nacos access example",
      "summary": "This example demonstrates how to integrate Nacos in VextJS to implement service registration and discovery, dynamic configuration during runtime, and remote configuration patch during startup.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "examples"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/examples/nacos-integration.md",
      "contentHash": "30a8e8bfae9a24aaa1ff52db651a2a71222624e5f28786f2493c6e54e598b7db",
      "related": [
        "https://devcodex-labs.github.io/vextjs/examples/opentelemetry",
        "https://devcodex-labs.github.io/vextjs/guide/deployment",
        "https://devcodex-labs.github.io/vextjs/guide/fetch",
        "https://devcodex-labs.github.io/vextjs/guide/plugins",
        "https://devcodex-labs.github.io/vextjs/zh/guide/deployment"
      ]
    },
    {
      "locale": "en",
      "route": "/examples/opentelemetry",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/examples/opentelemetry",
      "title": "OpenTelemetry Observability",
      "summary": "This document only introduces how to access @devcodex/opentelemetry in the VextJS scenario.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "examples"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/examples/opentelemetry.md",
      "contentHash": "945b02410897c01b9cfdbba27d3f07f4d6e142dd0c5f5ba40a0440f414eff7e2",
      "related": [
        "https://devcodex-labs.github.io/vextjs/examples/nacos-integration",
        "https://devcodex-labs.github.io/vextjs/guide/deployment",
        "https://devcodex-labs.github.io/vextjs/guide/logger",
        "https://devcodex-labs.github.io/vextjs/guide/preload",
        "https://devcodex-labs.github.io/vextjs/guide/request-context",
        "https://devcodex-labs.github.io/vextjs/zh/examples/nacos-integration",
        "https://devcodex-labs.github.io/vextjs/zh/guide/deployment",
        "https://devcodex-labs.github.io/vextjs/zh/guide/logger",
        "https://devcodex-labs.github.io/vextjs/zh/guide/preload",
        "https://devcodex-labs.github.io/vextjs/zh/guide/request-context"
      ]
    },
    {
      "locale": "en",
      "route": "/examples/permission-core-auth",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/examples/permission-core-auth",
      "title": "permission-core Auth",
      "summary": "This example shows how to connect permission-core to VextJS Auth. Vext keeps authentication and route guards separate:",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "examples"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/examples/permission-core-auth.md",
      "contentHash": "296b94ee4d796fc692992576455a44ccba7403391e42b29275236353e33e4f57",
      "related": [
        "https://devcodex-labs.github.io/vextjs/examples/crud-api"
      ]
    },
    {
      "locale": "en",
      "route": "/frontend/api-client-and-contracts",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/api-client-and-contracts",
      "title": "API Client and Contracts",
      "summary": "Vext pages do not need a generated API client for first-screen data. Use route handlers and res.render() for that.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/api-client-and-contracts.md",
      "contentHash": "790919753057d4ae244a1b062dac16e641139e2513d9eb203c7035a9a197bf9d",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/data-and-api"
      ]
    },
    {
      "locale": "en",
      "route": "/frontend/boundaries-and-roadmap",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/boundaries-and-roadmap",
      "title": "Boundaries and Roadmap",
      "summary": "This page separates current frontend targets from future capability tracks.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/boundaries-and-roadmap.md",
      "contentHash": "e57f6066654fe226a9fc0206458df9b957d65266c4801c751b0973927b58a2a8",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/build-deploy-performance",
        "https://devcodex-labs.github.io/vextjs/frontend/overview",
        "https://devcodex-labs.github.io/vextjs/frontend/rendering-modes",
        "https://devcodex-labs.github.io/vextjs/guide/introduction",
        "https://devcodex-labs.github.io/vextjs/resources/documentation-data-and-ai",
        "https://devcodex-labs.github.io/vextjs/resources/support-and-services"
      ]
    },
    {
      "locale": "en",
      "route": "/frontend/build-and-deploy",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/build-and-deploy",
      "title": "Build and Deploy",
      "summary": "vext build compiles server output and frontend output in one command. This",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/build-and-deploy.md",
      "contentHash": "a812efce257f643c55614e4fc0fcd5dd0cc9e4324787cb2d884a883ab2edddd6",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/build-deploy-performance",
        "https://devcodex-labs.github.io/vextjs/frontend/overview",
        "https://devcodex-labs.github.io/vextjs/guide/frontend"
      ]
    },
    {
      "locale": "en",
      "route": "/frontend/build-deploy-performance",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/build-deploy-performance",
      "title": "Build, Deploy, and Performance",
      "summary": "This page is kept as a compatibility entry for older links.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/build-deploy-performance.md",
      "contentHash": "3ef5d0e83464255b2c9ec9ee62c8b1f174145e9bcfbf6ee27d045c64714f7478",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/boundaries-and-roadmap",
        "https://devcodex-labs.github.io/vextjs/frontend/build-and-deploy",
        "https://devcodex-labs.github.io/vextjs/frontend/code-splitting",
        "https://devcodex-labs.github.io/vextjs/frontend/hydration-validation",
        "https://devcodex-labs.github.io/vextjs/frontend/performance-budgets",
        "https://devcodex-labs.github.io/vextjs/frontend/static-assets-and-cdn"
      ]
    },
    {
      "locale": "en",
      "route": "/frontend/code-splitting",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/code-splitting",
      "title": "Code Splitting",
      "summary": "Vext splits frontend code around pages, layouts, error pages, locales, and shared runtime chunks.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/code-splitting.md",
      "contentHash": "713a962be884ddec2c345862872499ea2464b1b1973875fc0538847955b69432",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/build-deploy-performance",
        "https://devcodex-labs.github.io/vextjs/frontend/overview"
      ]
    },
    {
      "locale": "en",
      "route": "/frontend/configuration",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/configuration",
      "title": "Frontend Configuration",
      "summary": "This page is a decision guide, not a second copy of every type member. Start",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/configuration.md",
      "contentHash": "a7ead2d3342252017af73d93bdb97cc82104fd6921afa8b53612084f25b84107",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/jscss",
        "https://devcodex-labs.github.io/vextjs/frontend/overview",
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/frontend"
      ]
    },
    {
      "locale": "en",
      "route": "/frontend/csr-and-spa-fallback",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/csr-and-spa-fallback",
      "title": "CSR and SPA Fallback",
      "summary": "The default Vext page model is SSR plus hydration. CSR fallback is scoped and explicit.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/csr-and-spa-fallback.md",
      "contentHash": "1d861a7f50932dea5d3300c849f6b21c51f9b050d8d95f66d283c3bf59c304bb",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/overview",
        "https://devcodex-labs.github.io/vextjs/frontend/pages-and-rendering",
        "https://devcodex-labs.github.io/vextjs/frontend/routing-and-pages"
      ]
    },
    {
      "locale": "en",
      "route": "/frontend/data-and-api",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/data-and-api",
      "title": "Data and API Calls",
      "summary": "This page is kept as a compatibility entry for older links.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/data-and-api.md",
      "contentHash": "09df4e3afd95634c723d69764579f5d3e74f8b7e5b94479d74de98d53ecaab40",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/api-client-and-contracts",
        "https://devcodex-labs.github.io/vextjs/frontend/data-flow",
        "https://devcodex-labs.github.io/vextjs/frontend/render-data-and-cache"
      ]
    },
    {
      "locale": "en",
      "route": "/frontend/data-flow",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/data-flow",
      "title": "Data Flow",
      "summary": "Frontend data in Vext starts on the server. Route handlers call services, prepare JSON-safe values, and pass them into res.render().",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/data-flow.md",
      "contentHash": "414cdcf2c866501aa5271e3e87898e3eb2509f17569f9651c76d095cb1e64fa6",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/data-and-api",
        "https://devcodex-labs.github.io/vextjs/frontend/overview"
      ]
    },
    {
      "locale": "en",
      "route": "/frontend/dev-workflow",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/dev-workflow",
      "title": "Dev Workflow",
      "summary": "vext dev starts the backend runtime and the frontend development pipeline. Frontend output is written to .vext/client/.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/dev-workflow.md",
      "contentHash": "881b9e83a089fb2934d6a9118ef0d1661b43e88a5b700c11c9715c0489382329",
      "related": []
    },
    {
      "locale": "en",
      "route": "/frontend/diagnostics-and-leak-scan",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/diagnostics-and-leak-scan",
      "title": "Diagnostics and Leak Scan",
      "summary": "Leak Scan protects the browser bundle from accidentally importing server-only modules.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/diagnostics-and-leak-scan.md",
      "contentHash": "9a455cc3a78517d885454c2b8d1bcbe99b667cd1feac03ba408c80ae8370d297",
      "related": []
    },
    {
      "locale": "en",
      "route": "/frontend/errors-and-document",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/errors-and-document",
      "title": "Error Pages and Document",
      "summary": "Default error pages live under:",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/errors-and-document.md",
      "contentHash": "f37459766cae128dd47676f87886475dbe6868b2a91494171951d8b747867ee3",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/pages-and-rendering"
      ]
    },
    {
      "locale": "en",
      "route": "/frontend/fast-refresh",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/fast-refresh",
      "title": "Fast Refresh",
      "summary": "Fast Refresh is the default feedback path for React page, layout, and component changes during vext dev.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/fast-refresh.md",
      "contentHash": "41ebf4670af4ab3f9a33718eb653d50fd847da27831455db9ffa459e354aec4b",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/overview"
      ]
    },
    {
      "locale": "en",
      "route": "/frontend/getting-started",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/getting-started",
      "title": "Getting Started",
      "summary": "This page is the shortest path to a working Vext full-stack page with the built-in frontend capability.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/getting-started.md",
      "contentHash": "3a35cd4e2b13d656154987481776a6dc5a9b5d1f051fab2a76f90eceb7b3995f",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/jscss",
        "https://devcodex-labs.github.io/vextjs/frontend/overview",
        "https://devcodex-labs.github.io/vextjs/frontend/project-structure",
        "https://devcodex-labs.github.io/vextjs/frontend/routing-and-pages",
        "https://devcodex-labs.github.io/vextjs/guide/frontend",
        "https://devcodex-labs.github.io/vextjs/guide/introduction"
      ]
    },
    {
      "locale": "en",
      "route": "/frontend/hydration",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/hydration",
      "title": "Hydration",
      "summary": "Hydration attaches the browser React tree to the HTML produced by SSR.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/hydration.md",
      "contentHash": "2236cd7b1193ca50f07d487af70619a05149996597acf45ad2f5d64c070dcd9b",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/overview",
        "https://devcodex-labs.github.io/vextjs/frontend/pages-and-rendering",
        "https://devcodex-labs.github.io/vextjs/frontend/rendering-modes",
        "https://devcodex-labs.github.io/vextjs/frontend/routing-and-pages"
      ]
    },
    {
      "locale": "en",
      "route": "/frontend/hydration-validation",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/hydration-validation",
      "title": "Hydration Validation",
      "summary": "Hydration validation proves that the built page works in a real browser, not only in static build output.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/hydration-validation.md",
      "contentHash": "8a7a1a87b2e84bfe8e2982543b3c55e83fed9bfce111fa58ecb7449cf605c519",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/build-deploy-performance",
        "https://devcodex-labs.github.io/vextjs/frontend/overview"
      ]
    },
    {
      "locale": "en",
      "route": "/frontend/i18n",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/i18n",
      "title": "Frontend I18n",
      "summary": "Backend config.locale remains the full-stack locale foundation. frontend.i18n controls frontend page copy and hydration behavior.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/i18n.md",
      "contentHash": "433500bac82da440086f16aca4f7a05f7e3d20b4e34dc95095efc8a149e26315",
      "related": []
    },
    {
      "locale": "en",
      "route": "/frontend/jscss",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/jscss",
      "title": "Vext JSCSS",
      "summary": "Vext JSCSS turns a TypeScript object into a generated CSS class at build time. Use it when a component needs named variants, semantic CSS variables, or nested rules while you still want the final browser to load CSS rather than a CSS-in-JS runtime.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/jscss.md",
      "contentHash": "1754ce74b3b4464d8bd9ddeeffe3011eed06ae384415791b6a45ffe07e96b5ae",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/configuration",
        "https://devcodex-labs.github.io/vextjs/frontend/getting-started",
        "https://devcodex-labs.github.io/vextjs/frontend/overview",
        "https://devcodex-labs.github.io/vextjs/frontend/styles-and-assets"
      ]
    },
    {
      "locale": "en",
      "route": "/frontend/layouts-and-components",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/layouts-and-components",
      "title": "Layouts and Components",
      "summary": "Vext layouts are React components named layout.tsx under src/frontend/pages/.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/layouts-and-components.md",
      "contentHash": "bb5868edc3c156de20119ddadc2346c76f7c57380018f7ba4d42b70c059e29bd",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/overview"
      ]
    },
    {
      "locale": "en",
      "route": "/frontend/overview",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/overview",
      "title": "Frontend Overview",
      "summary": "This Frontend guide documents the current built-in Vext frontend capability: route-driven React 19 pages, SSR, hydration, nested layouts, frontend i18n, Fast Refresh, render refresh, code splitting, static assets, CDN upload, performance budgets, and hydrat...",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/overview.md",
      "contentHash": "dff0516c6fcc3d0dd4ae7929eab5363617dd890531932a76e05eec3ca550be26",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/boundaries-and-roadmap",
        "https://devcodex-labs.github.io/vextjs/frontend/build-and-deploy",
        "https://devcodex-labs.github.io/vextjs/frontend/code-splitting",
        "https://devcodex-labs.github.io/vextjs/frontend/configuration",
        "https://devcodex-labs.github.io/vextjs/frontend/csr-and-spa-fallback",
        "https://devcodex-labs.github.io/vextjs/frontend/data-flow",
        "https://devcodex-labs.github.io/vextjs/frontend/fast-refresh",
        "https://devcodex-labs.github.io/vextjs/frontend/getting-started",
        "https://devcodex-labs.github.io/vextjs/frontend/hydration",
        "https://devcodex-labs.github.io/vextjs/frontend/hydration-validation",
        "https://devcodex-labs.github.io/vextjs/frontend/jscss",
        "https://devcodex-labs.github.io/vextjs/frontend/layouts-and-components",
        "https://devcodex-labs.github.io/vextjs/frontend/performance-budgets",
        "https://devcodex-labs.github.io/vextjs/frontend/render-data-and-cache",
        "https://devcodex-labs.github.io/vextjs/frontend/render-refresh",
        "https://devcodex-labs.github.io/vextjs/frontend/rendering-modes",
        "https://devcodex-labs.github.io/vextjs/frontend/routing-and-pages",
        "https://devcodex-labs.github.io/vextjs/frontend/ssr",
        "https://devcodex-labs.github.io/vextjs/frontend/static-assets-and-cdn",
        "https://devcodex-labs.github.io/vextjs/guide/cli",
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/frontend",
        "https://devcodex-labs.github.io/vextjs/guide/project-structure",
        "https://devcodex-labs.github.io/vextjs/guide/quick-start"
      ]
    },
    {
      "locale": "en",
      "route": "/frontend/pages-and-rendering",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/pages-and-rendering",
      "title": "Pages and Rendering",
      "summary": "This page is kept as a compatibility entry for older links.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/pages-and-rendering.md",
      "contentHash": "238bd5db16f3e2570325dea57c96afaf6a79f08b058147b09957c8ba2859e2ad",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/csr-and-spa-fallback",
        "https://devcodex-labs.github.io/vextjs/frontend/errors-and-document",
        "https://devcodex-labs.github.io/vextjs/frontend/hydration",
        "https://devcodex-labs.github.io/vextjs/frontend/render-data-and-cache",
        "https://devcodex-labs.github.io/vextjs/frontend/rendering-modes",
        "https://devcodex-labs.github.io/vextjs/frontend/routing-and-pages",
        "https://devcodex-labs.github.io/vextjs/frontend/ssr"
      ]
    },
    {
      "locale": "en",
      "route": "/frontend/performance-budgets",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/performance-budgets",
      "title": "Performance Budgets",
      "summary": "Performance budgets keep the React hydration path measurable.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/performance-budgets.md",
      "contentHash": "ae4b2d533cc116270bcbc763bb9ce0d5286f08c1f433aa68a972a83670062e64",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/build-deploy-performance",
        "https://devcodex-labs.github.io/vextjs/frontend/overview"
      ]
    },
    {
      "locale": "en",
      "route": "/frontend/project-structure",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/project-structure",
      "title": "Project Structure",
      "summary": "The default vext create scaffold is a full-stack project. Frontend source is grouped under src/frontend/ so server code and browser code stay physically separate.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/project-structure.md",
      "contentHash": "b2ee478965ae4967e7c3fc367a3b8f83f3e14166fe5344912dd8ca7eaab42b4d",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/getting-started"
      ]
    },
    {
      "locale": "en",
      "route": "/frontend/render-data-and-cache",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/render-data-and-cache",
      "title": "Render Data and Cache",
      "summary": "Render data is the server-prepared payload used to produce HTML and hydrate the page.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/render-data-and-cache.md",
      "contentHash": "ed90a880cd41567cfdda3fae4138c89ccb60f636b7287d871863bd4c31a8f951",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/data-and-api",
        "https://devcodex-labs.github.io/vextjs/frontend/overview",
        "https://devcodex-labs.github.io/vextjs/frontend/pages-and-rendering",
        "https://devcodex-labs.github.io/vextjs/frontend/rendering-modes",
        "https://devcodex-labs.github.io/vextjs/frontend/routing-and-pages"
      ]
    },
    {
      "locale": "en",
      "route": "/frontend/render-refresh",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/render-refresh",
      "title": "Render Refresh",
      "summary": "Render Refresh handles server-side changes that affect the HTML produced by res.render().",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/render-refresh.md",
      "contentHash": "9d5f1bcdc2ee60e19859790046ed4b75476302c9b674b834749c09ed72cca5af",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/overview"
      ]
    },
    {
      "locale": "en",
      "route": "/frontend/rendering-modes",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/rendering-modes",
      "title": "Rendering Modes",
      "summary": "Vext supports a mixed full-stack frontend model without mixing server files into the browser bundle.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/rendering-modes.md",
      "contentHash": "4358ccfc758a7004623fe3d0dbd6cb1f70158473b2a7f955ea92f5252014c870",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/boundaries-and-roadmap",
        "https://devcodex-labs.github.io/vextjs/frontend/hydration",
        "https://devcodex-labs.github.io/vextjs/frontend/overview",
        "https://devcodex-labs.github.io/vextjs/frontend/pages-and-rendering",
        "https://devcodex-labs.github.io/vextjs/frontend/render-data-and-cache",
        "https://devcodex-labs.github.io/vextjs/guide/frontend"
      ]
    },
    {
      "locale": "en",
      "route": "/frontend/routing-and-pages",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/routing-and-pages",
      "title": "Routing and Pages",
      "summary": "Vext keeps URL ownership in src/routes/. Page files are render targets, not automatic URL definitions.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/routing-and-pages.md",
      "contentHash": "3d5ca084d12101cb5e517f75a7ab6375701c601ed8f55ce266eb020f09e7a455",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/csr-and-spa-fallback",
        "https://devcodex-labs.github.io/vextjs/frontend/getting-started",
        "https://devcodex-labs.github.io/vextjs/frontend/hydration",
        "https://devcodex-labs.github.io/vextjs/frontend/overview",
        "https://devcodex-labs.github.io/vextjs/frontend/pages-and-rendering",
        "https://devcodex-labs.github.io/vextjs/frontend/render-data-and-cache",
        "https://devcodex-labs.github.io/vextjs/frontend/ssr",
        "https://devcodex-labs.github.io/vextjs/guide/frontend"
      ]
    },
    {
      "locale": "en",
      "route": "/frontend/ssr",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/ssr",
      "title": "SSR",
      "summary": "Server-side rendering is the default Vext page path. The route handler owns the URL and prepares the data; the frontend page owns the React view.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/ssr.md",
      "contentHash": "59daba69e057c72df4eb18c70ee08bf181c2dbd7ed0d03b0fc211c033c51bb9a",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/overview",
        "https://devcodex-labs.github.io/vextjs/frontend/pages-and-rendering",
        "https://devcodex-labs.github.io/vextjs/frontend/routing-and-pages"
      ]
    },
    {
      "locale": "en",
      "route": "/frontend/static-assets-and-cdn",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/static-assets-and-cdn",
      "title": "Static Assets and CDN",
      "summary": "Vext has two static asset locations with different behavior.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/static-assets-and-cdn.md",
      "contentHash": "185854a17123d3a2ca34df10dfc040bf45cacf4474361eec259d9da1f7201c8c",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/build-deploy-performance",
        "https://devcodex-labs.github.io/vextjs/frontend/overview"
      ]
    },
    {
      "locale": "en",
      "route": "/frontend/styles-and-assets",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/styles-and-assets",
      "title": "Styles and Assets",
      "summary": "Global CSS can live under src/frontend/styles/ and be imported by pages, layouts, or generated entries.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/styles-and-assets.md",
      "contentHash": "0a7e82ad0b96b90b79c7c0e52cb930dceab7e0a5b8575f716ec0f7da7c4c6d75",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/jscss"
      ]
    },
    {
      "locale": "en",
      "route": "/frontend/troubleshooting",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/frontend/troubleshooting",
      "title": "Troubleshooting",
      "summary": "If res.render(\"dashboard\") cannot find a page, check:",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/frontend/troubleshooting.md",
      "contentHash": "d3e95f57ef1af671d14c81f89d03e2d5974100a1731c78f4f5979f37faa976eb",
      "related": []
    },
    {
      "locale": "en",
      "route": "/guide/adapters",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/guide/adapters",
      "title": "Adapter architecture",
      "summary": "One of the core designs of VextJS is the Adapter architecture - the underlying HTTP processing layer is completely replaceable. Your business code (routing, middleware, services, plug-ins) operates on the req / res objects encapsulated by VextJS, rather tha...",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/guide/adapters.md",
      "contentHash": "c8a5a280a34479fdfebe0ee00746d9700d72c01a6753e6a5b84fcd7e75184b31",
      "related": [
        "https://devcodex-labs.github.io/vextjs/benchmark",
        "https://devcodex-labs.github.io/vextjs/guide/cluster",
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/i18n",
        "https://devcodex-labs.github.io/vextjs/guide/openapi",
        "https://devcodex-labs.github.io/vextjs/zh/benchmark",
        "https://devcodex-labs.github.io/vextjs/zh/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/zh/guide/i18n",
        "https://devcodex-labs.github.io/vextjs/zh/guide/openapi"
      ]
    },
    {
      "locale": "en",
      "route": "/guide/build",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/guide/build",
      "title": "Build (vext build)",
      "summary": "vext build compiles server source code into deployable JavaScript products and, when frontend.enabled is true, bundles the browser client into dist/client/. The current version of vext build is designed as a production-target build: it statically injects pr...",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/guide/build.md",
      "contentHash": "b02bf9ee3a68dc3383a3dc9f649f55cd105c3db71c58e043eed993aeb4131483",
      "related": [
        "https://devcodex-labs.github.io/vextjs/guide/cli",
        "https://devcodex-labs.github.io/vextjs/guide/cluster",
        "https://devcodex-labs.github.io/vextjs/guide/deployment",
        "https://devcodex-labs.github.io/vextjs/guide/hot-reload"
      ]
    },
    {
      "locale": "en",
      "route": "/guide/cache",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/guide/cache",
      "title": "Response caching",
      "summary": "VextJS provides declarative route-level response caching, configured through the cache field of the route options. When the cache is hit, parameter verification and handler execution are skipped, and the cached JSON response is returned directly.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/guide/cache.md",
      "contentHash": "5c162ddf74c819666293cc984cc2e709241ac436bed63c457cee508bee46a95e",
      "related": [
        "https://devcodex-labs.github.io/vextjs/api/app",
        "https://devcodex-labs.github.io/vextjs/api/config",
        "https://devcodex-labs.github.io/vextjs/api/route-definition",
        "https://devcodex-labs.github.io/vextjs/zh/api/app",
        "https://devcodex-labs.github.io/vextjs/zh/api/config",
        "https://devcodex-labs.github.io/vextjs/zh/api/route-definition"
      ]
    },
    {
      "locale": "en",
      "route": "/guide/cli",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/guide/cli",
      "title": "CLI commands",
      "summary": "VextJS provides the vext command line tool, covering the complete life cycle of project creation, development, construction and deployment.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/guide/cli.md",
      "contentHash": "5a44e88d00fa415edde9069747d8977f39d6cc55045758531f98417ace0ab985",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/overview",
        "https://devcodex-labs.github.io/vextjs/guide/build",
        "https://devcodex-labs.github.io/vextjs/guide/cluster",
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/hot-reload",
        "https://devcodex-labs.github.io/vextjs/guide/preload",
        "https://devcodex-labs.github.io/vextjs/guide/project-structure",
        "https://devcodex-labs.github.io/vextjs/guide/testing",
        "https://devcodex-labs.github.io/vextjs/zh/guide/build",
        "https://devcodex-labs.github.io/vextjs/zh/guide/cluster",
        "https://devcodex-labs.github.io/vextjs/zh/guide/hot-reload",
        "https://devcodex-labs.github.io/vextjs/zh/guide/testing"
      ]
    },
    {
      "locale": "en",
      "route": "/guide/cluster",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/guide/cluster",
      "title": "Cluster multi-process",
      "summary": "VextJS has built-in Cluster multi-process management, manages multiple Worker processes through ClusterMaster, makes full use of multi-core CPUs, and supports enterprise-level features such as zero-downtime rolling restart, heartbeat detection, and automati...",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/guide/cluster.md",
      "contentHash": "3fa0822285128523ac869d0ac24c2be3be24883b51acb837c53b75780ec08dd3",
      "related": [
        "https://devcodex-labs.github.io/vextjs/benchmark",
        "https://devcodex-labs.github.io/vextjs/guide/adapters",
        "https://devcodex-labs.github.io/vextjs/guide/build",
        "https://devcodex-labs.github.io/vextjs/guide/cli",
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/deployment",
        "https://devcodex-labs.github.io/vextjs/guide/hot-reload",
        "https://devcodex-labs.github.io/vextjs/guide/preload",
        "https://devcodex-labs.github.io/vextjs/guide/testing",
        "https://devcodex-labs.github.io/vextjs/zh/benchmark",
        "https://devcodex-labs.github.io/vextjs/zh/guide/adapters",
        "https://devcodex-labs.github.io/vextjs/zh/guide/build",
        "https://devcodex-labs.github.io/vextjs/zh/guide/cli",
        "https://devcodex-labs.github.io/vextjs/zh/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/zh/guide/deployment",
        "https://devcodex-labs.github.io/vextjs/zh/guide/hot-reload",
        "https://devcodex-labs.github.io/vextjs/zh/guide/preload"
      ]
    },
    {
      "locale": "en",
      "route": "/guide/configuration",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/guide/configuration",
      "title": "Configuration",
      "summary": "VextJS uses a multi-layer configuration merging mechanism to support configuration overrides by environment, while providing a rich set of built-in configuration items to cover framework behaviors.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/guide/configuration.md",
      "contentHash": "7fc3c19896ec09ae851120ff87fc9894ae2abd5acfd034eff0f6724f686a5791",
      "related": [
        "https://devcodex-labs.github.io/vextjs/api/access-log",
        "https://devcodex-labs.github.io/vextjs/api/config",
        "https://devcodex-labs.github.io/vextjs/frontend/configuration",
        "https://devcodex-labs.github.io/vextjs/frontend/overview",
        "https://devcodex-labs.github.io/vextjs/guide/adapters",
        "https://devcodex-labs.github.io/vextjs/guide/cli",
        "https://devcodex-labs.github.io/vextjs/guide/cluster",
        "https://devcodex-labs.github.io/vextjs/guide/database",
        "https://devcodex-labs.github.io/vextjs/guide/deployment",
        "https://devcodex-labs.github.io/vextjs/guide/fetch",
        "https://devcodex-labs.github.io/vextjs/guide/hot-reload",
        "https://devcodex-labs.github.io/vextjs/guide/i18n",
        "https://devcodex-labs.github.io/vextjs/guide/logger",
        "https://devcodex-labs.github.io/vextjs/guide/middleware",
        "https://devcodex-labs.github.io/vextjs/guide/openapi",
        "https://devcodex-labs.github.io/vextjs/guide/plugins",
        "https://devcodex-labs.github.io/vextjs/guide/project-structure",
        "https://devcodex-labs.github.io/vextjs/guide/quick-start",
        "https://devcodex-labs.github.io/vextjs/guide/validation",
        "https://devcodex-labs.github.io/vextjs/zh/api/access-log",
        "https://devcodex-labs.github.io/vextjs/zh/guide/adapters",
        "https://devcodex-labs.github.io/vextjs/zh/guide/cli",
        "https://devcodex-labs.github.io/vextjs/zh/guide/cluster",
        "https://devcodex-labs.github.io/vextjs/zh/guide/database",
        "https://devcodex-labs.github.io/vextjs/zh/guide/deployment",
        "https://devcodex-labs.github.io/vextjs/zh/guide/error-handling",
        "https://devcodex-labs.github.io/vextjs/zh/guide/fetch",
        "https://devcodex-labs.github.io/vextjs/zh/guide/hot-reload",
        "https://devcodex-labs.github.io/vextjs/zh/guide/i18n",
        "https://devcodex-labs.github.io/vextjs/zh/guide/logger",
        "https://devcodex-labs.github.io/vextjs/zh/guide/middleware",
        "https://devcodex-labs.github.io/vextjs/zh/guide/openapi",
        "https://devcodex-labs.github.io/vextjs/zh/guide/plugins",
        "https://devcodex-labs.github.io/vextjs/zh/guide/project-structure",
        "https://devcodex-labs.github.io/vextjs/zh/guide/quick-start",
        "https://devcodex-labs.github.io/vextjs/zh/guide/validation"
      ]
    },
    {
      "locale": "en",
      "route": "/guide/cookies-session",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/guide/cookies-session",
      "title": "Cookies and Sessions",
      "summary": "Vext provides first-party cookie parsing, response cookie helpers, and a configuration-driven Session runtime. The feature is zero-dependency and works across Native, Hono, Fastify, Express, and Koa adapters.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/guide/cookies-session.md",
      "contentHash": "d96b5b563bc23186f0ad5fdb776b6b636bdba09aa9177765db294cf6ec3d59f9",
      "related": []
    },
    {
      "locale": "en",
      "route": "/guide/database",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/guide/database",
      "title": "en/guide/database",
      "summary": "VextJS has a built-in MonSQLize database plug-in, providing out-of-the-box MongoDB database support. Just add the database field in the configuration file, and the framework will automatically complete connection management, model loading and resource cleanup.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/guide/database.md",
      "contentHash": "13b4ea1f64ac202644598470d2f3b9ad7b59bd1ce22f2b8a1bb2b60ec9892050",
      "related": [
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/fetch",
        "https://devcodex-labs.github.io/vextjs/guide/plugins",
        "https://devcodex-labs.github.io/vextjs/guide/testing"
      ]
    },
    {
      "locale": "en",
      "route": "/guide/deployment",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/guide/deployment",
      "title": "Deployment and production environment",
      "summary": "This guide explains how to deploy a VextJS application into production, covering practices such as building, Docker containerization, Nginx reverse proxy, PM2 process management, log collection, and health checks.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/guide/deployment.md",
      "contentHash": "fed817b7436a92fe6ad18c621975ca22e2d1d748bc5fca27c51585917d48bf63",
      "related": [
        "https://devcodex-labs.github.io/vextjs/examples/nacos-integration",
        "https://devcodex-labs.github.io/vextjs/examples/opentelemetry",
        "https://devcodex-labs.github.io/vextjs/guide/build",
        "https://devcodex-labs.github.io/vextjs/guide/cluster",
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/logger",
        "https://devcodex-labs.github.io/vextjs/resources/support-and-services",
        "https://devcodex-labs.github.io/vextjs/zh/guide/build",
        "https://devcodex-labs.github.io/vextjs/zh/guide/logger"
      ]
    },
    {
      "locale": "en",
      "route": "/guide/error-handling",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/guide/error-handling",
      "title": "Error handling",
      "summary": "VextJS will uniformly capture exceptions thrown in routes, middleware, and services and convert them into HTTP responses. app.throw(...) is preferred when actively returning business errors; VextValidationError is used when field-level verification fails; t...",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/guide/error-handling.md",
      "contentHash": "e7a42fe478dcbd83e1d81af046931f14acd2e9369540c71f33c3782140ab8347",
      "related": [
        "https://devcodex-labs.github.io/vextjs/api/app"
      ]
    },
    {
      "locale": "en",
      "route": "/guide/fetch",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/guide/fetch",
      "title": "Built-in HTTP client (app.fetch)",
      "summary": "VextJS has a built-in enhanced HTTP client app.fetch, which is based on the Node.js 20+ native fetch package and provides capabilities such as requestId automatic propagation, timeout control, automatic retry, structured log, create() factory and config dri...",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/guide/fetch.md",
      "contentHash": "33b797ceae41959b60b0356ac38a6e9a05b154cb5f11896b459897dbb8a179ed",
      "related": [
        "https://devcodex-labs.github.io/vextjs/api/fetch",
        "https://devcodex-labs.github.io/vextjs/examples/nacos-integration",
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/database",
        "https://devcodex-labs.github.io/vextjs/guide/hooks",
        "https://devcodex-labs.github.io/vextjs/guide/middleware",
        "https://devcodex-labs.github.io/vextjs/guide/plugins",
        "https://devcodex-labs.github.io/vextjs/guide/request-context",
        "https://devcodex-labs.github.io/vextjs/guide/testing",
        "https://devcodex-labs.github.io/vextjs/zh/api/fetch",
        "https://devcodex-labs.github.io/vextjs/zh/examples/nacos-integration",
        "https://devcodex-labs.github.io/vextjs/zh/guide/database",
        "https://devcodex-labs.github.io/vextjs/zh/guide/hooks",
        "https://devcodex-labs.github.io/vextjs/zh/guide/request-context"
      ]
    },
    {
      "locale": "en",
      "route": "/guide/frontend",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/guide/frontend",
      "title": "Frontend integration",
      "summary": "This page is kept for existing links.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/guide/frontend.md",
      "contentHash": "4932bb2b788ad337b5767ebbbcf6bf0a9f9df1d5b87b7845a98b663e9b84553a",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/build-and-deploy",
        "https://devcodex-labs.github.io/vextjs/frontend/configuration",
        "https://devcodex-labs.github.io/vextjs/frontend/getting-started",
        "https://devcodex-labs.github.io/vextjs/frontend/overview",
        "https://devcodex-labs.github.io/vextjs/frontend/rendering-modes",
        "https://devcodex-labs.github.io/vextjs/frontend/routing-and-pages"
      ]
    },
    {
      "locale": "en",
      "route": "/guide/hooks",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/guide/hooks",
      "title": "Runtime Hooks",
      "summary": "app.hooks.on(name, handler) is used to observe or lightweight patch framework runtime life cycle. It is suitable for cross-cutting logic such as request auditing, request records after verification, response header patch, outbound call monitoring, service c...",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/guide/hooks.md",
      "contentHash": "9f5a646fcd97659a509c725421e0265db73eb00944691f29bbb4bf07682470b8",
      "related": [
        "https://devcodex-labs.github.io/vextjs/api/app",
        "https://devcodex-labs.github.io/vextjs/guide/fetch",
        "https://devcodex-labs.github.io/vextjs/guide/openapi"
      ]
    },
    {
      "locale": "en",
      "route": "/guide/hot-reload",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/guide/hot-reload",
      "title": "Hot reload",
      "summary": "VextJS has a built-in intelligent hot reload mechanism and starts development mode through the vext dev command. The framework will monitor file changes and automatically select the optimal reload strategy based on the type of change, from millisecond-level...",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/guide/hot-reload.md",
      "contentHash": "c61f22d324a8cfba76f5d30121aa43625893be0557dea9b534635cceef4a5bfa",
      "related": [
        "https://devcodex-labs.github.io/vextjs/guide/build",
        "https://devcodex-labs.github.io/vextjs/guide/cli",
        "https://devcodex-labs.github.io/vextjs/guide/cluster",
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/testing",
        "https://devcodex-labs.github.io/vextjs/zh/guide/build",
        "https://devcodex-labs.github.io/vextjs/zh/guide/cli",
        "https://devcodex-labs.github.io/vextjs/zh/guide/cluster"
      ]
    },
    {
      "locale": "en",
      "route": "/guide/i18n",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/guide/i18n",
      "title": "Internationalization (i18n)",
      "summary": "VextJS has built-in internationalization support and realizes multi-language translation of error messages through language pack files in the src/locales/ directory. Language packs are automatically scanned and loaded by i18n-loader, and are seamlessly link...",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/guide/i18n.md",
      "contentHash": "a55a895ed865fa6dbf721526cc6a43dd348617a61da977f445f24da417db9d03",
      "related": [
        "https://devcodex-labs.github.io/vextjs/guide/adapters",
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/plugins",
        "https://devcodex-labs.github.io/vextjs/guide/project-structure",
        "https://devcodex-labs.github.io/vextjs/guide/request-context",
        "https://devcodex-labs.github.io/vextjs/guide/validation",
        "https://devcodex-labs.github.io/vextjs/zh/guide/project-structure",
        "https://devcodex-labs.github.io/vextjs/zh/guide/request-context"
      ]
    },
    {
      "locale": "en",
      "route": "/guide/introduction",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/guide/introduction",
      "title": "Introduction",
      "summary": "VextJS is a full-stack Node.js framework for applications that need APIs, server-rendered React pages, or both. src/routes/ remains the URL authority while services, validation, security, cache, OpenAPI, and typed clients share the same request contracts. Y...",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/guide/introduction.md",
      "contentHash": "118e3148cbd6b5d7d86ea475685953172f83a5be6e80c39f67c72b56cf76e713",
      "related": [
        "https://devcodex-labs.github.io/vextjs/benchmark",
        "https://devcodex-labs.github.io/vextjs/frontend/boundaries-and-roadmap",
        "https://devcodex-labs.github.io/vextjs/frontend/getting-started",
        "https://devcodex-labs.github.io/vextjs/guide/quick-start"
      ]
    },
    {
      "locale": "en",
      "route": "/guide/logger",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/guide/logger",
      "title": "Logger",
      "summary": "VextJS has a built-in Vext logger kernel with zero runtime dependency, which can be used anywhere in the framework through app.logger. By default, it provides capabilities such as structured JSON, pretty/JSON dual mode, pretty level color output, requestId ...",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/guide/logger.md",
      "contentHash": "7d7d5572f981a5633a04300699aaf6838e93b35816ae62f5f9795c11ed73c49a",
      "related": [
        "https://devcodex-labs.github.io/vextjs/api/access-log",
        "https://devcodex-labs.github.io/vextjs/examples/opentelemetry",
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/deployment",
        "https://devcodex-labs.github.io/vextjs/guide/middleware",
        "https://devcodex-labs.github.io/vextjs/guide/request-context",
        "https://devcodex-labs.github.io/vextjs/zh/api/access-log",
        "https://devcodex-labs.github.io/vextjs/zh/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/zh/guide/request-context"
      ]
    },
    {
      "locale": "en",
      "route": "/guide/middleware",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/guide/middleware",
      "title": "middleware",
      "summary": "VextJS's middleware uses the Onion Model to support pre-request processing and post-response processing. The framework provides two definition methods: defineMiddleware and defineMiddlewareFactory, which are automatically scanned and loaded through the agre...",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/guide/middleware.md",
      "contentHash": "a37528340fd0b1f286b7a8dc6d33f99c2c2060e441e44465c03a0c1acd8ea193",
      "related": [
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/fetch",
        "https://devcodex-labs.github.io/vextjs/guide/logger",
        "https://devcodex-labs.github.io/vextjs/guide/plugins",
        "https://devcodex-labs.github.io/vextjs/guide/project-structure",
        "https://devcodex-labs.github.io/vextjs/guide/quick-start",
        "https://devcodex-labs.github.io/vextjs/guide/request-context",
        "https://devcodex-labs.github.io/vextjs/guide/routing",
        "https://devcodex-labs.github.io/vextjs/guide/services",
        "https://devcodex-labs.github.io/vextjs/guide/testing",
        "https://devcodex-labs.github.io/vextjs/guide/validation",
        "https://devcodex-labs.github.io/vextjs/zh/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/zh/guide/error-handling",
        "https://devcodex-labs.github.io/vextjs/zh/guide/fetch",
        "https://devcodex-labs.github.io/vextjs/zh/guide/logger",
        "https://devcodex-labs.github.io/vextjs/zh/guide/plugins",
        "https://devcodex-labs.github.io/vextjs/zh/guide/project-structure",
        "https://devcodex-labs.github.io/vextjs/zh/guide/quick-start",
        "https://devcodex-labs.github.io/vextjs/zh/guide/request-context",
        "https://devcodex-labs.github.io/vextjs/zh/guide/routing",
        "https://devcodex-labs.github.io/vextjs/zh/guide/services",
        "https://devcodex-labs.github.io/vextjs/zh/guide/testing"
      ]
    },
    {
      "locale": "en",
      "route": "/guide/openapi",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/guide/openapi",
      "title": "OpenAPI Documentation",
      "summary": "VextJS has built-in automatic generation of OpenAPI documentation. Based on route validate and docs configuration, the framework generates an OpenAPI 3.0 JSON document and serves the default /docs page with the Vext Docs Renderer. Third-party documentation ...",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/guide/openapi.md",
      "contentHash": "61f7e9005e9cdb7f53c50742f7f41b9d8fc9e8f91fed3a68c479037c3062267f",
      "related": [
        "https://devcodex-labs.github.io/vextjs/api/config",
        "https://devcodex-labs.github.io/vextjs/examples/crud-api",
        "https://devcodex-labs.github.io/vextjs/guide/adapters",
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/hooks",
        "https://devcodex-labs.github.io/vextjs/guide/routing",
        "https://devcodex-labs.github.io/vextjs/guide/testing",
        "https://devcodex-labs.github.io/vextjs/guide/validation",
        "https://devcodex-labs.github.io/vextjs/zh/api/config",
        "https://devcodex-labs.github.io/vextjs/zh/examples/crud-api",
        "https://devcodex-labs.github.io/vextjs/zh/guide/adapters",
        "https://devcodex-labs.github.io/vextjs/zh/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/zh/guide/hooks",
        "https://devcodex-labs.github.io/vextjs/zh/guide/routing",
        "https://devcodex-labs.github.io/vextjs/zh/guide/validation"
      ]
    },
    {
      "locale": "en",
      "route": "/guide/plugins",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/guide/plugins",
      "title": "plugin",
      "summary": "The plug-in system of VextJS is the only extension entrance to the framework. Through plug-ins, you can inject custom capabilities into the app object, register global middleware, replace built-in implementations, and manage resource life cycles.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/guide/plugins.md",
      "contentHash": "d4c74c790859590d12c54f86865f3a7bf8ddd5995ba55aa024c46b1a3856ee29",
      "related": [
        "https://devcodex-labs.github.io/vextjs/examples/nacos-integration",
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/database",
        "https://devcodex-labs.github.io/vextjs/guide/fetch",
        "https://devcodex-labs.github.io/vextjs/guide/i18n",
        "https://devcodex-labs.github.io/vextjs/guide/middleware",
        "https://devcodex-labs.github.io/vextjs/guide/preload",
        "https://devcodex-labs.github.io/vextjs/guide/project-structure",
        "https://devcodex-labs.github.io/vextjs/guide/quick-start",
        "https://devcodex-labs.github.io/vextjs/guide/services",
        "https://devcodex-labs.github.io/vextjs/guide/testing",
        "https://devcodex-labs.github.io/vextjs/guide/validation",
        "https://devcodex-labs.github.io/vextjs/zh/examples/nacos-integration",
        "https://devcodex-labs.github.io/vextjs/zh/guide/database",
        "https://devcodex-labs.github.io/vextjs/zh/guide/fetch",
        "https://devcodex-labs.github.io/vextjs/zh/guide/hooks",
        "https://devcodex-labs.github.io/vextjs/zh/guide/i18n",
        "https://devcodex-labs.github.io/vextjs/zh/guide/middleware",
        "https://devcodex-labs.github.io/vextjs/zh/guide/preload",
        "https://devcodex-labs.github.io/vextjs/zh/guide/project-structure",
        "https://devcodex-labs.github.io/vextjs/zh/guide/quick-start",
        "https://devcodex-labs.github.io/vextjs/zh/guide/services",
        "https://devcodex-labs.github.io/vextjs/zh/guide/validation"
      ]
    },
    {
      "locale": "en",
      "route": "/guide/preload",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/guide/preload",
      "title": "Preload",
      "summary": "VextJS provides the Preload mechanism, allowing the following two types of sources to execute scripts before the Node.js module is loaded:",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/guide/preload.md",
      "contentHash": "4589387130f2fd1c6003db162cfca2613afc26cce7357a748fd2e2c2b451c2c4",
      "related": [
        "https://devcodex-labs.github.io/vextjs/examples/opentelemetry",
        "https://devcodex-labs.github.io/vextjs/guide/cli",
        "https://devcodex-labs.github.io/vextjs/guide/cluster",
        "https://devcodex-labs.github.io/vextjs/guide/plugins",
        "https://devcodex-labs.github.io/vextjs/zh/guide/cli",
        "https://devcodex-labs.github.io/vextjs/zh/guide/plugins"
      ]
    },
    {
      "locale": "en",
      "route": "/guide/project-structure",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/guide/project-structure",
      "title": "Project structure",
      "summary": "VextJS follows the design philosophy of convention over configuration and implements automatic scanning, loading and registration through a fixed directory structure, without the need to manually configure route mapping or service injection.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/guide/project-structure.md",
      "contentHash": "45045774df993d1e2a0789eb1dbbe1a608d23fa64ee67efe236d5a232b0ca606",
      "related": [
        "https://devcodex-labs.github.io/vextjs/examples/hello-world",
        "https://devcodex-labs.github.io/vextjs/frontend/overview",
        "https://devcodex-labs.github.io/vextjs/guide/cli",
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/i18n",
        "https://devcodex-labs.github.io/vextjs/guide/middleware",
        "https://devcodex-labs.github.io/vextjs/guide/plugins",
        "https://devcodex-labs.github.io/vextjs/guide/quick-start",
        "https://devcodex-labs.github.io/vextjs/guide/routing",
        "https://devcodex-labs.github.io/vextjs/guide/services",
        "https://devcodex-labs.github.io/vextjs/zh/examples/hello-world",
        "https://devcodex-labs.github.io/vextjs/zh/guide/cli",
        "https://devcodex-labs.github.io/vextjs/zh/guide/quick-start"
      ]
    },
    {
      "locale": "en",
      "route": "/guide/quick-start",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/guide/quick-start",
      "title": "Quick start",
      "summary": "VextJS provides the vext create command to create a runnable project. The default template proves the one-route model immediately: / renders React through res.render(), /api/hello returns JSON, and both use the generated example service. Choose API-only whe...",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/guide/quick-start.md",
      "contentHash": "a63598bd6afe64407e98ecdffadb345eaacf2f17e785c5176d47e4b395eacf34",
      "related": [
        "https://devcodex-labs.github.io/vextjs/examples/hello-world",
        "https://devcodex-labs.github.io/vextjs/frontend/overview",
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/introduction",
        "https://devcodex-labs.github.io/vextjs/guide/middleware",
        "https://devcodex-labs.github.io/vextjs/guide/plugins",
        "https://devcodex-labs.github.io/vextjs/guide/project-structure",
        "https://devcodex-labs.github.io/vextjs/guide/routing",
        "https://devcodex-labs.github.io/vextjs/zh/examples/hello-world"
      ]
    },
    {
      "locale": "en",
      "route": "/guide/request-context",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/guide/request-context",
      "title": "Request Context (Request Context)",
      "summary": "VextJS implements request-level context storage requestContext based on Node.js AsyncLocalStorage, maintaining independent context data for each request. There is no need to manually pass parameters, and the context information of the current request can be...",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/guide/request-context.md",
      "contentHash": "8eb6b361aabd1f438279b0adc2e299396cce66672cdc9bfd472f1cbc234db599",
      "related": [
        "https://devcodex-labs.github.io/vextjs/examples/opentelemetry",
        "https://devcodex-labs.github.io/vextjs/guide/fetch",
        "https://devcodex-labs.github.io/vextjs/guide/i18n",
        "https://devcodex-labs.github.io/vextjs/guide/logger",
        "https://devcodex-labs.github.io/vextjs/guide/middleware",
        "https://devcodex-labs.github.io/vextjs/zh/api/config",
        "https://devcodex-labs.github.io/vextjs/zh/api/fetch",
        "https://devcodex-labs.github.io/vextjs/zh/guide/fetch"
      ]
    },
    {
      "locale": "en",
      "route": "/guide/routing",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/guide/routing",
      "title": "routing",
      "summary": "VextJS uses conventional file routing + three-stage routing definition to automatically map file paths to URL prefixes, and declare specific routes inside the file through defineRoutes().",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/guide/routing.md",
      "contentHash": "e1d68e3cc6448cf29245fb779373dec3e52bd9fdd392c3ef0c3ce7b6c35074fb",
      "related": [
        "https://devcodex-labs.github.io/vextjs/examples/hello-world",
        "https://devcodex-labs.github.io/vextjs/guide/middleware",
        "https://devcodex-labs.github.io/vextjs/guide/openapi",
        "https://devcodex-labs.github.io/vextjs/guide/project-structure",
        "https://devcodex-labs.github.io/vextjs/guide/quick-start",
        "https://devcodex-labs.github.io/vextjs/guide/services",
        "https://devcodex-labs.github.io/vextjs/guide/testing",
        "https://devcodex-labs.github.io/vextjs/guide/validation",
        "https://devcodex-labs.github.io/vextjs/zh/examples/hello-world",
        "https://devcodex-labs.github.io/vextjs/zh/guide/error-handling",
        "https://devcodex-labs.github.io/vextjs/zh/guide/project-structure",
        "https://devcodex-labs.github.io/vextjs/zh/guide/quick-start",
        "https://devcodex-labs.github.io/vextjs/zh/guide/testing",
        "https://devcodex-labs.github.io/vextjs/zh/guide/validation"
      ]
    },
    {
      "locale": "en",
      "route": "/guide/services",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/guide/services",
      "title": "Service layer",
      "summary": "VextJS adopts a layered architecture and concentrates business logic on the service layer (Service Layer). Service files are placed in the src/services/ directory, automatically scanned, instantiated and injected into app.services by the framework, and acce...",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/guide/services.md",
      "contentHash": "f7e4d4c5120d47c44293dbf9a7f278af8628aaa22c0ab0f4822dbeea4baa9c18",
      "related": [
        "https://devcodex-labs.github.io/vextjs/guide/middleware",
        "https://devcodex-labs.github.io/vextjs/guide/plugins",
        "https://devcodex-labs.github.io/vextjs/guide/project-structure",
        "https://devcodex-labs.github.io/vextjs/guide/routing",
        "https://devcodex-labs.github.io/vextjs/guide/testing",
        "https://devcodex-labs.github.io/vextjs/zh/guide/project-structure",
        "https://devcodex-labs.github.io/vextjs/zh/guide/routing",
        "https://devcodex-labs.github.io/vextjs/zh/guide/testing"
      ]
    },
    {
      "locale": "en",
      "route": "/guide/testing",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/guide/testing",
      "title": "test",
      "summary": "VextJS has a complete built-in testing tool, imported through the vextjs/testing subpath. Routers, middleware, and services can be tested end-to-end without starting a real HTTP server.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/guide/testing.md",
      "contentHash": "809d58e674aee167afb4eb5d8bb40d9ef654666d0fa06337aaab60574759f42b",
      "related": [
        "https://devcodex-labs.github.io/vextjs/examples/crud-api",
        "https://devcodex-labs.github.io/vextjs/guide/cli",
        "https://devcodex-labs.github.io/vextjs/guide/cluster",
        "https://devcodex-labs.github.io/vextjs/guide/database",
        "https://devcodex-labs.github.io/vextjs/guide/fetch",
        "https://devcodex-labs.github.io/vextjs/guide/hot-reload",
        "https://devcodex-labs.github.io/vextjs/guide/middleware",
        "https://devcodex-labs.github.io/vextjs/guide/openapi",
        "https://devcodex-labs.github.io/vextjs/guide/plugins",
        "https://devcodex-labs.github.io/vextjs/guide/routing",
        "https://devcodex-labs.github.io/vextjs/guide/services",
        "https://devcodex-labs.github.io/vextjs/zh/examples/crud-api",
        "https://devcodex-labs.github.io/vextjs/zh/guide/cluster",
        "https://devcodex-labs.github.io/vextjs/zh/guide/database",
        "https://devcodex-labs.github.io/vextjs/zh/guide/fetch",
        "https://devcodex-labs.github.io/vextjs/zh/guide/hot-reload",
        "https://devcodex-labs.github.io/vextjs/zh/guide/middleware",
        "https://devcodex-labs.github.io/vextjs/zh/guide/openapi",
        "https://devcodex-labs.github.io/vextjs/zh/guide/plugins",
        "https://devcodex-labs.github.io/vextjs/zh/guide/services"
      ]
    },
    {
      "locale": "en",
      "route": "/guide/validation",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/guide/validation",
      "title": "Parameter verification",
      "summary": "VextJS integrates schema-dsl to provide declarative parameter verification. Use concise DSL strings to describe verification rules in the route options.validate. The framework automatically completes verification, type conversion, and generates OpenAPI docu...",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/guide/validation.md",
      "contentHash": "efb3ebdc9cb130878a819fb912d1f07c7555e8df816e8bd8f2ea367708ff4bd3",
      "related": [
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/i18n",
        "https://devcodex-labs.github.io/vextjs/guide/middleware",
        "https://devcodex-labs.github.io/vextjs/guide/openapi",
        "https://devcodex-labs.github.io/vextjs/guide/plugins",
        "https://devcodex-labs.github.io/vextjs/guide/routing",
        "https://devcodex-labs.github.io/vextjs/zh/guide/i18n",
        "https://devcodex-labs.github.io/vextjs/zh/guide/middleware",
        "https://devcodex-labs.github.io/vextjs/zh/guide/openapi",
        "https://devcodex-labs.github.io/vextjs/zh/guide/plugins",
        "https://devcodex-labs.github.io/vextjs/zh/guide/routing"
      ]
    },
    {
      "locale": "en",
      "route": "/resources/documentation-data-and-ai",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/resources/documentation-data-and-ai",
      "title": "Documentation Data and AI",
      "summary": "Canonical, machine-readable documentation assets and a privacy-first measurement boundary for VextJS.",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "documentation"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/resources/documentation-data-and-ai.md",
      "contentHash": "9229d65bb7a1efb5746fe46138922580d9bcae9c8bb77c5cbebc8931ea7c0203",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/boundaries-and-roadmap"
      ]
    },
    {
      "locale": "en",
      "route": "/resources/support-and-services",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/resources/support-and-services",
      "title": "Support and Services",
      "summary": "A scoped, maintainer-led path for production reviews, migration work, and team enablement.",
      "audience": [
        "developers",
        "engineering-leads"
      ],
      "appliesTo": [
        "documentation"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/en/resources/support-and-services.md",
      "contentHash": "12e6c4780bfc056db864c812da08c936e2a17e76113d04981df48a0d5634d333",
      "related": [
        "https://devcodex-labs.github.io/vextjs/frontend/boundaries-and-roadmap",
        "https://devcodex-labs.github.io/vextjs/guide/deployment"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/",
      "title": "VextJS",
      "summary": "用一个 Node.js 应用交付 API 与服务端渲染 React 页面，并统一路由模型、类型契约和内置文档。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "framework"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/index.mdx",
      "contentHash": "0b05d98c8ecd87e57fbd1015a1bcb50f773dda8bee99d121f4790e42838b7a0c",
      "related": []
    },
    {
      "locale": "zh",
      "route": "/zh/api/access-log",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/api/access-log",
      "title": "Access Log 中间件",
      "summary": "VextJS 内置 Access Log 中间件，自动记录每个 HTTP 请求的方法、路径、状态码、响应时间和客户端 IP。该中间件基于洋葱模型（after-middleware 模式），在请求处理完成后输出一行紧凑的访问日志。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "public-api"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/api/access-log.md",
      "contentHash": "1c1934cc2d9e2083e5f94c6dd3e74e3325b322a0d9995b3f386c11839c248824",
      "related": [
        "https://devcodex-labs.github.io/vextjs/api/context",
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/logger"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/api/app",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/api/app",
      "title": "应用实例",
      "summary": "本页详细介绍 VextJS 的应用实例 VextApp 的完整 API，包括内置模块、扩展方法、生命周期钩子和启动函数。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "public-api"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/api/app.md",
      "contentHash": "d7ced6d01514b7874c38417e4dad44f0942fc4120ef0c6427464f27c6959c00d",
      "related": [
        "https://devcodex-labs.github.io/vextjs/api/config",
        "https://devcodex-labs.github.io/vextjs/api/plugin-api",
        "https://devcodex-labs.github.io/vextjs/api/route-definition",
        "https://devcodex-labs.github.io/vextjs/guide/cache"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/api/config",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/api/config",
      "title": "配置项",
      "summary": "本页详细列出 VextJS 的所有配置字段、类型、默认值及使用说明。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "public-api"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/api/config.md",
      "contentHash": "81ddce19e1f6fd93faae520a0b3fb507ed128df9d4e915390ae3370ecd63e878",
      "related": [
        "https://devcodex-labs.github.io/vextjs/guide/cache",
        "https://devcodex-labs.github.io/vextjs/guide/openapi",
        "https://devcodex-labs.github.io/vextjs/guide/request-context",
        "https://devcodex-labs.github.io/vextjs/zh/guide/configuration"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/api/context",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/api/context",
      "title": "请求与响应",
      "summary": "本页详细介绍 VextJS 的请求对象 VextRequest 和响应对象 VextResponse 的完整 API。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "public-api"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/api/context.md",
      "contentHash": "990f8825a9d34dc319c91f5a37e61bee520ea6c10ffdfe53d78334bc4e136c0c",
      "related": []
    },
    {
      "locale": "zh",
      "route": "/zh/api/fetch",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/api/fetch",
      "title": "Fetch API",
      "summary": "本页提供 app.fetch 内置 HTTP 客户端的精简 API 参考。完整的使用指南、示例和最佳实践请参阅 内置 HTTP 客户端指南。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "public-api"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/api/fetch.md",
      "contentHash": "b9012234e2ad7a5b950fdd588d5fcc8aed7f3b6b7826f273edf82d6a399ee08d",
      "related": [
        "https://devcodex-labs.github.io/vextjs/api/app",
        "https://devcodex-labs.github.io/vextjs/api/config",
        "https://devcodex-labs.github.io/vextjs/guide/fetch",
        "https://devcodex-labs.github.io/vextjs/guide/request-context"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/api/plugin-api",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/api/plugin-api",
      "title": "插件 API",
      "summary": "本页详细介绍 VextJS 的插件系统 API，包括插件定义、中间件定义辅助函数和相关类型。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "public-api"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/api/plugin-api.md",
      "contentHash": "5d87d737d14bd6b3f39c2c278bf7ca8e57297578c53a74a4b3a767e1a1a55d58",
      "related": [
        "https://devcodex-labs.github.io/vextjs/api/app",
        "https://devcodex-labs.github.io/vextjs/api/config"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/api/route-definition",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/api/route-definition",
      "title": "路由定义",
      "summary": "本页详细介绍 VextJS 的路由定义 API，包括 defineRoutes、路由选项、参数校验、中间件引用和文档配置。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "public-api"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/api/route-definition.md",
      "contentHash": "6bfabc6de7b70354f5bee8d1026a58dbfa0e98a0d876193e3ce46882f34cc2f7",
      "related": [
        "https://devcodex-labs.github.io/vextjs/guide/cache"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/api/testing-api",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/api/testing-api",
      "title": "测试工具",
      "summary": "本页详细介绍 VextJS 的测试工具 API，包括 createTestApp、TestApp、TestRequest、TestRequestBuilder 和 TestResponse。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "public-api"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/api/testing-api.md",
      "contentHash": "a04c75cac31e1823df150cbfc5c39de3f35594958a46ce3f5578a0510da3b51e",
      "related": []
    },
    {
      "locale": "zh",
      "route": "/zh/benchmark",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/benchmark",
      "title": "性能基准测试",
      "summary": "本页展示 VextJS 与其他主流 Node.js Web 框架的性能基准对比数据。当前版本的可复现基准以仓库内 test/benchmark/run-benchmark.mjs 为准；页面中的历史 benchmark 仓库数据仅用于趋势参考。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "performance"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/benchmark.md",
      "contentHash": "ca77eb06ce1781b957f9c127b69ee089df376441068da0b9d2c9a05e6b78cce9",
      "related": [
        "https://devcodex-labs.github.io/vextjs/api/config",
        "https://devcodex-labs.github.io/vextjs/guide/adapters",
        "https://devcodex-labs.github.io/vextjs/guide/cluster"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/examples/crud-api",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/examples/crud-api",
      "title": "CRUD API",
      "summary": "一个完整的 RESTful CRUD API 示例，展示 VextJS 的服务层、中间件、参数校验、错误处理等核心能力。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "examples"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/examples/crud-api.md",
      "contentHash": "734c328e89f6a08574e2e83072a88d4de10bcbf11e64a17fb2e3cf02707fa894",
      "related": [
        "https://devcodex-labs.github.io/vextjs/guide/openapi",
        "https://devcodex-labs.github.io/vextjs/guide/testing",
        "https://devcodex-labs.github.io/vextjs/zh/examples/permission-core-auth"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/examples/hello-world",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/examples/hello-world",
      "title": "Hello World",
      "summary": "最简单的 VextJS 项目，帮助你理解框架的基本结构和工作方式。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "examples"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/examples/hello-world.md",
      "contentHash": "72dfe07c138fb3f4ddfc712ca9b4efc02136e06c6fc50dfa95982883342d0d80",
      "related": [
        "https://devcodex-labs.github.io/vextjs/examples/crud-api",
        "https://devcodex-labs.github.io/vextjs/guide/project-structure",
        "https://devcodex-labs.github.io/vextjs/guide/quick-start",
        "https://devcodex-labs.github.io/vextjs/guide/routing"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/examples/nacos-integration",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/examples/nacos-integration",
      "title": "Nacos 接入示例",
      "summary": "本示例演示如何在 VextJS 中集成 Nacos，实现服务注册与发现、运行期动态配置，以及启动期远程配置补丁。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "examples"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/examples/nacos-integration.md",
      "contentHash": "6739c81198b77080016e886236726dd0335a4038f8ca72ff6e92c088df8e0620",
      "related": [
        "https://devcodex-labs.github.io/vextjs/examples/opentelemetry",
        "https://devcodex-labs.github.io/vextjs/guide/fetch",
        "https://devcodex-labs.github.io/vextjs/guide/plugins"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/examples/opentelemetry",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/examples/opentelemetry",
      "title": "OpenTelemetry 可观测性",
      "summary": "本文档只介绍 VextJS 场景下如何接入 @devcodex/opentelemetry。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "examples"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/examples/opentelemetry.md",
      "contentHash": "a031780cf6fab1f19cfb9f43bd18e822eab490b1ee484e09dadfee69d44059ea",
      "related": []
    },
    {
      "locale": "zh",
      "route": "/zh/examples/permission-core-auth",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/examples/permission-core-auth",
      "title": "permission-core Auth 接入",
      "summary": "本示例展示如何把 permission-core 接入 VextJS Auth。Vext 的认证与路由保护是分层的：",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "examples"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/examples/permission-core-auth.md",
      "contentHash": "cf1770eca8311d9dc7619e601d17c6bb9ecdfce0d53c53a816f4da109a92458c",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/examples/crud-api"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/api-client-and-contracts",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/api-client-and-contracts",
      "title": "API Client 与契约",
      "summary": "Vext 页面首屏数据不需要生成 API client。首屏数据应优先使用 route handler 和 res.render()。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/api-client-and-contracts.md",
      "contentHash": "bbadf3411a90b9e58499428fed2d458ac227ec96cd81ef728893e0d3fdf26d9e",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/frontend/data-and-api"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/boundaries-and-roadmap",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/boundaries-and-roadmap",
      "title": "边界与路线图",
      "summary": "本页区分当前前端目标和后续能力方向。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/boundaries-and-roadmap.md",
      "contentHash": "8365cf18e77c06ee4cd6eff60768da6c97ba1c2a9bfe4443aa0d23a5006d63ce",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/frontend/build-deploy-performance",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/overview",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/rendering-modes",
        "https://devcodex-labs.github.io/vextjs/zh/guide/introduction",
        "https://devcodex-labs.github.io/vextjs/zh/resources/documentation-data-and-ai",
        "https://devcodex-labs.github.io/vextjs/zh/resources/support-and-services"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/build-and-deploy",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/build-and-deploy",
      "title": "构建与发布",
      "summary": "vext build 会在一个命令中编译服务端产物和前端产物。本页给出生产交付路径；字段级说明见前端配置，缓存和媒体行为见静态资源与 CDN。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/build-and-deploy.md",
      "contentHash": "a9a572709d02a5e44a0a0a17c3e69aec28ad4c6a0c44a4768bf41c2dce24cef0",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/frontend/build-deploy-performance",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/overview",
        "https://devcodex-labs.github.io/vextjs/zh/guide/frontend"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/build-deploy-performance",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/build-deploy-performance",
      "title": "构建、发布与性能",
      "summary": "本页仅为旧链接保留。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/build-deploy-performance.md",
      "contentHash": "257a8b2b255cceb192019c44713a0512f2cad0d7f2d303e19ee0a31946caafe9",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/frontend/boundaries-and-roadmap",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/build-and-deploy",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/code-splitting",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/hydration-validation",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/performance-budgets",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/static-assets-and-cdn"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/code-splitting",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/code-splitting",
      "title": "代码拆分",
      "summary": "Vext 围绕页面、layout、错误页、locale 和共享 runtime chunk 拆分前端代码。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/code-splitting.md",
      "contentHash": "1631de80af353ef7aa095c3c11c3051bce7b745a5661d6c4502347ebe6af95f2",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/frontend/build-deploy-performance",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/overview"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/configuration",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/configuration",
      "title": "前端配置",
      "summary": "本页是决策指南，不重复罗列每一个类型成员。先使用默认值，只为产品确实要改变的行为配置字段；需要精确字段、默认值或嵌套选项时，以VextFrontendConfig API 参考为准。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/configuration.md",
      "contentHash": "1cb5c53c5da7021a930d3355ed296c53975fd687170a61fb6a9f9557df681ecc",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/frontend/jscss",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/overview",
        "https://devcodex-labs.github.io/vextjs/zh/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/zh/guide/frontend"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/csr-and-spa-fallback",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/csr-and-spa-fallback",
      "title": "CSR 与 SPA Fallback",
      "summary": "Vext 默认页面模型是 SSR + hydration。CSR fallback 必须显式、范围化配置。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/csr-and-spa-fallback.md",
      "contentHash": "c5b34f1bf53997d9898f2b4b8dfa1392948394c9c0f46f429616dde7b0b75dcd",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/frontend/overview",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/pages-and-rendering",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/routing-and-pages"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/data-and-api",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/data-and-api",
      "title": "数据与 API 调用",
      "summary": "本页仅为旧链接保留。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/data-and-api.md",
      "contentHash": "7f1732c0803ed664a32eae6f7f7944cbb09ba7cdd03da1210fe0375fcb6157a2",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/frontend/api-client-and-contracts",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/data-flow",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/render-data-and-cache"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/data-flow",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/data-flow",
      "title": "数据流",
      "summary": "Vext 前端数据从服务端开始。Route handler 调用 services，准备 JSON-safe 数据，再传给 res.render()。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/data-flow.md",
      "contentHash": "437bf48708180139b840ed563000c41595c62c9c3f26737632b159e3fd886aa6",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/frontend/data-and-api",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/overview"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/dev-workflow",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/dev-workflow",
      "title": "开发工作流",
      "summary": "vext dev 会同时启动后端 runtime 和前端开发流水线。前端输出写入 .vext/client/。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/dev-workflow.md",
      "contentHash": "3a51cd767699ea53cd9d212dd71c74010289fbd2ae60533012e6347788e0b717",
      "related": []
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/diagnostics-and-leak-scan",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/diagnostics-and-leak-scan",
      "title": "诊断与 Leak Scan",
      "summary": "Leak Scan 用来阻止服务端模块意外进入浏览器 bundle。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/diagnostics-and-leak-scan.md",
      "contentHash": "65c2310f79dbff551d749847ed33480a6c8496689fc62eb2e7e57405aabf6579",
      "related": []
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/errors-and-document",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/errors-and-document",
      "title": "错误页与 Document",
      "summary": "默认错误页放在：",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/errors-and-document.md",
      "contentHash": "c6e888b2640922349437e96dd8f76f794587d8824753a576fc344a347305d3d7",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/frontend/pages-and-rendering"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/fast-refresh",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/fast-refresh",
      "title": "Fast Refresh",
      "summary": "Fast Refresh 是 vext dev 中 React 页面、layout 和组件修改的默认反馈路径。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/fast-refresh.md",
      "contentHash": "1d9dcc34be0b8cb3a249d59d95a5e57d734ea812c6b25a5a9048a6392bead884",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/frontend/overview"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/getting-started",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/getting-started",
      "title": "快速开始",
      "summary": "本页是使用内置前端能力把 Vext 全栈页面跑起来的最短路径。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/getting-started.md",
      "contentHash": "3ac846d3475b9522a14e38771d3cba2d9e3e4accd5e2cba87764d59d6696f843",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/frontend/jscss",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/overview",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/project-structure",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/routing-and-pages",
        "https://devcodex-labs.github.io/vextjs/zh/guide/frontend",
        "https://devcodex-labs.github.io/vextjs/zh/guide/introduction"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/hydration",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/hydration",
      "title": "Hydration",
      "summary": "Hydration 会把浏览器端 React tree 接到 SSR 产出的 HTML 上。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/hydration.md",
      "contentHash": "331c4ec4b2425f8e3270683104677249ad7ed55324f654c8acd0bc5e07b320d3",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/frontend/overview",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/pages-and-rendering",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/rendering-modes",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/routing-and-pages"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/hydration-validation",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/hydration-validation",
      "title": "Hydration 验证",
      "summary": "Hydration 验证证明构建出的页面能在真实浏览器工作，而不只是静态产物存在。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/hydration-validation.md",
      "contentHash": "939139ce2197a47c08b37a4865a9dafae1d056f8456acd3c69d7eb9429b1667f",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/frontend/build-deploy-performance",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/overview"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/i18n",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/i18n",
      "title": "前端多语言",
      "summary": "后端 config.locale 仍是全栈 locale 基础。frontend.i18n 负责前端页面文案和 hydration 行为。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/i18n.md",
      "contentHash": "21e8fb36dd7d8680ba7ed513e010a95fe300021885e75e40c720e67ac5eb9713",
      "related": []
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/jscss",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/jscss",
      "title": "Vext JSCSS",
      "summary": "Vext JSCSS 会在构建期把 TypeScript 对象转换为 CSS class。组件需要有名字的 variants、语义化 CSS variables 或嵌套规则，同时希望浏览器最终加载的是 CSS 而不是 CSS-in-JS runtime 时，就使用它。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/jscss.md",
      "contentHash": "d2761b7c91db3aa50d5e5ffa16957f2ee49a1d64c301b449d30404920ba639c0",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/frontend/configuration",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/getting-started",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/overview",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/styles-and-assets"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/layouts-and-components",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/layouts-and-components",
      "title": "Layout 与组件",
      "summary": "Vext layout 是 src/frontend/pages/ 下命名为 layout.tsx 的 React 组件。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/layouts-and-components.md",
      "contentHash": "92b54ac411074f58e6a9c540a9dc001bcdd140c9ddc9565ca9e4786950724d81",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/frontend/overview"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/overview",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/overview",
      "title": "前端总览",
      "summary": "本前端指南描述 Vext 当前内置前端能力：route 驱动 React 19 页面、SSR、hydration、嵌套 layout、前端多语言、Fast Refresh、render refresh、代码拆分、静态资源、CDN 上传、性能预算和 hydration 验证。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/overview.md",
      "contentHash": "e9151f73c37bf234ca15f83cf24f4726518137642ca7dc46c3a9932a40e9fd10",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/frontend/boundaries-and-roadmap",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/build-and-deploy",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/code-splitting",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/configuration",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/csr-and-spa-fallback",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/data-flow",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/fast-refresh",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/getting-started",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/hydration",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/hydration-validation",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/jscss",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/layouts-and-components",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/performance-budgets",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/render-data-and-cache",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/render-refresh",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/rendering-modes",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/routing-and-pages",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/ssr",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/static-assets-and-cdn",
        "https://devcodex-labs.github.io/vextjs/zh/guide/cli",
        "https://devcodex-labs.github.io/vextjs/zh/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/zh/guide/frontend",
        "https://devcodex-labs.github.io/vextjs/zh/guide/project-structure",
        "https://devcodex-labs.github.io/vextjs/zh/guide/quick-start"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/pages-and-rendering",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/pages-and-rendering",
      "title": "页面与渲染",
      "summary": "本页仅为旧链接保留。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/pages-and-rendering.md",
      "contentHash": "c3093a6d4e4ae40f01bc8b4d326362a9b081b45ed9581e4a06cd8f99d795eeef",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/frontend/csr-and-spa-fallback",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/errors-and-document",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/hydration",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/render-data-and-cache",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/rendering-modes",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/routing-and-pages",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/ssr"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/performance-budgets",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/performance-budgets",
      "title": "性能预算",
      "summary": "性能预算用于让 React hydration 路线可测、可控。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/performance-budgets.md",
      "contentHash": "3c2a93bf5b7ada0d1cf880736b93a1320c611de80ae3106bb8d10685315e1cee",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/frontend/build-deploy-performance",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/overview"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/project-structure",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/project-structure",
      "title": "项目结构",
      "summary": "默认 vext create 脚手架是全栈项目。前端源码统一放在 src/frontend/，让服务端代码和浏览器代码保持物理边界。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/project-structure.md",
      "contentHash": "72fe7a65645c98d62931bae5950fcf5b4968c450805aca1c9c98fedaa5f902f6",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/frontend/getting-started"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/render-data-and-cache",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/render-data-and-cache",
      "title": "Render Data 与缓存",
      "summary": "Render data 是服务端准备、用于生成 HTML 并支持 hydration 的 payload。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/render-data-and-cache.md",
      "contentHash": "a7dd67cb626735058379a4b5bb7071f3610a4de400a2f847ef004b0840feafe7",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/frontend/data-and-api",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/overview",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/pages-and-rendering",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/rendering-modes",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/routing-and-pages"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/render-refresh",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/render-refresh",
      "title": "Render Refresh",
      "summary": "Render Refresh 处理会影响 res.render() HTML 输出的服务端变更。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/render-refresh.md",
      "contentHash": "c2c4d55f46be8eba98a0a06cd6caf747bfa1bfac86ffb501820990ee9a7a9f69",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/frontend/overview"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/rendering-modes",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/rendering-modes",
      "title": "渲染模式",
      "summary": "Vext 支持混合全栈前端模型，同时避免服务端文件进入浏览器 bundle。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/rendering-modes.md",
      "contentHash": "f8f4f2952d872d37d9dea0716a66b74a3ee8267963ee3427f610aa22322641a9",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/frontend/boundaries-and-roadmap",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/hydration",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/overview",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/pages-and-rendering",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/render-data-and-cache",
        "https://devcodex-labs.github.io/vextjs/zh/guide/frontend"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/routing-and-pages",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/routing-and-pages",
      "title": "路由与页面",
      "summary": "Vext 的 URL 入口仍然属于 src/routes/。页面文件是渲染目标，不是自动 URL 定义。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/routing-and-pages.md",
      "contentHash": "59488123a379fa509253ee7955bdc1b09903a1347bf4a055c6b9309b67e9fd55",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/frontend/csr-and-spa-fallback",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/getting-started",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/hydration",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/overview",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/pages-and-rendering",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/render-data-and-cache",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/ssr",
        "https://devcodex-labs.github.io/vextjs/zh/guide/frontend"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/ssr",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/ssr",
      "title": "SSR",
      "summary": "服务端渲染是 Vext 默认页面路径。Route handler 拥有 URL 与数据准备，前端页面拥有 React view。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/ssr.md",
      "contentHash": "a2ced6950cd66b23de5ae652ad87dc88047fa6bfa9cfde43d0335e1774fc015d",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/frontend/overview",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/pages-and-rendering",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/routing-and-pages"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/static-assets-and-cdn",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/static-assets-and-cdn",
      "title": "静态资源与 CDN",
      "summary": "Vext 有两个静态资源位置，它们行为不同。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/static-assets-and-cdn.md",
      "contentHash": "32e409b885c85a959e8ad76915a10b116a79f12b940a7db123338ff8e5bbc3fa",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/frontend/build-deploy-performance",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/overview"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/styles-and-assets",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/styles-and-assets",
      "title": "样式与资源",
      "summary": "全局 CSS 可以放在 src/frontend/styles/，并由页面、layout 或生成入口引用。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/styles-and-assets.md",
      "contentHash": "36df74cc10144714350b8c5fb1930280593282a7112fdc99f3f551d6dc6db578",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/frontend/jscss"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/frontend/troubleshooting",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/frontend/troubleshooting",
      "title": "排错",
      "summary": "如果 res.render(\"dashboard\") 找不到页面，检查：",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "frontend"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/frontend/troubleshooting.md",
      "contentHash": "c586b48a0bbed7ecfa99996598b441b8da9c5733c2ae33c5bb0a8a3cf6791ac0",
      "related": []
    },
    {
      "locale": "zh",
      "route": "/zh/guide/adapters",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/guide/adapters",
      "title": "Adapter 架构",
      "summary": "VextJS 的核心设计之一是 Adapter 架构——底层 HTTP 处理层完全可替换。你的业务代码（路由、中间件、服务、插件）操作的是 VextJS 封装的 req / res 对象，而非底层框架的原生对象。切换 Adapter 仅需修改一行配置，业务代码零改动。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/guide/adapters.md",
      "contentHash": "aac14280990f02cf706375903c395beab5edb96bfb6b6fb6df9e3772a3fa5dd8",
      "related": [
        "https://devcodex-labs.github.io/vextjs/benchmark",
        "https://devcodex-labs.github.io/vextjs/guide/cluster",
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/openapi"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/guide/build",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/guide/build",
      "title": "构建 (vext build)",
      "summary": "vext build 会将服务端源码编译为可部署的 JavaScript 产物；当 frontend.enabled 为 true 时，还会把浏览器客户端打包到 dist/client/。当前版本的 vext build 按 production-target build 设计：它会对用户源码中的 process.env.NODEENV 做生产模式静态注入；运行时实际加载哪个配置 profile，由 vext start --config <name 或 VEXTCONFIG=<name 决定。基于 esbu...",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/guide/build.md",
      "contentHash": "ddfff63b3fdc57b866bf110548ac925a9711b72960618938c6ee20da2d4ff2bd",
      "related": [
        "https://devcodex-labs.github.io/vextjs/guide/cli",
        "https://devcodex-labs.github.io/vextjs/guide/cluster",
        "https://devcodex-labs.github.io/vextjs/guide/deployment",
        "https://devcodex-labs.github.io/vextjs/guide/hot-reload"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/guide/cache",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/guide/cache",
      "title": "响应缓存",
      "summary": "VextJS 提供声明式路由级响应缓存，通过路由选项的 cache 字段配置。缓存命中时跳过参数校验和 handler 执行，直接返回已缓存的 JSON 响应。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/guide/cache.md",
      "contentHash": "5fac9d3191bc8488d16a9b96fbe271db9db546675f2c56e5b5f92bdeeb04e716",
      "related": []
    },
    {
      "locale": "zh",
      "route": "/zh/guide/cli",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/guide/cli",
      "title": "CLI 命令",
      "summary": "VextJS 提供了 vext 命令行工具，覆盖项目创建、开发、构建、部署的完整生命周期。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/guide/cli.md",
      "contentHash": "a247c613cf49b88b02e9892e008fcac3e9258ad4c7d8fb7f0b4a356b8cd42324",
      "related": [
        "https://devcodex-labs.github.io/vextjs/guide/cluster",
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/hot-reload",
        "https://devcodex-labs.github.io/vextjs/guide/preload",
        "https://devcodex-labs.github.io/vextjs/guide/project-structure",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/overview"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/guide/cluster",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/guide/cluster",
      "title": "Cluster 多进程",
      "summary": "VextJS 内置 Cluster 多进程管理，通过 ClusterMaster 管理多个 Worker 进程，充分利用多核 CPU，并支持零停机滚动重启、心跳检测、自动故障恢复等企业级特性。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/guide/cluster.md",
      "contentHash": "afc26df38008b0f351348411ea1151773c3052a15cf7fc91d4780f99519f6182",
      "related": [
        "https://devcodex-labs.github.io/vextjs/guide/cli",
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/hot-reload",
        "https://devcodex-labs.github.io/vextjs/guide/testing"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/guide/configuration",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/guide/configuration",
      "title": "配置",
      "summary": "VextJS 采用 多层配置合并 机制，支持按环境覆盖配置，同时提供丰富的内置配置项覆盖框架行为。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/guide/configuration.md",
      "contentHash": "2206211c69361aa10f6024d30a84dc027955e9cb71dfb6865b6aa13ead0d97b8",
      "related": [
        "https://devcodex-labs.github.io/vextjs/guide/adapters",
        "https://devcodex-labs.github.io/vextjs/guide/cluster",
        "https://devcodex-labs.github.io/vextjs/guide/logger",
        "https://devcodex-labs.github.io/vextjs/guide/middleware",
        "https://devcodex-labs.github.io/vextjs/guide/openapi",
        "https://devcodex-labs.github.io/vextjs/zh/api/config",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/configuration",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/overview"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/guide/cookies-session",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/guide/cookies-session",
      "title": "Cookies 与 Sessions",
      "summary": "Vext 提供一等 cookie 解析、响应 cookie 辅助方法和配置驱动的 Session 运行时。该能力零第三方依赖，并覆盖 Native、Hono、Fastify、Express、Koa adapter。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/guide/cookies-session.md",
      "contentHash": "4e51c7903a6807e5b8fbfb73519990abf53dc1c2d144e85b5b30551bbcd0048c",
      "related": []
    },
    {
      "locale": "zh",
      "route": "/zh/guide/database",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/guide/database",
      "title": "zh/guide/database",
      "summary": "VextJS 内置了 MonSQLize 数据库插件，提供开箱即用的 MongoDB 数据库支持。只需在配置文件中添加 database 字段，框架会自动完成连接管理、Model 加载和资源清理。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/guide/database.md",
      "contentHash": "5dde77c9298fd2cb7e8edb906d7d4ca19350b93a7bbeca345797864b1d72695f",
      "related": [
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/fetch",
        "https://devcodex-labs.github.io/vextjs/guide/plugins",
        "https://devcodex-labs.github.io/vextjs/guide/testing"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/guide/deployment",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/guide/deployment",
      "title": "部署与生产环境",
      "summary": "本指南介绍如何将 VextJS 应用部署到生产环境，涵盖构建、Docker 容器化、Nginx 反向代理、PM2 进程管理、日志收集和健康检查等实践。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/guide/deployment.md",
      "contentHash": "9c4a167ee6cb467bea0239f7fa851bfcbef7901ee3c6b7869f705d868a2ee88b",
      "related": [
        "https://devcodex-labs.github.io/vextjs/examples/nacos-integration",
        "https://devcodex-labs.github.io/vextjs/examples/opentelemetry",
        "https://devcodex-labs.github.io/vextjs/guide/cluster",
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/zh/resources/support-and-services"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/guide/error-handling",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/guide/error-handling",
      "title": "错误处理",
      "summary": "VextJS 会统一捕获 route、middleware 和 service 中抛出的异常，并转换成 HTTP 响应。主动返回业务错误时优先使用 app.throw(...)；字段级校验失败使用 VextValidationError；未预期异常才直接 throw new Error(...)。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/guide/error-handling.md",
      "contentHash": "86aa5690b48aef1c2cbf97464310c4be0ea69daecff4f1d3233abfce82d10998",
      "related": [
        "https://devcodex-labs.github.io/vextjs/api/app",
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/middleware",
        "https://devcodex-labs.github.io/vextjs/guide/routing"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/guide/fetch",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/guide/fetch",
      "title": "内置 HTTP 客户端 (app.fetch)",
      "summary": "VextJS 内置了增强版 HTTP 客户端 app.fetch，基于 Node.js 20+ 原生 fetch 封装，提供 requestId 自动传播、超时控制、自动重试、结构化日志、create() 工厂 和 config 驱动代理 等能力。无需安装任何第三方 HTTP 库即可进行服务间调用。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/guide/fetch.md",
      "contentHash": "0aa04d5242ceb848dc881cd1395598230ed02c7787e1216d691ee7791abfaf38",
      "related": [
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/middleware",
        "https://devcodex-labs.github.io/vextjs/guide/plugins",
        "https://devcodex-labs.github.io/vextjs/guide/request-context",
        "https://devcodex-labs.github.io/vextjs/guide/testing"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/guide/frontend",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/guide/frontend",
      "title": "前端集成",
      "summary": "本页仅为历史链接保留。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/guide/frontend.md",
      "contentHash": "0ecbc07a955dacaae09d5c473dd3204f8176445bdaaaee8edda32ced4dd682f7",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/frontend/build-and-deploy",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/configuration",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/getting-started",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/overview",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/rendering-modes",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/routing-and-pages"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/guide/hooks",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/guide/hooks",
      "title": "运行时 Hooks",
      "summary": "app.hooks.on(name, handler) 用来观察或轻量 patch 框架运行时生命周期。它适合做请求审计、校验通过后的请求记录、响应 header patch、出站调用监控、service 调用追踪、OpenAPI 文档补丁等横切逻辑。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/guide/hooks.md",
      "contentHash": "6463be7405ff89138b25809a4b42ad5b25713ac8464cd25b8aacdc951ee6630d",
      "related": [
        "https://devcodex-labs.github.io/vextjs/api/app",
        "https://devcodex-labs.github.io/vextjs/guide/fetch",
        "https://devcodex-labs.github.io/vextjs/guide/openapi",
        "https://devcodex-labs.github.io/vextjs/guide/plugins"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/guide/hot-reload",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/guide/hot-reload",
      "title": "热重载",
      "summary": "VextJS 内置智能热重载机制，通过 vext dev 命令启动开发模式。框架会监听文件变更，根据变更类型自动选择最优的重载策略，从毫秒级的热替换到完整的进程重启，覆盖所有开发场景。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/guide/hot-reload.md",
      "contentHash": "207e97439606fa6f74eb0b3fcd9242f02f40bcf6df1dd823a5c375e97eb86ce7",
      "related": [
        "https://devcodex-labs.github.io/vextjs/guide/cli",
        "https://devcodex-labs.github.io/vextjs/guide/cluster",
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/testing"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/guide/i18n",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/guide/i18n",
      "title": "国际化 (i18n)",
      "summary": "VextJS 内置国际化支持，通过 src/locales/ 目录下的语言包文件，实现错误消息的多语言翻译。语言包由 i18n-loader 自动扫描加载，与 app.throw() 和 schema-dsl 校验系统无缝联动。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/guide/i18n.md",
      "contentHash": "211e5cf0267911fb4ca91997b48271a7fbeeefb8650f68680d88f54ef7e83cf3",
      "related": [
        "https://devcodex-labs.github.io/vextjs/guide/adapters",
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/plugins",
        "https://devcodex-labs.github.io/vextjs/guide/validation"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/guide/introduction",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/guide/introduction",
      "title": "介绍",
      "summary": "VextJS 是一个面向 API、服务端渲染 React 页面或两者并存场景的 Node.js 全栈框架。src/routes/ 始终拥有 URL，服务、校验、安全、缓存、OpenAPI 与类型客户端共用同一套请求契约。你可以从默认全栈脚手架起步，也可以保持 API-only，而不必引入第二套路由模型。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/guide/introduction.md",
      "contentHash": "1b81e7e06fbbf3bc1d552540ec188504122a3d1bfc4ad769479f867529616981",
      "related": [
        "https://devcodex-labs.github.io/vextjs/benchmark",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/boundaries-and-roadmap",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/getting-started",
        "https://devcodex-labs.github.io/vextjs/zh/guide/quick-start"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/guide/logger",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/guide/logger",
      "title": "日志 (Logger)",
      "summary": "VextJS 内置零 runtime dependency 的 Vext logger kernel，通过 app.logger 在框架的任意位置使用。默认提供结构化 JSON、pretty/JSON 双模式、pretty level 彩色输出、requestId 自动注入、child logger、运行时级别控制和极简日志脱敏等能力。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/guide/logger.md",
      "contentHash": "3f85c9e0d349044db9069233bb66fc3194fe175fa99284155d03d8a8936a7b25",
      "related": [
        "https://devcodex-labs.github.io/vextjs/examples/opentelemetry",
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/deployment",
        "https://devcodex-labs.github.io/vextjs/guide/middleware"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/guide/middleware",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/guide/middleware",
      "title": "中间件",
      "summary": "VextJS 的中间件采用 洋葱模型（Onion Model），支持请求前处理和响应后处理。框架提供 defineMiddleware 和 defineMiddlewareFactory 两种定义方式，通过约定式目录自动扫描加载。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/guide/middleware.md",
      "contentHash": "46323723c7b43a54a593e649b3d706f792ce9cd93c2348fb9f3664ab7df6353f",
      "related": [
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/plugins",
        "https://devcodex-labs.github.io/vextjs/guide/testing",
        "https://devcodex-labs.github.io/vextjs/guide/validation"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/guide/openapi",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/guide/openapi",
      "title": "OpenAPI 文档",
      "summary": "VextJS 内置 OpenAPI 文档自动生成功能。基于路由的 validate 和 docs 配置，框架自动生成 OpenAPI 3.0 规范 JSON，并通过 Vext Docs Renderer 提供默认 /docs 文档页。第三方文档工具请直接消费 /openapi.json。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/guide/openapi.md",
      "contentHash": "d088997f66d9d6d3693b1508b9a2934637b4f68188e3f9fdf1bc7105f0004e25",
      "related": [
        "https://devcodex-labs.github.io/vextjs/guide/adapters",
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/testing",
        "https://devcodex-labs.github.io/vextjs/guide/validation"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/guide/plugins",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/guide/plugins",
      "title": "插件",
      "summary": "VextJS 的插件系统是框架的唯一扩展入口。通过插件，你可以向 app 对象注入自定义能力、注册全局中间件、替换内置实现、管理资源生命周期。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/guide/plugins.md",
      "contentHash": "9f50fac9ae82210d0743af3a6d64f259cadf95a7c5b5950b2157ff0aac466161",
      "related": [
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/middleware",
        "https://devcodex-labs.github.io/vextjs/guide/preload",
        "https://devcodex-labs.github.io/vextjs/guide/testing",
        "https://devcodex-labs.github.io/vextjs/guide/validation"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/guide/preload",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/guide/preload",
      "title": "预加载（Preload）",
      "summary": "VextJS 提供了 预加载（Preload） 机制，允许以下两类来源在 Node.js 模块加载之前执行脚本：",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/guide/preload.md",
      "contentHash": "5c609c73e00b8ca1129b595c965c9d2d475c77dca043351b234f7679a077bc73",
      "related": [
        "https://devcodex-labs.github.io/vextjs/examples/opentelemetry",
        "https://devcodex-labs.github.io/vextjs/guide/cluster",
        "https://devcodex-labs.github.io/vextjs/guide/plugins"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/guide/project-structure",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/guide/project-structure",
      "title": "项目结构",
      "summary": "VextJS 遵循 约定优于配置 的设计理念，通过固定的目录结构实现自动扫描、加载和注册，无需手动配置路由映射或服务注入。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/guide/project-structure.md",
      "contentHash": "866a773652ff15b39eba28124edde8e829ed13c0696f1d737a494810d82db81e",
      "related": [
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/i18n",
        "https://devcodex-labs.github.io/vextjs/guide/middleware",
        "https://devcodex-labs.github.io/vextjs/guide/plugins",
        "https://devcodex-labs.github.io/vextjs/guide/routing",
        "https://devcodex-labs.github.io/vextjs/guide/services",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/overview"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/guide/quick-start",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/guide/quick-start",
      "title": "快速开始",
      "summary": "VextJS 提供 vext create 命令创建可运行项目。默认模板会直接证明一套路由模型：/ 通过 res.render() 渲染 React，/api/hello 返回 JSON，两者都调用生成的 example service；不需要页面运行时则选择 API-only。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/guide/quick-start.md",
      "contentHash": "725efdaace279f588a05805b649c86c12be681e70c8e3585be08522084fa346e",
      "related": [
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/middleware",
        "https://devcodex-labs.github.io/vextjs/guide/plugins",
        "https://devcodex-labs.github.io/vextjs/guide/project-structure",
        "https://devcodex-labs.github.io/vextjs/guide/routing",
        "https://devcodex-labs.github.io/vextjs/zh/frontend/overview",
        "https://devcodex-labs.github.io/vextjs/zh/guide/introduction"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/guide/request-context",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/guide/request-context",
      "title": "请求上下文 (Request Context)",
      "summary": "VextJS 基于 Node.js AsyncLocalStorage 实现了请求级上下文存储 requestContext，为每个请求维护独立的上下文数据。无需手动传参，在路由、中间件、服务、插件的任意深层代码中都能访问当前请求的上下文信息。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/guide/request-context.md",
      "contentHash": "aaf400873af4bed4b6c3b258b288cda54d0e351d3eec02af8f6ec294f00d9b2c",
      "related": [
        "https://devcodex-labs.github.io/vextjs/examples/opentelemetry",
        "https://devcodex-labs.github.io/vextjs/guide/fetch",
        "https://devcodex-labs.github.io/vextjs/guide/i18n",
        "https://devcodex-labs.github.io/vextjs/guide/logger",
        "https://devcodex-labs.github.io/vextjs/guide/middleware"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/guide/routing",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/guide/routing",
      "title": "路由",
      "summary": "VextJS 采用 约定式文件路由 + 三段式路由定义，将文件路径自动映射为 URL 前缀，在文件内部通过 defineRoutes() 声明具体路由。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/guide/routing.md",
      "contentHash": "79a230293c3cfbc615b878d1c014844d147b1a86622e3e47ae49e3634a58c92f",
      "related": [
        "https://devcodex-labs.github.io/vextjs/guide/middleware",
        "https://devcodex-labs.github.io/vextjs/guide/openapi",
        "https://devcodex-labs.github.io/vextjs/guide/services",
        "https://devcodex-labs.github.io/vextjs/guide/validation"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/guide/services",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/guide/services",
      "title": "服务层",
      "summary": "VextJS 采用 分层架构，将业务逻辑集中在服务层（Service Layer）。服务文件放在 src/services/ 目录下，由框架自动扫描、实例化并注入到 app.services，路由 handler 中通过 app.services.xxx 访问。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/guide/services.md",
      "contentHash": "a3b3e2e3a562f8be62ebe0b57a1baf20814409c0fac709b43fca0da3f196cab3",
      "related": [
        "https://devcodex-labs.github.io/vextjs/guide/middleware",
        "https://devcodex-labs.github.io/vextjs/guide/plugins",
        "https://devcodex-labs.github.io/vextjs/guide/testing"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/guide/testing",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/guide/testing",
      "title": "测试",
      "summary": "VextJS 内置了完整的测试工具，通过 vextjs/testing 子路径导入。无需启动真实 HTTP 服务器，即可对路由、中间件、服务进行端到端测试。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/guide/testing.md",
      "contentHash": "c4ad68f9d477173d97909fe449be827821185ce4b8b2303a12da5a30250be517",
      "related": [
        "https://devcodex-labs.github.io/vextjs/guide/cli",
        "https://devcodex-labs.github.io/vextjs/guide/middleware",
        "https://devcodex-labs.github.io/vextjs/guide/routing",
        "https://devcodex-labs.github.io/vextjs/guide/services"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/guide/validation",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/guide/validation",
      "title": "参数校验",
      "summary": "VextJS 集成 schema-dsl，提供声明式参数校验。在路由 options.validate 中用简洁的 DSL 字符串描述校验规则，框架自动完成校验、类型转换，并同步生成 OpenAPI 文档。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "runtime"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/guide/validation.md",
      "contentHash": "ac5045b0e0f49cefe3f941d68790dea963f27fcb4e1f924effd021c5e20b4d6e",
      "related": [
        "https://devcodex-labs.github.io/vextjs/guide/configuration",
        "https://devcodex-labs.github.io/vextjs/guide/openapi",
        "https://devcodex-labs.github.io/vextjs/guide/plugins",
        "https://devcodex-labs.github.io/vextjs/guide/routing"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/resources/documentation-data-and-ai",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/resources/documentation-data-and-ai",
      "title": "文档数据与 AI",
      "summary": "面向 VextJS 的 canonical、机器可读文档资产，以及隐私优先的度量边界。",
      "audience": [
        "developers"
      ],
      "appliesTo": [
        "documentation"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/resources/documentation-data-and-ai.md",
      "contentHash": "7295d303c3a4c4212d6b27a128f2f5d22dfde6801a591e1970929e509556fdac",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/frontend/boundaries-and-roadmap"
      ]
    },
    {
      "locale": "zh",
      "route": "/zh/resources/support-and-services",
      "canonicalUrl": "https://devcodex-labs.github.io/vextjs/zh/resources/support-and-services",
      "title": "支持与服务",
      "summary": "面向生产评审、迁移实施与团队赋能的 maintainer 参与式范围沟通入口。",
      "audience": [
        "developers",
        "engineering-leads"
      ],
      "appliesTo": [
        "documentation"
      ],
      "stability": "stable",
      "sourcePath": "website/docs/zh/resources/support-and-services.md",
      "contentHash": "773352c7dc8959c55640eac3d8672bea2ec92f44faece422ae438cf2c66ddb9d",
      "related": [
        "https://devcodex-labs.github.io/vextjs/zh/frontend/boundaries-and-roadmap",
        "https://devcodex-labs.github.io/vextjs/zh/guide/deployment"
      ]
    }
  ]
}
