Slidev workspace for talk slides. This repo contains the raw content for slide decks, shared LanceDB styling/components, and static assets needed to reproduce the talk slides as finalized artifacts (PDF, PPTX, etc.) on another machine.
Slidev is a presentation framework where slides are written as Markdown and rendered as a web app. It supports Vue components, custom layouts, themes, code highlighting, presenter mode, and exports, so a deck can be treated like normal source code instead of a manually edited binary file.
That makes it useful for technical talks and for AI-assisted authoring. Tools like Claude Code and Codex can edit the Markdown, components, styles, and asset references directly, which makes it practical to create polished decks from prompts without manually positioning every image and text box in a slide editor. The result is easier to review in Git, easier to reuse across talks, and easier to reproduce on another machine.
- Node.js 20 or newer
- npm
Clone the repo and install dependencies:
git clone git@github.com:prrao87/slidev-talks.git
cd slidev-talks
npm installRun a deck locally with the repo-local Slidev dependency:
npm run dev -- talks/sample-template/slides.mdOpen the local URL that Slidev prints, usually http://localhost:3030.
To run the current TMLS deck with the repo-local dependency:
npm run dev -- talks/tmls-2026/slides.mdYou can also install the Slidev CLI and run decks directly:
npm install -g @slidev/cli
slidev talks/sample-template/slides.md --openThis is useful if you already keep a local Slidev CLI up to date and want to use it across multiple repos. The CLI can also build hosted slides, format slide Markdown, export files, export speaker notes, and run theme-related commands.
Useful references:
- Slidev docs: https://sli.dev/
- Slidev CLI reference: https://sli.dev/builtin/cli
- Slidev exporting guide: https://sli.dev/guide/exporting
Copy the sample deck into a new folder:
cp -R talks/sample-template talks/my-new-talk
npm run dev -- talks/my-new-talk/slides.mdThen edit the new slides.md.
Use these asset locations:
- Put deck-specific images that are referenced with relative paths in
assets/. - Put deck-specific public assets that should be served from
/inpublic/. - Keep shared LanceDB theme assets in the addon package.
Rendered decks are local artifacts and should not be committed.
For an interactive export, start the deck and open the export UI:
npm run dev -- talks/my-new-talk/slides.mdThen use the Export option in the browser, or go directly to http://localhost:3030/export.
For command-line PDF export, install Slidev's browser renderer dependency if needed:
npm install -D playwright-chromiumThen export with the repo-local command:
npm run export -- talks/my-new-talk/slides.mdOr export with a globally installed Slidev CLI:
slidev export talks/my-new-talk/slides.mdCommon export options:
slidev export talks/my-new-talk/slides.md --output my-new-talk.pdf
slidev export talks/my-new-talk/slides.md --with-clicks
slidev export talks/my-new-talk/slides.md --range 1,4-8,12GitHub Pages deployment is opt-in per deck. Add a presentation to
pages-decks.json only when it should become a public site:
{
"entry": "talks/my-new-talk/slides.md",
"slug": "my-new-talk",
"title": "My New Talk",
"includeNotes": false
}Each configured deck is built under its own route:
https://<username>.github.io/<repository>/<slug>/
Decks that are not listed remain in the repository but are not deployed. Set
includeNotes to true only if the public build should contain speaker notes.
Test all configured sites locally with:
npm run build:pages -- --repo slidev-talksThe generated multi-site artifact is written to .pages-site/. After changes
land on main, the GitHub Pages workflow rebuilds every configured deck and
publishes the artifact. The workflow can also be run manually from the Actions
tab.
Because each deck is hosted below a unique subpath, avoid hard-coded root asset
URLs such as /photo.jpg. Reference images directly from Markdown or import
them from a Vue component so Slidev and Vite can apply the correct base path.
Commit source material needed to rebuild a talk: Markdown slides, theme/addon code, and static source assets. Do not commit dependencies, generated Slidev state, rendered decks, exports, recordings, scratch notes, or local environment files.