> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# 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.

[Install the tools and get the code](https://supastack.dev/docs/tanstack/before-you-start.md)

[Learn commands, files and configuration](https://supastack.dev/docs/tanstack/terminal-basics.md)

[Complete the Web first-run tutorial](https://supastack.dev/docs/tanstack/ship-in-5-minutes.md)

```
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](https://tanstack.com/start) on [TanStack Router](https://tanstack.com/router) file routes and [React](https://react.dev) 19 server components.

- [TanStack Start](https://tanstack.com/start)
- [React](https://react.dev)


## TypeScript + Turborepo

[TypeScript](https://www.typescriptlang.org) strict mode applies across the whole pnpm workspace, and [Turborepo](https://turborepo.com) coordinates builds.

- [TypeScript](https://www.typescriptlang.org)
- [Turborepo](https://turborepo.com)


## Better Auth

[Better Auth](https://better-auth.com) is the identity engine; an Auth.js engine is available for teams that standardize on it.

- [Better Auth](https://better-auth.com)


## Drizzle + PostgreSQL

Persistence runs through [Drizzle](https://orm.drizzle.team) ORM on [PostgreSQL](https://www.postgresql.org) — the schema and helpers every record flows through.

- [Drizzle](https://orm.drizzle.team)
- [PostgreSQL](https://www.postgresql.org)


## Billing

[Stripe](https://stripe.com) billing is the default, and a [Lemon Squeezy](https://www.lemonsqueezy.com) adapter is included.

- [Stripe](https://stripe.com)
- [Lemon Squeezy](https://www.lemonsqueezy.com)


## Trigger.dev

Background jobs run on [Trigger.dev](https://trigger.dev).

- [Trigger.dev](https://trigger.dev)


## Transactional email

Transactional email sends through [Resend](https://resend.com) or AWS SES.

- [Resend](https://resend.com)


## Sentry + PostHog

Observability runs through [Sentry](https://sentry.io) and [PostHog](https://posthog.com).

- [Sentry](https://sentry.io)
- [PostHog](https://posthog.com)


## Expo

The [Expo](https://expo.dev) mobile app consumes the same TypeScript packages, so contract changes typecheck against both surfaces at once. Expo ships for iOS and Android.

- [Expo](https://expo.dev)


## 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
```


## Next

[Local setup](https://supastack.dev/docs/tanstack/local-setup.md)
