Slide Spec turns structured YAML into a static slide deck you can host anywhere. Keep your presentations in the same repo as your code, reviewable in PRs and diffable like everything else.
- Write slides as structured YAML you can diff, lint, and generate
- Build a static site you can deploy to GitHub Pages, S3, or any CDN
- No proprietary file formats or authoring tools
- Validation baked into CI for a GitOps workflow
Prereqs: Node 24+ and npm.
npx @slide-spec/cli init
npx @slide-spec/cli serveOpen the URL printed in your terminal. You should have a working deck in under two minutes.
From there, edit the YAML under content/, then validate and build:
npx @slide-spec/cli validate
npx @slide-spec/cli build # outputs to ./distPass --deployment-url to build for sitemap.xml generation.
Every command accepts an optional directory as its first argument (e.g. npx @slide-spec/cli serve ./my-deck). When omitted, the current working directory is used.
Monorepo with independent packages. Each has its own README with setup, development, and testing details.
| Directory | Purpose | |
|---|---|---|
app/ |
Vue 3 + Vite presentation renderer | README |
cli/ |
Scaffold, validate, build, and serve | README |
docs/ |
VitePress documentation site | README |
shared/ |
Shared TypeScript types and validation | README |
content/ |
YAML for this repo's own slide decks |
Slide Spec follows semver. The CLI is published to npm as @slide-spec/cli.
⚠️ v0 / alpha - the project is pre-1.0 and minor versions may contain breaking changes without prior deprecation. Pin your version if you need stability.
Tagged commits on main trigger the release pipeline. CI runs all quality gates, publishes to npm, and attaches a source tarball to the GitHub release.
See CONTRIBUTING.md for how to report bugs, request features, and submit code.
Please read our Code of Conduct before participating.