🚀 Monorepo with Turborepo + pnpm + Slidev
This project contains all Slidev presentations and their automated deployment pipeline.
56k-slides-demo/
├── apps/
│ └── slidev/ # Slidev presentations
├── infrastructure/ # Infra code (Pulumi / scripts / Terraform)
├── package.json # Monorepo root config
└── .github/workflows/ # CI/CD (GitHub Actions)
| Command | Description |
|---|---|
pnpm dev |
Runs all apps in development mode using Turborepo |
pnpm build |
Builds all apps (output in apps/slidev/dist/) |
pnpm lint |
Lints the code using Biome |
pnpm format |
Formats the code using Biome |
pnpm check |
Runs lint + format check |
Each presentation is located in apps/slidev/presentations/<deck>/slides.md.
Translations are located in apps/slidev/languages/<lang>/<deck>.json.
Example to run a presentation:
pnpm dev presentations/introduction/slides.md --deck <deck> --lang <lang> --theme <theme>Two GitHub Actions workflows are configured:
- CI (
ci.yml): runs build + lint + format check for every PR - Deploy (
deploy.yml): builds and deploys to S3 + CloudFront onmain
Deployment runs automatically whenever a commit is pushed to main.
It uploads the built files from apps/slidev/dist/ to S3 and invalidates CloudFront cache.
Required GitHub Actions secrets (Settings → Secrets and variables → Actions):
AWS_ROLE_TO_ASSUMEAWS_REGIONS3_BUCKETCF_DISTRIBUTION_ID