Deployment

Imprensa prerenders your documentation to static files. The generated dist/ directory can be served by any static host.

Build locally

bun run build

The build runs Vite, prerenders every route, and writes output to dist/.

Preview the production build before publishing:

bun run preview

Required configuration

Set hostname for production sites so sitemap and metadata URLs are correct.

imprensa({ hostname: "https://docs.example.com" });

Hosting presets

Vercel

{
  "buildCommand": "bun run build",
  "outputDirectory": "dist"
}

Netlify

[build]
  command = "bun run build"
  publish = "dist"

GitHub Pages

name: Deploy
on:
  push:
    branches: [main]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: oven-sh/setup-bun@v1
      - run: bun install
      - run: bun run build
      - uses: peaceiris/actions-gh-pages@v4
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./dist

Generated files

A production build may include:

  • index.html files for each page
  • hashed JS and CSS assets
  • sitemap.xml when hostname is configured
  • llms.txt, llms-full.txt, and llms.json when llms is enabled

Deployment checklist

Before publishing:

  • run bun run build
  • keep dead-link detection enabled
  • set hostname
  • verify social and repository links
  • confirm draft pages are not intended for publication