TanStarter

What’s inside the starter (features, scripts, and where to edit).

What you get

tanstarter/ is a TanStack Start app wired with common SaaS primitives:

  • TanStack Start + TanStack Router (file-based routes)
  • Postgres + Drizzle (schema + migrations)
  • Better Auth (magic links via Resend, optional Google OAuth)
  • Stripe (default checkout + webhook + portal)
  • Optional: Polar, Supabase Storage, OpenAI (TanStack AI)

Where to start editing

  • Routes/pages: tanstarter/src/routes/*
  • Shared UI: tanstarter/src/components/*
  • Env examples: tanstarter/.env.example
  • DB schema: tanstarter/src/db/schema.ts
  • Auth config: tanstarter/src/auth.ts
  • Payments: tanstarter/src/payments/*

Useful scripts

From tanstarter/package.json:

bun run dev
bun run build
bun run preview

bun run db:push
bun run db:generate
bun run db:migrate
bun run db:studio

Key endpoints

  • Stripe checkout: GET /api/checkout
  • Stripe webhook: POST /api/webhooks/stripe
  • Stripe portal: GET /api/portal
  • Subscription status (DB-backed): GET /api/subscription
  • AI chat stream: POST /api/ai-chat
  • Prompts API: GET/POST /api/prompts