[{"data":1,"prerenderedAt":593},["ShallowReactive",2],{"docs-navigation:en":3,"content-page:blog:m677kuVAUv637x35Zqqlf2490NAbA8khhtYFpnQkAs8":242,"content-page-surround:blog:mw6DETqmc9F41MbBXA03spxxxE9BjxlcUqGfIaZvJ0s":588},[4,23,44,78,119,152,172,198,222],{"title":5,"id":6,"canonicalKey":7,"locale":8,"draft":9,"navigation":10,"icon":12,"sidebar":13,"path":14,"children":15},"Documentation","content:en:1.docs:1.getting-started:.navigation.yml","1","en",false,{"icon":11},"lucide:rocket","lucide:book-open","section","\u002Fdocs\u002Fgetting-started",[16],{"title":17,"id":18,"canonicalKey":19,"locale":8,"draft":9,"navigation":20,"icon":21,"path":22},"Installation","content:en:1.docs:1.getting-started:2.installation.md","1\u002F2",{"title":17,"icon":21},"lucide:download","\u002Fdocs\u002Fgetting-started\u002Finstallation",{"title":24,"page":9,"canonicalKey":25,"locale":8,"id":26,"draft":9,"icon":27,"sidebar":28,"children":29},"Concepts","2","content:en:1.docs:2.concepts:.navigation.yml","lucide:boxes","group",[30,37],{"title":31,"id":32,"canonicalKey":33,"locale":8,"draft":9,"navigation":34,"icon":35,"path":36},"How it works","content:en:1.docs:2.concepts:1.how-ginko-docs-works.md","2\u002F1",{"title":31,"icon":35},"lucide:workflow","\u002Fdocs\u002Fconcepts\u002Fhow-ginko-docs-works",{"title":38,"id":39,"canonicalKey":40,"locale":8,"draft":9,"navigation":41,"icon":42,"path":43},"Content and routes","content:en:1.docs:2.concepts:2.content-and-routes.md","2\u002F2",{"icon":42},"lucide:route","\u002Fdocs\u002Fconcepts\u002Fcontent-and-routes",{"title":45,"page":9,"canonicalKey":46,"locale":8,"id":47,"draft":9,"icon":48,"sidebar":28,"children":49},"Authoring","3","content:en:1.docs:3.authoring:.navigation.yml","lucide:pen-line",[50,57,64,71],{"title":51,"id":52,"canonicalKey":53,"locale":8,"draft":9,"navigation":54,"icon":55,"path":56},"Write content","content:en:1.docs:3.authoring:1.write-content.md","3\u002F1",{"title":51,"icon":55},"lucide:file-pen-line","\u002Fdocs\u002Fauthoring\u002Fwrite-content",{"title":58,"id":59,"canonicalKey":60,"locale":8,"draft":9,"navigation":61,"icon":62,"path":63},"Navigation","content:en:1.docs:3.authoring:2.navigation.md","3\u002F2",{"title":58,"icon":62},"lucide:panel-left","\u002Fdocs\u002Fauthoring\u002Fnavigation",{"title":65,"id":66,"canonicalKey":67,"locale":8,"draft":9,"navigation":68,"icon":69,"path":70},"Links","content:en:1.docs:3.authoring:3.links.md","3\u002F3",{"title":65,"icon":69},"lucide:link","\u002Fdocs\u002Fauthoring\u002Flinks",{"title":72,"id":73,"canonicalKey":74,"locale":8,"draft":9,"navigation":75,"icon":76,"path":77},"Use components","content:en:1.docs:3.authoring:4.use-components.md","3\u002F4",{"title":72,"icon":76},"lucide:blocks","\u002Fdocs\u002Fauthoring\u002Fuse-components",{"title":79,"page":9,"canonicalKey":80,"locale":8,"id":81,"draft":9,"icon":82,"sidebar":28,"children":83},"Features","4","content:en:1.docs:4.features:.navigation.yml","lucide:sparkles",[84,91,98,105,112],{"title":85,"id":86,"canonicalKey":87,"locale":8,"draft":9,"navigation":88,"icon":89,"path":90},"Localization","content:en:1.docs:4.features:1.localization.md","4\u002F1",{"title":85},"lucide:languages","\u002Fdocs\u002Ffeatures\u002Flocalization",{"title":92,"id":93,"canonicalKey":94,"locale":8,"draft":9,"navigation":95,"icon":96,"path":97},"Search","content:en:1.docs:4.features:2.search.md","4\u002F2",{"title":92},"lucide:search","\u002Fdocs\u002Ffeatures\u002Fsearch",{"title":99,"id":100,"canonicalKey":101,"locale":8,"draft":9,"navigation":102,"icon":103,"path":104},"Blog","content:en:1.docs:4.features:3.blog.md","4\u002F3",{"title":99},"lucide:newspaper","\u002Fdocs\u002Ffeatures\u002Fblog",{"title":106,"id":107,"canonicalKey":108,"locale":8,"draft":9,"navigation":109,"icon":110,"path":111},"SEO and social cards","content:en:1.docs:4.features:4.seo-and-social-cards.md","4\u002F4",{"title":106},"lucide:globe-2","\u002Fdocs\u002Ffeatures\u002Fseo-and-social-cards",{"title":113,"id":114,"canonicalKey":115,"locale":8,"draft":9,"navigation":116,"icon":117,"path":118},"Agent-readable output","content:en:1.docs:4.features:5.agent-readable-output.md","4\u002F5",{"title":113},"lucide:bot","\u002Fdocs\u002Ffeatures\u002Fagent-readable-output",{"title":120,"page":9,"canonicalKey":121,"locale":8,"id":122,"draft":9,"icon":123,"sidebar":28,"children":124},"Customization","5","content:en:1.docs:5.customization:.navigation.yml","lucide:paintbrush",[125,132,139,146],{"title":126,"id":127,"canonicalKey":128,"locale":8,"draft":9,"navigation":129,"icon":130,"path":131},"Site configuration","content:en:1.docs:5.customization:1.site-configuration.md","5\u002F1",{"title":126},"lucide:settings-2","\u002Fdocs\u002Fcustomization\u002Fsite-configuration",{"title":133,"id":134,"canonicalKey":135,"locale":8,"draft":9,"navigation":136,"icon":137,"path":138},"Landing page","content:en:1.docs:5.customization:2.landing-page.md","5\u002F2",{"title":133},"lucide:layout-template","\u002Fdocs\u002Fcustomization\u002Flanding-page",{"title":140,"id":141,"canonicalKey":142,"locale":8,"draft":9,"navigation":143,"icon":144,"path":145},"Theming and overrides","content:en:1.docs:5.customization:3.theming-and-overrides.md","5\u002F3",{"title":140},"lucide:palette","\u002Fdocs\u002Fcustomization\u002Ftheming-and-overrides",{"title":147,"id":148,"canonicalKey":149,"locale":8,"draft":9,"navigation":150,"icon":76,"path":151},"Custom components","content:en:1.docs:5.customization:4.custom-components.md","5\u002F4",{"title":147},"\u002Fdocs\u002Fcustomization\u002Fcustom-components",{"title":153,"page":9,"canonicalKey":154,"locale":8,"id":155,"draft":9,"icon":156,"sidebar":28,"children":157},"Operations","6","content:en:1.docs:6.operations:.navigation.yml","lucide:cloud-cog",[158,165],{"title":159,"id":160,"canonicalKey":161,"locale":8,"draft":9,"navigation":162,"icon":163,"path":164},"Deployment","content:en:1.docs:6.operations:1.deployment.md","6\u002F1",{"title":159,"icon":163},"lucide:cloud-upload","\u002Fdocs\u002Foperations\u002Fdeployment",{"title":166,"id":167,"canonicalKey":168,"locale":8,"draft":9,"navigation":169,"icon":170,"path":171},"Troubleshooting","content:en:1.docs:6.operations:2.troubleshooting.md","6\u002F2",{"title":166,"icon":170},"lucide:wrench","\u002Fdocs\u002Foperations\u002Ftroubleshooting",{"title":173,"page":9,"canonicalKey":174,"locale":8,"id":175,"draft":9,"icon":176,"sidebar":13,"children":177},"Reference","7","content:en:1.docs:7.reference:.navigation.yml","lucide:braces",[178,185,191],{"title":179,"id":180,"canonicalKey":181,"locale":8,"draft":9,"navigation":182,"icon":183,"path":184},"Content configuration","content:en:1.docs:7.reference:1.content-config.md","7\u002F1",{"title":179,"icon":183},"lucide:database","\u002Fdocs\u002Freference\u002Fcontent-config",{"title":186,"id":187,"canonicalKey":188,"locale":8,"draft":9,"navigation":189,"icon":130,"path":190},"App configuration","content:en:1.docs:7.reference:2.app-config.md","7\u002F2",{"title":186,"icon":130},"\u002Fdocs\u002Freference\u002Fapp-config",{"title":192,"id":193,"canonicalKey":194,"locale":8,"draft":9,"navigation":195,"icon":196,"path":197},"Frontmatter and schemas","content:en:1.docs:7.reference:3.frontmatter.md","7\u002F3",{"title":192,"icon":196},"lucide:file-json-2","\u002Fdocs\u002Freference\u002Ffrontmatter",{"title":199,"page":9,"canonicalKey":200,"locale":8,"id":201,"draft":9,"icon":76,"sidebar":28,"children":202},"Components","8","content:en:1.docs:8.components:.navigation.yml",[203,209,216],{"title":204,"id":205,"canonicalKey":206,"locale":8,"draft":9,"navigation":207,"icon":76,"path":208},"MDC components","content:en:1.docs:8.components:1.mdc-components.md","8\u002F1",{"title":204,"icon":76},"\u002Fdocs\u002Fcomponents\u002Fmdc-components",{"title":210,"id":211,"canonicalKey":212,"locale":8,"draft":9,"navigation":213,"icon":214,"path":215},"API reference panels","content:en:1.docs:8.components:2.api-reference.md","8\u002F2",{"title":210,"icon":214},"lucide:table-properties","\u002Fdocs\u002Fcomponents\u002Fapi-reference",{"title":217,"id":218,"canonicalKey":219,"locale":8,"draft":9,"navigation":220,"icon":76,"path":221},"Component showcase","content:en:1.docs:8.components:3.component-showcase.md","8\u002F3",{"title":217,"icon":76},"\u002Fdocs\u002Fcomponents\u002Fcomponent-showcase",{"title":223,"page":9,"canonicalKey":224,"locale":8,"id":225,"draft":9,"icon":226,"sidebar":28,"children":227},"Resources","9","content:en:1.docs:9.resources:.navigation.yml","lucide:library",[228,235],{"title":229,"id":230,"canonicalKey":231,"locale":8,"draft":9,"navigation":232,"icon":233,"path":234},"Public exports","content:en:1.docs:9.resources:1.public-exports.md","9\u002F1",{"title":229,"icon":233},"lucide:package-open","\u002Fdocs\u002Fresources\u002Fpublic-exports",{"title":236,"id":237,"canonicalKey":238,"locale":8,"draft":9,"navigation":239,"icon":240,"path":241},"Requirements and upgrades","content:en:1.docs:9.resources:2.requirements-and-upgrades.md","9\u002F2",{"title":236,"icon":240},"lucide:refresh-cw","\u002Fdocs\u002Fresources\u002Frequirements-and-upgrades",{"title":243,"description":244,"badge":159,"date":245,"readingTime":246,"author":247,"body":273,"type":569,"id":570,"canonicalKey":7,"draft":9,"partial":9,"locale":8,"collection":571,"navigationFile":9,"file":572,"sitemap":576,"resolvedRefs":578,"route":579,"resolution":585},"Choose a static or server deployment for your docs","Decide between generated files and a Nitro server from the behavior your documentation needs.","2026-05-14","5 min read",{"slug":248,"name":249,"role":250,"bio":251,"avatar":252,"id":253,"type":254,"title":249,"canonicalKey":255,"draft":9,"partial":9,"locale":8,"collection":256,"navigationFile":9,"file":257,"body":261,"route":262,"resolution":270},"ginko-docs-team","Ginko Docs Team","Documentation engineering","Maintainers of the Ginko Docs Nuxt layer and its bilingual reference site.","\u002Ffavicon.svg","content:en:authors:ginko-docs-team.json","json","authors\u002Fginko-docs-team","authors",{"source":258,"path":259,"stem":260,"dir":256,"extension":254},"content","en\u002Fauthors\u002Fginko-docs-team.json","en\u002Fauthors\u002Fginko-docs-team",null,{"resolvedPath":263,"alternates":264},"\u002Fauthors\u002Fginko-docs-team",[265,267],{"locale":8,"path":263,"source":266},"variant",{"locale":268,"path":269,"source":266},"de","\u002Fde\u002Fauthors\u002Fginko-docs-team",{"requested":271,"resolved":272,"usedFallback":9},{"locale":8},{"locale":8},{"type":274,"children":275,"toc":561},"root",[276,284,289,296,301,354,359,364,370,389,394,399,405,536,547],{"type":277,"tag":278,"props":279,"children":280},"element","p",{},[281],{"type":282,"value":283},"text","A documentation site is a strong candidate for static hosting, but “the pages are mostly Markdown” is not enough to make the decision. Choose the deployment model from the request-time behavior you need after the build has finished.",{"type":277,"tag":278,"props":285,"children":286},{},[287],{"type":282,"value":288},"Ginko Docs supports both models. The important distinction is not visual: generated and server-rendered sites use the same routes, navigation, search interface, and content components. The distinction is which responses require a running Nitro server.",{"type":277,"tag":290,"props":291,"children":293},"h2",{"id":292},"what-a-static-build-keeps",[294],{"type":282,"value":295},"What a static build keeps",{"type":277,"tag":278,"props":297,"children":298},{},[299],{"type":282,"value":300},"A generated site includes the parts readers use most often:",{"type":277,"tag":302,"props":303,"children":304},"ul",{},[305,311,316,321,332,349],{"type":277,"tag":306,"props":307,"children":308},"li",{},[309],{"type":282,"value":310},"prerendered docs, blog, and landing pages;",{"type":277,"tag":306,"props":312,"children":313},{},[314],{"type":282,"value":315},"Nuxt payloads for client-side navigation;",{"type":277,"tag":306,"props":317,"children":318},{},[319],{"type":282,"value":320},"the MiniSearch data used by the command center;",{"type":277,"tag":306,"props":322,"children":323},{},[324,330],{"type":277,"tag":325,"props":326,"children":327},"code",{},[328],{"type":282,"value":329},"\u002Fraw\u002F**.md",{"type":282,"value":331}," copies of public pages;",{"type":277,"tag":306,"props":333,"children":334},{},[335,340,342,347],{"type":277,"tag":325,"props":336,"children":337},{},[338],{"type":282,"value":339},"llms.txt",{"type":282,"value":341}," and ",{"type":277,"tag":325,"props":343,"children":344},{},[345],{"type":282,"value":346},"llms-full.txt",{"type":282,"value":348}," catalogs;",{"type":277,"tag":306,"props":350,"children":351},{},[352],{"type":282,"value":353},"sitemap, robots, and generated PNG social cards.",{"type":277,"tag":278,"props":355,"children":356},{},[357],{"type":282,"value":358},"Browser features still run after deployment. Search, image zoom, the language switcher, banner dismissal, Plausible analytics, and the feedback interface do not require a Node server.",{"type":277,"tag":278,"props":360,"children":361},{},[362],{"type":282,"value":363},"This makes static output a good default for public documentation whose content changes through a build and deploy.",{"type":277,"tag":290,"props":365,"children":367},{"id":366},"what-a-nitro-server-adds",[368],{"type":282,"value":369},"What a Nitro server adds",{"type":277,"tag":278,"props":371,"children":372},{},[373,375,380,382,387],{"type":282,"value":374},"Some capabilities depend on the incoming HTTP request. A Nitro deployment can inspect an ",{"type":277,"tag":325,"props":376,"children":377},{},[378],{"type":282,"value":379},"Accept: text\u002Fmarkdown",{"type":282,"value":381}," header and return Markdown from the normal page URL. It can also emit response link headers and serve the read-only MCP endpoint at ",{"type":277,"tag":325,"props":383,"children":384},{},[385],{"type":282,"value":386},"\u002Fmcp",{"type":282,"value":388},".",{"type":277,"tag":278,"props":390,"children":391},{},[392],{"type":282,"value":393},"A file host cannot reproduce those behaviors from the generated directory alone. It can serve the explicit raw files and LLM catalogs, but it cannot negotiate a different representation for one URL or execute MCP tools.",{"type":277,"tag":278,"props":395,"children":396},{},[397],{"type":282,"value":398},"Use a server deployment when those request-time interfaces are part of the product rather than optional conveniences.",{"type":277,"tag":290,"props":400,"children":402},{"id":401},"make-the-choice-explicit",[403],{"type":282,"value":404},"Make the choice explicit",{"type":277,"tag":406,"props":407,"children":408},"table",{},[409,433],{"type":277,"tag":410,"props":411,"children":412},"thead",{},[413],{"type":277,"tag":414,"props":415,"children":416},"tr",{},[417,423,428],{"type":277,"tag":418,"props":419,"children":420},"th",{},[421],{"type":282,"value":422},"Requirement",{"type":277,"tag":418,"props":424,"children":425},{},[426],{"type":282,"value":427},"Static output",{"type":277,"tag":418,"props":429,"children":430},{},[431],{"type":282,"value":432},"Nitro server",{"type":277,"tag":434,"props":435,"children":436},"tbody",{},[437,455,471,487,504,520],{"type":277,"tag":414,"props":438,"children":439},{},[440,446,451],{"type":277,"tag":441,"props":442,"children":443},"td",{},[444],{"type":282,"value":445},"Rendered docs and blog pages",{"type":277,"tag":441,"props":447,"children":448},{},[449],{"type":282,"value":450},"Yes",{"type":277,"tag":441,"props":452,"children":453},{},[454],{"type":282,"value":450},{"type":277,"tag":414,"props":456,"children":457},{},[458,463,467],{"type":277,"tag":441,"props":459,"children":460},{},[461],{"type":282,"value":462},"Client-side search",{"type":277,"tag":441,"props":464,"children":465},{},[466],{"type":282,"value":450},{"type":277,"tag":441,"props":468,"children":469},{},[470],{"type":282,"value":450},{"type":277,"tag":414,"props":472,"children":473},{},[474,479,483],{"type":277,"tag":441,"props":475,"children":476},{},[477],{"type":282,"value":478},"Raw Markdown and LLM catalogs",{"type":277,"tag":441,"props":480,"children":481},{},[482],{"type":282,"value":450},{"type":277,"tag":441,"props":484,"children":485},{},[486],{"type":282,"value":450},{"type":277,"tag":414,"props":488,"children":489},{},[490,495,500],{"type":277,"tag":441,"props":491,"children":492},{},[493],{"type":282,"value":494},"Markdown content negotiation",{"type":277,"tag":441,"props":496,"children":497},{},[498],{"type":282,"value":499},"No",{"type":277,"tag":441,"props":501,"children":502},{},[503],{"type":282,"value":450},{"type":277,"tag":414,"props":505,"children":506},{},[507,512,516],{"type":277,"tag":441,"props":508,"children":509},{},[510],{"type":282,"value":511},"Runtime link headers",{"type":277,"tag":441,"props":513,"children":514},{},[515],{"type":282,"value":499},{"type":277,"tag":441,"props":517,"children":518},{},[519],{"type":282,"value":450},{"type":277,"tag":414,"props":521,"children":522},{},[523,528,532],{"type":277,"tag":441,"props":524,"children":525},{},[526],{"type":282,"value":527},"MCP endpoint",{"type":277,"tag":441,"props":529,"children":530},{},[531],{"type":282,"value":499},{"type":277,"tag":441,"props":533,"children":534},{},[535],{"type":282,"value":450},{"type":277,"tag":278,"props":537,"children":538},{},[539,541,545],{"type":282,"value":540},"Do not advertise ",{"type":277,"tag":325,"props":542,"children":543},{},[544],{"type":282,"value":386},{"type":282,"value":546}," on a site that only deploys static files. The page action settings can hide that menu entry, but they do not change which routes the build creates.",{"type":277,"tag":278,"props":548,"children":549},{},[550,552,559],{"type":282,"value":551},"The ",{"type":277,"tag":553,"props":554,"children":556},"a",{"href":555},"$docs\u002Foperations\u002Fdeployment",[557],{"type":282,"value":558},"deployment guide",{"type":282,"value":560}," lists the commands and output checks for both targets. Test the deployed artifact rather than assuming that a successful development server proves the chosen hosting behavior.",{"title":562,"searchDepth":563,"depth":563,"links":564},"",4,[565,567,568],{"id":292,"depth":566,"text":295},2,{"id":366,"depth":566,"text":369},{"id":401,"depth":566,"text":404},"markdown","content:en:2.blog:1.static-docs-pipeline.md","blog",{"source":258,"path":573,"stem":574,"dir":571,"extension":575},"en\u002F2.blog\u002F1.static-docs-pipeline.md","en\u002F2.blog\u002F1.static-docs-pipeline","md",{"lastmod":577},"2026-05-14T00:00:00.000Z",{"$docs\u002Foperations\u002Fdeployment":164},{"requestedPath":580,"resolvedPath":580,"alternates":581},"\u002Fblog\u002Fstatic-docs-pipeline",[582,583],{"locale":8,"path":580,"source":266},{"locale":268,"path":584,"source":266},"\u002Fde\u002Fblog\u002Fstatische-docs-pipeline",{"requested":586,"resolved":587,"usedFallback":9},{"locale":8},{"locale":8},{"previous":261,"next":589},{"title":590,"id":591,"canonicalKey":25,"locale":8,"draft":9,"path":592},"Design documentation navigation that scales","content:en:2.blog:2.navigation-quality.md","\u002Fblog\u002Fnavigation-quality",1786530422554]