Reusable Cursor talk deck. Not event-specific. Content lives in slides.md, no JSON sync layer.
| URL | |
|---|---|
| Audience | https://cursor.sanjeed.in |
| Presenter | https://cursor.sanjeed.in/presenter |
Hosted on Cloudflare Workers (static assets from dist/).
pnpm install
pnpm dev
# → http://localhost:3030Edit slides.md, push to main. Cloudflare builds and deploys automatically (once Git is connected).
Cloudflare merged Pages into Workers. There is no separate Pages tab. Use Import a repository.
- dash.cloudflare.com → Workers & Pages → Create application
- Choose Import a repository (not “Hello World” template)
- GitHub →
sanjeed5/cursor-slidev, branchmain - Worker name must match
wrangler.toml:cursor-slidev - Settings → Builds:
| Setting | Value |
|---|---|
| Build command | pnpm run build |
| Deploy command | pnpm exec wrangler deploy |
| Node.js version | 22 |
- Domains tab → add custom domain
cursor.sanjeed.in
Push to main → CF runs build → wrangler deploy uploads dist/.
wrangler.toml points at ./dist with SPA fallback for /presenter and deep links.
pnpm cf:deployslides.md ← deck content
components/ ← Vue slide components
public/ ← images, tweet PNGs, lockups
wrangler.toml ← Worker name + static assets (dist/)
slidev-theme-cursor/ ← linked theme
demo/ ← @cursor/sdk terminal demo (separate Node project)
See AGENTS.md for slide order, tweet pipeline, and SDK demo.
pnpm sync:social # refresh tweets.json from X API
pnpm render:tweets # PNG cards for slidesReorder tweets in slides.md → SocialGrid props.
cd demo && npm install && npm run demoNeeds CURSOR_API_KEY for live runs.