Ship TanStack: full-stack website template

A TanStack Start (React 19, Vite) site that already handles the boring parts of a SaaS: sign-in, Stripe subscriptions, credits, an admin panel, bilingual pages, SEO and a tag-based release pipeline. Okayok product sites run on it.

Private repository: okayok-ai/ship-tanstack

Illustration of the landing + pricing layout

Product & billing

  • Better Auth: email + password and Google sign-in
  • Stripe Checkout, subscriptions, Customer Portal, idempotent webhooks
  • Credits ledger, invite codes, API keys
  • Admin: users, roles & permissions, payments, subscriptions, tickets

Site & SEO

  • zh/en routes with Paraglide, language switcher, hreflang
  • JSON-LD generated from one site config
  • 1200×630 OG images per locale rendered from code
  • Sitemap, robots, llms.txt, blog and changelog pages

Release & ops

  • Production deploys only on v* tags (GitHub Actions → Vercel)
  • Changelog generated from commits, zh + en
  • Drizzle ORM with Postgres, migrations in repo
  • GA4 / Clarity hooks via env

UI

  • shadcn/ui on Tailwind CSS 4
  • Light/dark themes
  • Settings, billing and payments pages for users
  • Shared footer and product list support

Tech stack

TanStack StartReact 19TypeScriptTailwind CSS 4shadcn/uiBetter AuthDrizzle ORMPostgreSQLStripeParaglideVercel

Quick start guide · Pair it with the Electron desktop template

Pricing

Ship TanStack

Full-stack website template

$149/yr

  • TanStack Start + React 19 + Tailwind 4
  • Auth, Stripe subscriptions, credits, admin
  • zh/en i18n, SEO, JSON-LD, OG images
  • Tag-based deploys to Vercel
  • Every future update while subscribed
Pre-order Ship TanStack
Best value

Ship Bundle

Website + desktop, one subscription

$229/yr

  • Both templates
  • Shared sign-in and changelog wiring between site and app
  • Save ~23% vs buying both separately
  • Every future update while subscribed
Pre-order Ship Bundle

Pre-order: GitHub repository access opens soon. You are charged now; your subscription and GitHub username are saved, and invitations go out to every subscriber the day access opens. Cancel any time from the billing portal.