A Cloudflare SaaS template, assembled by a tiny crew.
Auth, D1, an admin area, per-PR deploys and an SEO blog, already wired together on Workers. Rename the monorepo with one command and start on your own product.
What ships
The boring parts, working on day one. Nothing to delete first.
Email and Google sign-in, mandatory verification, Turnstile, reset flow. Set one env var and you're the admin.
D1 behind Drizzle ORM with a real migration chain. One config file names everything.
Per-PR previews, production from main, smoke tests, automatic rollback.
Users, roles, bans and session revocation in a ready dashboard.
Markdown posts, JSON-LD, RSS, sitemap, llms.txt, and a CI check that fails on broken SEO.
Scoped API keys, an OpenAPI 3.1 /api/v1 and an MCP server — one service layer behind both.
Agent-ready
Users mint scoped keys in Settings, and Claude Code, Cursor and Codex connect over MCP or plain HTTP.
MCP server
claude mcp add --transport http yourapp \ https://app.yourapp.com/mcp \ --header "Authorization: Bearer ff_…"
OpenAPI 3.1
GET /api/v1/openapi.json six operations, typed with zod. key-gated by default — one flag publishes it for clients to find.
API keys
ff_… shown once. read/write scopes, expiry, revoke in Settings. only hashes hit D1.
From the blog
What the Fastflare starter actually gives you
A walk through the auth, database, admin area and deploy pipeline that come with this Cloudflare starter, and the parts you still own.
Get Fastflare
One command renames the repo. Merge to main and it deploys to your own Cloudflare account, with smoke tests and automatic rollback.