---
title: Deployment
description: Build, preview, and deploy the static output produced by Imprensa.
order: 5
tags: [deploy, static]
---

# Deployment

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

## Build locally

```bash
bun run build
```

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

Preview the production build before publishing:

```bash
bun run preview
```

## Required configuration

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

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

## Hosting presets

### Vercel

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

### Netlify

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

### GitHub Pages

```yaml
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
