Skip to content
FULL-STACK SAAS · PLUGGABLE PROVIDERS

Ship the product.Not the plumbing.

TanStack Start, Better Auth, D1, R2, KV, payments, AI, content, analytics, and provider-based email — now with AWS SES beside Resend and Cloudflare Email.

14 production modules3 payment providers3 mail providersOne command to deploy
app.yourproduct.com
A real product surface

From first sign-up to recurring revenue

All systems operational
Revenue
$12,480+18.2%
Active users
1,284+12.4%
API calls
482k+24.1%
MRR growth+18.2%
Recent activity
New Pro subscription
Stripe · $99/year
2m
File uploaded
R2 · product-demo.mov
8m
API key created
Production key
21m

Production infrastructure, without provider lock-in

TanStack StartCloudflareBetter AuthDrizzleStripeCreemWaffoAWS SES

One stack, from localhost to the edge

One modern stack, wired end to end

The same TanStack and Cloudflare primitives power local development and production, with provider registries around services that need to stay swappable.

React 19

React 19 UI with typed route-driven application surfaces and reusable Base UI primitives.

TanStack Start

TanStack Start and Router provide file-based pages, server routes, SSR, and Worker-native request handling.

Drizzle + Better Auth

Typed D1 persistence and real authentication with credentials, Google OAuth, verification mail, and admin roles.

Cloudflare Workers

Workers runs the app while D1, R2, KV, Email, and Workers AI are exposed as typed bindings.

Public feature matrix covered

The documented stack—wired into real workflows.

Each capability maps to a working page, API, provider, persistence layer, or deploy binding—not a placeholder dependency.

Core runtime

React 19TanStack StartTanStack RouterViteTypeScript

Cloudflare

WorkersD1R2KVEmailWorkers AI

Product infrastructure

Better AuthDrizzle ORMStripeCreemWaffo

Email & audience

ResendCloudflare EmailAWS SESBeehiivReact Email

UI & content

Shadcn UI v4Base UITailwind CSS v4Content CollectionsParaglide

AI

TanStack AIWorkers AIfal.aiStreaming chatImage editingTTS
Modular by design

Modules stay independent as the SaaS grows

Each service area owns an interface, provider implementations, and a registry. Product code calls one stable entry point while mail, payments, newsletters, notifications, storage, cache, and AI remain replaceable.

feature/
├── types.ts # stable contract
├── provider/
│   ├── vendor-a.ts
│   └── vendor-b.ts
└── index.ts # registry
01

Authentication

Better Auth, email/password, social login, sessions and admin roles.

02

Payments

Stripe, Creem and Waffo behind one checkout and webhook contract.

03

Email & newsletter

Resend, Cloudflare Email and AWS SES, plus Beehiiv and waitlist flows.

04

AI playground

TanStack AI with Workers AI for chat, text, images, editing and speech.

05

Data & files

D1 with Drizzle, R2 files and KV caching, all fully typed.

06

Product surfaces

Landing, pricing, blog, dashboard, settings, billing and admin.

Resumable one-command setup

Configure once. Swap providers later.

Central configuration describes the product; provider registries isolate vendor integrations. The setup CLI writes environment files, builds, provisions Cloudflare resources, migrates D1, syncs secrets, and can create the GitHub repository.

  1. 1

    Name it

    Set the project name, product identity, navigation, pricing, and supported feature switches in central config.

  2. 2

    Pick providers

    Choose Resend, Cloudflare Email, or AWS SES for mail; Stripe, Creem, or Waffo for payments; and the other provider-backed services you need.

  3. 3

    Add secrets

    Fill only the environment variables for the providers you enable. Secrets stay server-side and are synced to Workers during deployment.

  4. 4

    Ship it

    Run the resumable setup command to generate migrations, validate the build, provision Cloudflare resources, and deploy.

See what ships
terminal
$ npx tanstarter-cli@latest create
? Project name my-saas
? Mail provider AWS SES

Dependencies installed

D1, R2 and KV configured

Database migrated

Worker build verified

Resume any interrupted setup with
npx tanstarter-cli resume

FAQ

FAQ

Yes. It includes authentication, D1 persistence, R2 storage, KV cache, payment providers, transactional email, newsletters, AI, analytics, chat, content, dashboard/settings/admin surfaces, and API infrastructure.

A starter should remove integration work, not hide it

The important seams are explicit: typed interfaces, small providers, registries, central config, real migrations, and a resumable setup command you can inspect and extend.

Start with the complete starter