Skip to content
supastack
Browse documentation
WebTanStack Start

For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /docs/tanstack/tech-stack.md (or send Accept: text/markdown).

Tech stack

The technologies behind the kit and the role each one plays.

Before you begin

Open your downloaded supastack project in Visual Studio Code using File → Open Folder, then choose Terminal → New Terminal. The repository root is the folder containing package.json, apps and packages. Run the command below there and leave its terminal open. If a command is not recognized, finish the tool installation guide before continuing.

Read the platform tutorial first. A server is the app process that answers browser or phone requests. Web reads apps/web-tanstack/.env.local, Expo reads apps/mobile/.env.local, and database migration commands read root .env. The no-database /dashboard demonstration is separate from real /auth accounts, which need migrated Postgres. A phone or desktop-only checkout needs a separately running Web backend.

corepack pnpm --filter @supastack/web-tanstack dev

Application stack

The web app is a TanStack Start application composed from shared TypeScript packages — the same packages feed the Expo mobile app. Product chrome uses CSS modules over design tokens, so there is no runtime CSS-in-JS to debug, and object storage is S3-compatible. The tools below are the deliberate defaults.

TanStack Start + React

The web app runs TanStack Start on TanStack Router file routes and React 19 server components.

TypeScript + Turborepo

TypeScript strict mode applies across the whole pnpm workspace, and Turborepo coordinates builds.

Better Auth

Better Auth is the identity engine; an Auth.js engine is available for teams that standardize on it.

Drizzle + PostgreSQL

Persistence runs through Drizzle ORM on PostgreSQL — the schema and helpers every record flows through.

Billing

Stripe billing is the default, and a Lemon Squeezy adapter is included.

Trigger.dev

Background jobs run on Trigger.dev.

Transactional email

Transactional email sends through Resend or AWS SES.

Sentry + PostHog

Observability runs through Sentry and PostHog.

Expo

The Expo mobile app consumes the same TypeScript packages, so contract changes typecheck against both surfaces at once. Expo ships for iOS and Android.

Shared modules

Every cross-cutting capability lives in a package with a small contract: auth, db, billing, ai, jobs, email, storage, observability, config, i18n, and api. Applications compose them; product domain logic stays outside the kit.

Each provider-backed module ships a fake or local adapter so the default test and development loop never calls a billable service.

Verification tooling

Vitest covers unit and integration behavior, Playwright covers browser flows, and ESLint plus Prettier keep the code consistent. The deterministic suite runs without provider credentials; real-provider acceptance is a separately gated path.

corepack pnpm test              # deterministic unit + integration
corepack pnpm check             # lint, types, tests, format
corepack pnpm build             # production builds
corepack pnpm test:e2e:tanstack  # browser flows