# Slides All of my talks, built with [Slidev](https://sli.dev/) and published together. ``` talks// 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 - `pnpm build` — build every talk to `dist//` 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: ` to its headmatter and the index links to it next to the deck. ## Deploy Hosted on Coolify at . 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 `//` its own SPA fallback, so new talks need no config. ## Talks - [Yes, another CMS](./talks/yes-another-cms/slides.md) - [I wanna talk to y'all about web crawl](./talks/web-crawl/slides.md)