Skip to main content

Deployment

Build and verify a Ginko site for static, Node SSR, serverless, or edge hosting.

Build the application and preview the same output you intend to deploy:

terminal
pnpm build
pnpm preview

Before choosing a target, direct-load the home page, a nested content page, a missing URL, and a search-result destination. A successful build does not replace these route checks.

Static generation

terminal
pnpm generate

Ginko contributes eligible page-collection routes to prerender discovery. Drafts and partials do not become generated routes. Sitemap policy is separate: sitemap: false removes a route from sitemap output without disabling prerender.

Serve the generated directory over HTTP. Opening its HTML with file:// bypasses the host's routing, content negotiation, and asset handling, so it is not a valid deployment test.

Node SSR

The active provider runs during requests. Request-time reads, provider cache hints, cache adapters, and same-URL Markdown negotiation can all use Nitro middleware. Keep provider clients and credentials in server code.

Serverless

Filesystem content reads the snapshot prepared during the build; it does not warm a runtime content database. Confirm that generated content and search assets are present in the function bundle. External providers must complete within the platform's request timeout.

Edge

Use an edge target only when the provider, Markdown pipeline, cache integration, and their dependencies support that runtime. Node-only SDKs and request-time filesystem access are not edge-compatible.

Search support

TargetMiniSearchPagefindProvider search
StaticYesYesOnly through a reachable runtime API
Node SSRYesDepends on generated site outputYes
ServerlessYesDepends on generated site outputYes
EdgeYes, when its assets are servedDepends on generated site outputOnly with an edge-compatible provider

Agent-readable output

Static hosts can serve generated /raw/**.md, /llms.txt, and /llms-full.txt routes wherever they serve the HTML output. Use content.agent.delivery: 'static' for this profile. A provider routing layer can negotiate the same public URL while it continues to serve prerendered HTML.

Use content.agent.delivery: 'runtime' when Nitro must own negotiation without provider routing. Nitro still crawls pages to retain their generated data dependencies, then removes prerendered HTML before building the request-time server. A pure static generation still produces complete HTML and agent files because it cannot run request-time middleware.

Deployment checks

  • Content links and direct-loaded nested routes resolve.
  • Drafts and partials stay hidden outside development.
  • Locale fallback and alternates work when i18n is enabled.
  • The deployed sitemap contains representative public routes.
  • MiniSearch or Pagefind assets are present and searchable.
  • Redirects work from both old and new paths when a release changes URLs.