Built with Trellis
- Bun ≥ 1.0 — this project uses Bun workspaces,
bun --filter, and direct TypeScript execution. npm alone will not work.
curl -fsSL https://bun.sh/install | bashbun install
bun run devThis starts the docs site, slide deck, and a unified dev proxy on port 3035.
| Command | Description |
|---|---|
bun install |
Install dependencies |
bun run dev |
Start all dev servers |
bun run dev:docs |
Docusaurus only (port 3030) |
bun run dev:slides |
Slidev only (port 3032) |
bun run build |
Build everything to dist/ |
bun run deploy |
Build and deploy to Cloudflare Pages |
bun run set-pw |
Set the passcode for password-gated access |
bun run update:template |
Update from the latest Trellis template |
mainframe-playbook/
├── docs/ # Docusaurus documentation site
├── slides/ # Slidev presentation deck
├── functions/ # Cloudflare Pages Functions
├── dev-server.ts # Local dev proxy
├── trellis.config.ts # Brand config (colors, fonts)
└── package.json
This project includes a GitHub Actions workflow for deploying to Cloudflare Pages.
Add these secrets in your repo's Settings → Secrets and variables → Actions:
| Secret | Description |
|---|---|
CLOUDFLARE_API_TOKEN |
API token with Cloudflare Pages: Edit permission (covers deploy + custom domains) |
CLOUDFLARE_ACCOUNT_ID |
Your Cloudflare account ID (Account Home → right sidebar) |
The deploy workflow is configured for manual triggers by default. Run it from the Actions tab or via CLI:
gh workflow run deploy.ymlTo enable automatic deploys on push to main and PR previews, remove the if: guard line in .github/workflows/deploy.yml.
You can also deploy manually from your machine:
bun run deployTo set up password-gated access, configure PASSCODE_HASH in your Cloudflare Pages environment variables. Generate a hash locally:
bun run set-pwThis project was scaffolded with Trellis. To pull in the latest template changes:
bun run update:template