← back

The stack

Layered so each piece is swappable and no app is hostage to any single dependency.

Next.js (App Router) is the web layer — SSR and React Server Components for marketing pages, apps, and admin alike.

better-auth is the shared identity layer across every app and site. You own it, it's framework-agnostic, and it's backed by Postgres via Drizzle.

Postgres + Drizzle is the data you own — typed SQL with one database per app. Payload v3 rides the same Drizzle ORM for content-shaped products, so the data story stays consistent whether or not an app uses a CMS.

Stripe handles billing — checkout and webhooks land in a Drizzle table, so revenue is wired from day one.

@novalite/design-tokens is the shared look: semantic tokens and presets feed the same components, themed per app. Share the system, diverge the brand.