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.

Accounts

Email and Google sign-in, mandatory verification, Turnstile, reset flow. Set one env var and you're the admin.

Database

D1 behind Drizzle ORM with a real migration chain. One config file names everything.

Deploys

Per-PR previews, production from main, smoke tests, automatic rollback.

Admin

Users, roles, bans and session revocation in a ready dashboard.

Blog + SEO

Markdown posts, JSON-LD, RSS, sitemap, llms.txt, and a CI check that fails on broken SEO.

Agent access

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

Get Fastflare

One command renames the repo. Merge to main and it deploys to your own Cloudflare account, with smoke tests and automatic rollback.

Get Fastflare