create-nuxt-starter-kit
Scaffold a production-ready Nuxt 4 + Cloudflare Workers app in one command.
bunx create-nuxt-starter-kit my-appPrompts for your app name, production URL, and which features to enable — then clones the template, writes your config, and optionally makes the first git commit.
What you get
- Auth — email/password, OAuth (Google, GitHub), magic link, email verification, 2FA (TOTP), RBAC
- Database — Drizzle ORM + Cloudflare D1 (SQLite) with migrations
- Email — Resend integration with HTML templates; previews in dev without an API key
- Admin panel — user management, audit log, impersonation, invitations
- Teams — organizations, member invitations, role-based access
- Billing — Stripe / Paddle integration (optional)
- Storage — Cloudflare KV (rate limiting, cache) + R2 (file uploads, optional)
- Background jobs — DB-backed queue processed by cron triggers
- Security — CSP nonce, HSTS, rate limiting, typed error codes
- SEO — sitemap, robots.txt, Open Graph image generation, JSON-LD
- PWA — service worker via
@vite-pwa/nuxt - 44+ feature flags — toggle anything via env var, no rebuild required
Usage
Interactive (recommended)
bunx create-nuxt-starter-kitPrompts for directory name, app identity, and a checkbox feature picker.
With a pre-filled name
bunx create-nuxt-starter-kit my-appSkips the directory prompt; still opens the feature picker.
Non-interactive (CI / scripted)
bunx create-nuxt-starter-kit my-app --yes
bunx create-nuxt-starter-kit my-app --yes --teams --billing --no-oauthRequires a project name. Accepts all defaults or any combination of feature flags.
Create + deploy in one step
bunx create-nuxt-starter-kit my-app --deployAfter setup, provisions Cloudflare D1 + KV and deploys to your staging environment.
Pin the template to a specific Git ref (branch, tag, or commit):
bunx create-nuxt-starter-kit my-app --template-ref main
NUXT_TEMPLATE_REF=v0.1.8 bunx create-nuxt-starter-kit my-app --yesOptions
--name <name> App display name
--slug <slug> URL-safe slug (defaults to directory name)
--prod-url <url> Production URL
--staging-url <url> Staging URL
--from-email <email> Transactional from address
-y, --yes Non-interactive — use defaults + flags, no prompts
--deploy Provision Cloudflare + deploy to staging after setup
--interactive Force the feature picker even with --yes
--help Show this message
Feature flags
Any feature can be toggled with --<flag> (enable) or --no-<flag> (disable):
| Flag | Default | Description |
|---|---|---|
--[no-]oauth |
on | Google + GitHub OAuth |
--[no-]email-verification |
on | Require email verification on sign-up |
--[no-]two-factor |
off | TOTP 2FA |
--[no-]magic-link |
off | Passwordless sign-in via email |
--[no-]admin |
on | Admin panel |
--[no-]teams |
off | Organizations + member invitations |
--[no-]billing |
off | Stripe / Paddle billing |
--[no-]invitations-only |
off | Closed-beta invite gate |
--[no-]impersonation |
off | Admin can impersonate users |
--[no-]database |
on | Cloudflare D1 + Drizzle ORM |
--[no-]kv |
on | Cloudflare KV |
--[no-]r2 |
off | Cloudflare R2 + file uploads |
--[no-]pwa |
on | Progressive Web App |
--[no-]i18n |
off | Internationalization |
--[no-]cookie-consent |
on | Cookie consent banner |
--[no-]dark-mode |
on | Light/dark mode toggle |
--[no-]slack |
off | Slack webhook notifications |
--[no-]discord |
off | Discord webhook notifications |
--[no-]soft-deletes |
off | Soft-delete users |
--[no-]git |
on | Initialize git + first commit |
Run bun run setup --help inside the project for the full list.
After scaffolding
cd my-app
bun run db:migrate:local && bun run db:seed
bun run devSee the template README for the full reference — database, auth, feature flags, deployment, and more.
Requirements
- Bun 1.0+
- A Cloudflare account (free) for D1, KV, and Workers deployment