Better Auth, Stripe billing, and production-ready multi-tenancy — shipped as first-class features, not bolted-on afterthoughts. Stop stitching tutorials. Start building.
import { pgTable, uuid, text, timestamp } from 'drizzle-orm/pg-core'
export const users = pgTable('users', {
id: uuid('id').defaultRandom().primaryKey(),
email: text('email').notNull().unique(),
name: text('name'),
createdAt: timestamp('created_at').defaultNow(),
})
export const organizations = pgTable('organizations', {
id: uuid('id').defaultRandom().primaryKey(),
name: text('name').notNull(),
slug: text('slug').notNull().unique(),
createdAt: timestamp('created_at').defaultNow(),
})
export const memberships = pgTable('memberships', {
userId: uuid('user_id').references(() => users.id),
orgId: uuid('org_id').references(() => organizations.id),
role: text('role').default('member'),
})
The stack
Every piece of tech is chosen for production use, not novelty. You deploy with confidence.
Features
Other starter kits give you a pile of dependencies. SeedStack gives you a production-ready foundation.
Better Auth handles OAuth, magic links, email verification, password reset, MFA, and account linking. SQL-native adapters mean no external auth service to lock you in. Configure once, forget it.
Stripe checkout, customer portal, usage-based billing, and webhook handling — all wired up with proper idempotency. Multi-currency support included. No more debugging Stripe webhooks at 2am.
Drizzle ORM with Zod schemas, react-hook-form integration, and next-safe-action for server actions. The types flow from your database schema all the way to your form components. Catch errors at write-time, not runtime.
Organization-based data isolation, role-based access control (Owner / Admin / Member), member invitations, and seat management. Built for B2B from day one — not retrofitted when you land your first enterprise customer.
Environment variable configs for Vercel, Render, and self-hosted. Sentry error tracking, structured logging, health checks, and CI/CD with GitHub Actions. Ship to production with confidence, not guesswork.
Every module is documented: what it does, why it's structured that way, and how to extend it. Not just API references — architectural context. The docs you wish every open-source project had.
"We built the Next.js + Drizzle starter kit we wish existed when we were starting out. The ones we tried looked complete until we tried to ship — then we'd hit a wall: auth was bolted on, billing was missing, multi-tenancy was an afterthought. SeedStack is the kit that doesn't make you choose between speed and quality."
Not a pile of dependencies. A considered foundation.
Outcomes
SeedStack gives you the foundation so you can focus on what makes your product different: your features, your UX, your business logic.
Works on macOS, Linux, and Windows. PostgreSQL required. Zero vendor lock-in.