Build, deploy, and export
Build and deploy the reviewed static presentation, or export exact slide and Step states to PDF from the same project.
Deliver the project you reviewed
Run the source and rendered gates before creating a production artifact. The Rendered review guide owns the current diagnostic codes, isolated browser contract, evidence manifest, and boundaries of what Drever can prove.
Delivery reuses that reviewed project. It does not add a second layout checker or silently repair the deck while building. If authoring changes invalidate the evidence, review the affected states again before publishing.
Build a static website
npm run buildThe default output is dist/. The build emits a standalone application plus static entries for
every valid audience and speaker position and /document. A small route bootstrap resolves the
mount point before assets activate, so the artifact works at a domain root or below a subdirectory.
Host the complete dist/ directory on any static platform.
Deploy the static site
Cloudflare Pages, Vercel, and GitHub Pages are illustrative hosting choices, not Drever partners or requirements. The same static artifact works on other hosts that can publish a directory.
| Setting | Value |
|---|---|
| Build command | npm run build |
| Output directory | dist |
| SPA fallback | None; do not add one |
| Node.js | Current Node.js, >=24.18.0 |
Do not rewrite every request to index.html. Drever emits static entries for its public routes and
resolves subdirectory mounts from the requested URL.
Cloudflare Pages
Follow the official Pages Git integration
guide. Connect the
repository, use main as the production branch, apply the shared build settings above, and set
NODE_VERSION to 24.18.0 or newer. Keep preview deployments enabled for non-production branches.
Deploy this repository with Cloudflare Pages Git integration. Use main for production, npm run
build for the build command, dist for the output directory, and NODE_VERSION=24.18.0 or newer.
Keep branch previews enabled. Do not add an SPA fallback.Vercel
Import the repository using Vercel's build
settings: choose Other for Framework Preset, set the build
command to npm run build, the output directory to dist, and the Node.js version to 24.x. Confirm
that the selected 24.x release satisfies the minimum in the shared table.
Import this repository into Vercel with Framework Preset Other. Use npm run build, publish dist,
and select a Node.js 24.x release that is at least 24.18. Do not add rewrites or an SPA fallback.GitHub Pages
In the repository's Pages settings, select GitHub Actions as the publishing source, then add
.github/workflows/pages.yml. This follows GitHub's official custom workflow
flow:
name: Deploy Pages
on:
push:
branches: [main]
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v7
with:
node-version: 24.18.0
- run: npm ci
- run: npm run build
- uses: actions/configure-pages@v5
- uses: actions/upload-pages-artifact@v4
with:
path: dist
deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- id: deployment
uses: actions/deploy-pages@v4
Export PDF
npm run export
npm run export -- --output release/keynote.pdf
npm run export -- --slides 2-5,8
npm run export -- --stepsIf doctor reports that Chromium is missing, install the exact revision used by the local Drever
CLI, then retry:
npm exec -- drever browser installLinux environments that also need Playwright's operating-system packages can add --with-deps.
By default, export creates one page per slide at its final authored Step. --steps emits Step 0 and
every exact compiled stop. --slides selects one-based slide numbers and inclusive ranges, and
composes with --steps.
The export surface disables motion, awaits fonts and authored images, runs plugin export setup, rejects duplicate DOM IDs, and writes the file only after capture succeeds. Page order, state, and dimensions are deterministic; byte-for-byte PDF equality across Chromium and font environments is not part of the contract.
Official designs prefer PDF-embeddable local CJK faces during export without downloading a font. Custom designs should self-host an embeddable webfont when the export host does not provide the required Chinese, Japanese, or Korean glyphs. A system fallback that paints in Chromium can still be unavailable to Chromium's PDF writer.
Reuse review evidence in CI
The human commands expose stable JSON forms for agents and automation:
npm exec -- drever doctor --json
npm exec -- drever context --json
npm run check -- --json
npm run check -- --rendered --json
npm run build -- --json
npm run export -- --jsonRun the fast source check on every change. Use the exhaustive rendered gate at a production boundary or after layout and Step changes, then build only after that evidence is current. See Rendered review for the complete ownership model. Keep browser tests focused on stable product behavior instead of making mutable presentation styling a permanent E2E contract.
Troubleshooting and support
Start with the project-local diagnostic so the report reflects the version you installed:
npm exec -- drever doctor --jsonIt reports the resolved project, Node.js version, browser availability, and delivery prerequisites. If the problem remains, include that output and a minimal reproduction in a GitHub issue. Drever is under active development; keep the generated project files and its installed version together when reporting a problem.
Find exact syntax, options, defaults, and the guide that owns each workflow.