Skip to content

project-template

Auth, billing, a blog, search and feedback already wired up on Cloudflare Workers — and every one of them documents how to delete itself.

Most starters give you either a bare shell or a framework you cannot leave. This one gives you five working feature modules and the removal steps for each. Keep what the project needs, delete the rest, and pnpm check stays green either way.

The stack is a pnpm workspace: a React 19 and Vite frontend, a Hono API on Cloudflare Workers with D1 and Drizzle, and a shared TypeScript package between them. Lint, format, typecheck, tests, CI, pre-commit hooks and a deploy path ship with it.

Account

Users and sessions in D1, PBKDF2 password hashing, HttpOnly cookie sessions, email verification and password reset, self-serve account settings, and two-tier test auth for automated suites.

Read the module page →

Billing

Stripe Checkout and customer portal, webhook signature verification with event dedup, a subscription mirror in D1, and a story-test suite covering subscribe, trial, cancel, refund and dispute.

Read the module page →

Blog and search

An MDX blog with drafts, tags and feeds, registered into the single-source SEO route registry that prerendering and the sitemap read from. Search is Pagefind over whatever is prerendered, so it is not blog-specific.

Read the module page →

Feedback

A thumbs-up/down widget that posts to any HTTP endpoint, and renders nothing when its env vars are unset. The smallest module here, and the reference case for how a removable one is built.

Read the module page →

Quickstart → · Stamp a new project → · What a module is → · Architecture → · AGENTS.md, for coding agents →