Skip to content
supastack
Browse documentation
WebNext.js

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/web/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/.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 dev

Application stack

The web app is a Next.js 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.

Next.js + React

The web app runs Next.js 16 with the App Router 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      # browser flows

Frequently asked questions

14 questions

What is supastack?

supastack is a modular foundation for building AI-powered SaaS products. It brings together common infrastructure so you can focus on product-specific features.

Does it support web and mobile?

Yes. supastack includes Next.js and Expo apps as starting points for web and mobile experiences.

What authentication is included?

Better Auth covers email OTP, magic-link, and social sign-in; email/password stays available at the API layer and through the Auth.js credentials engine for products that need it. Personal workspaces are provisioned with the account so product records stay scoped from day one.

How does it support AI?

supastack includes configurable multi-provider AI, usage tracking, budgets, and encrypted bring-your-own-key support.

How are subscriptions handled?

For products built on the kit, Stripe billing, subscriptions, and entitlements form the paid-access foundation. Provider secrets stay server-only.

Where does my product-specific code live?

Product-specific features remain in a separate codebase while the product configures and integrates supastack’s foundation modules.

How does supastack pricing work?

The kit is a one-time purchase with lifetime updates: One Platform at $249 (temporary launch price, $100 off the regular $349) — your pick of Next.js (Web), Expo (iOS & Android), or Tauri (macOS & Windows Desktop) — or the All Platforms Bundle at $499 (temporary launch price, $100 off the regular $599) with every platform and the full monorepo, plus $75 per extra developer seat. No kit subscription. Checkout on this site delivers your license key by email, with repository access via GitHub invite.

How do workspaces scope my data?

User-owned records are scoped by workspaceId. Identity, entitlements, AI usage, billing events, and audit entries stay inside the personal workspace boundary.

How do background jobs work?

Trigger.dev is the explicit job runtime. The JobRunner contract only promises enqueue, status, and cancel—workflow semantics stay Trigger.dev-specific and explicit.

How is email different from outreach?

Transactional email covers product workflows such as completion notices. Cold outreach and campaigns are product concerns outside this kit’s email module.

How do mobile purchases work?

Mobile includes native purchases and restore through RevenueCat, with access verified by your server. Configure the store accounts and complete device testing before release. Web billing remains separate.

Where do AI provider keys live?

Bring-your-own-key credentials are encrypted and stay server-only. Keys are redacted from logs; usage and budgets remain visible at the workspace level.

Which payment methods does checkout accept?

The Stripe-hosted checkout accepts cards and can also offer Alipay and WeChat Pay once those wallets are enabled on the Stripe account — handy for buyers in China. Wallet authorizations confirm asynchronously, so the license page updates as soon as the payment clears.

Can I get a refund?

After you've got access to the repository, supastack is yours forever, so it cannot be refunded. But rest assured, you get the complete source code with lifetime updates to build and ship unlimited products for yourself or clients. You just cannot resell the code or redistribute the repository as a starter kit or template.

EN
Theme