---
title: open-slide build
description: Produce a static, deployable build.
---

```npm
open-slide build
# or
npm run build
```

Builds every deck under `slides/` into a self-contained static site at
`dist/`. The output has no server requirement — drop it on any static host.

## Flags

| Flag                | Default | Description                                  |
| ------------------- | ------- | -------------------------------------------- |
| `--out-dir <dir>`   | `dist`  | Write the static build to a custom folder.   |

## Output

```text
dist/
├── index.html
├── assets/
│   └── ...hashed files...
└── ...
```

## Trimming the public surface

If the build is for a public share rather than internal review, you can hide
the slide browser and on-canvas UI in `open-slide.config.ts`:

```ts
const config: OpenSlideConfig = {
  build: {
    showSlideBrowser: false,
    showSlideUi: false,
    allowHtmlDownload: false,
  },
};
```

See [Export](/docs/core-feature/export) for the full set of build knobs.

## Deploying under a subpath

If the build won't sit at the domain root (GitHub Pages project sites,
a reverse-proxy folder, an intranet path), set `base` in
`open-slide.config.ts` so asset URLs and client-side navigation resolve
against the deployed path:

```ts
const config: OpenSlideConfig = {
  base: '/my-slides/',
};
```

See [Config](/docs/reference/config) for details.
