Skip to content

Run the slides locally

Preview the interactive Slidev decks on your laptop with Node.js. This path does not need a Kubernetes cluster — it only serves the presentation.

The repository is locked to pnpm (packageManager in package.json + pnpm-lock.yaml). Use the commands below as written. Plain npm install is not supported (there is no package-lock.json).

Prerequisites

  • Node.js 22 (LTS) — nodejs.org or a version manager
  • Corepack (ships with Node 16.13+) to activate the pinned pnpm
  • Optional: a modern browser (Chrome, Firefox, Safari, Edge)

Check versions:

node -v    # expect v22.x
corepack -v

Install dependencies

From the repository root:

corepack enable
corepack prepare pnpm@11.9.0 --activate
pnpm install --frozen-lockfile

Start the development server

Pick the deck you want:

# Interactive menu (day / section / range) when gum is available
pnpm dev

# Or open a specific deck directly
pnpm dev:day1        # Day 1 live entry
pnpm dev:day2        # Day 2 live entry
pnpm dev:day3        # Day 3 live entry
pnpm dev:3day        # Canonical three-day cut (compatibility entry)
pnpm dev:superset    # Full content superset
pnpm dev:optional    # Optional / Appendix
pnpm dev:templates   # Theme / template gallery

Slidev prints a local URL — typically:

http://localhost:3030/

Open that URL in your browser. Use arrow keys or the on-screen controls to move between slides. Presenter mode is available from Slidev’s UI (often http://localhost:3030/presenter/).

Stop the server with Ctrl+C.

Production build and local preview

Build static SPAs (useful before changing GitHub Pages wiring):

# Live day entries (default `pnpm build`)
pnpm build

# Compatibility / gallery entries used on Pages under /deck/
pnpm exec slidev build slides.md --base /deck/ --out dist-deck --router-mode hash
pnpm exec slidev build slides-3day.md --base /deck/3day/ --out dist-deck-3day --router-mode hash

Serve a built folder with any static file server, for example:

pnpm dlx serve dist-deck

For the exact GitHub Pages layout (MkDocs landing + decks under /deck/), use the Pages workflow locally:

pnpm pages:build
pnpm pages:preview   # serves ./site at http://localhost:4173

pages:build expects the Python MkDocs stack from requirements-docs.txt:

python3 -m pip install -r docs/requirements-docs.txt
pnpm pages:build