slides from July atproto.la meetup talk on an atmospheric cms
README.md

Slides #

All of my talks, built with Slidev and published together.

talks/<slug>/   one talk each: slides.md, style.css, img/, components/, …
template/       copied by `pnpm new`
scripts/        new / dev / build / export

Usage #

  • pnpm install
  • pnpm new my-talk "My talk title" — scaffold talks/my-talk from template/
  • pnpm dev my-talk — present/edit at http://localhost:3030
  • pnpm build — build every talk to dist/<slug>/ plus an index page at dist/index.html
  • pnpm build my-talk — rebuild just one
  • pnpm export my-talk — PDF to exports/my-talk.pdf (needs playwright-chromium)

Extra flags are passed through to Slidev, e.g. pnpm dev my-talk --port 3031.

Dependencies live in the root package.json and are shared by every talk. The index page lists talks by the title and date in each slides.md headmatter, newest first. Once a talk's recording is up, add video: <url> to its headmatter and the index links to it next to the deck.

Deploy #

Hosted on Coolify at https://slides.tyler.fun. A push to main runs .tangled/workflows/deploy.yml, which just pokes Coolify's deploy API; Coolify clones the repo, builds the Dockerfile (pnpm build, then nginx serving dist/), and only swaps the container if that succeeds. nginx.conf gives every /<slug>/ its own SPA fallback, so new talks need no config.

Talks #