mirror of
https://github.com/ksyasuda/dotfiles.git
synced 2026-03-20 06:11:27 -07:00
3.3 KiB
3.3 KiB
C3 (create-cloudflare)
Official CLI for scaffolding Cloudflare Workers and Pages projects with templates, TypeScript, and instant deployment.
Quick Start
# Interactive (recommended for first-time)
npm create cloudflare@latest my-app
# Worker (API/WebSocket/Cron)
npm create cloudflare@latest my-api -- --type=hello-world --ts
# Pages (static/SSG/full-stack)
npm create cloudflare@latest my-site -- --type=web-app --framework=astro --platform=pages
Platform Decision Tree
What are you building?
├─ API / WebSocket / Cron / Email handler
│ └─ Workers (default) - no --platform flag needed
│ npm create cloudflare@latest my-api -- --type=hello-world
├─ Static site / SSG / Documentation
│ └─ Pages - requires --platform=pages
│ npm create cloudflare@latest my-site -- --type=web-app --framework=astro --platform=pages
├─ Full-stack app (Next.js/Remix/SvelteKit)
│ ├─ Need Durable Objects, Queues, or Workers-only features?
│ │ └─ Workers (default)
│ └─ Otherwise use Pages for git integration and branch previews
│ └─ Add --platform=pages
└─ Convert existing project
└─ npm create cloudflare@latest . -- --type=pre-existing --existing-script=./src/worker.ts
Critical: Pages projects require --platform=pages flag. Without it, C3 defaults to Workers.
Interactive Flow
When run without flags, C3 prompts in this order:
- Project name - Directory to create (defaults to current dir with
.) - Application type -
hello-world,web-app,demo,pre-existing,remote-template - Platform -
workers(default) orpages(for web apps only) - Framework - If web-app:
next,remix,astro,react-router,solid,svelte, etc. - TypeScript -
yes(recommended) orno - Git - Initialize repository?
yesorno - Deploy - Deploy now?
yesorno(requireswrangler login)
Installation Methods
# NPM
npm create cloudflare@latest
# Yarn
yarn create cloudflare
# PNPM
pnpm create cloudflare@latest
In This Reference
| File | Purpose | Use When |
|---|---|---|
| api.md | Complete CLI flag reference | Scripting, CI/CD, advanced usage |
| configuration.md | Generated files, bindings, types | Understanding output, customization |
| patterns.md | Workflows, CI/CD, monorepos | Real-world integration |
| gotchas.md | Troubleshooting failures | Deployment blocked, errors |
Reading Order
| Task | Read |
|---|---|
| Create first project | README only |
| Set up CI/CD | README → api → patterns |
| Debug failed deploy | gotchas |
| Understand generated files | configuration |
| Full CLI reference | api |
| Create custom template | patterns → configuration |
| Convert existing project | README → patterns |
Post-Creation
cd my-app
# Local dev with hot reload
npm run dev
# Generate TypeScript types for bindings
npm run cf-typegen
# Deploy to Cloudflare
npm run deploy
See Also
- workers/README.md - Workers runtime, bindings, APIs
- workers-ai/README.md - AI/ML models
- pages/README.md - Pages-specific features
- wrangler/README.md - Wrangler CLI beyond initial setup
- d1/README.md - SQLite database
- r2/README.md - Object storage