Monorepo SaaS starter

The Next.js + Supabase boilerplate, ready to fork.

zerostack ships a working auth flow, Row-Level-Security schema, and a typed CRUD example — wired up across a pnpm + Turborepo monorepo. Clone it, run one command, and start building the app instead of the plumbing.

$ npx degit zerox9dev/zerostack my-app

No boilerplate · No config hell · Just ship

Built on

Next.js 16Supabaseshadcn/uiTailwind 4ZodTurborepopnpm

Built for SaaS

Everything you keep rebuilding, already wired up.

Auth & Sessions

Supabase magic-link sign-in, PKCE callback, and session refresh in the root proxy. Protected /app routes out of the box.

Database with RLS

Postgres + per-user Row Level Security on every table. Example notes migration ships with explicit select/insert/update/delete policies.

Server Actions UI

shadcn/ui + Server Actions for CRUD. No client fetch boilerplate, no API routes to maintain, revalidatePath where it matters.

Type-safe Contracts

Zod schemas in @zerostack/contracts are the single source of truth — types are inferred, never duplicated across web, mobile, and server.

Monorepo DX

pnpm workspaces + Turborepo. One lockfile, filtered commands per package, shared tsconfig base. Mobile app slot ready.

Production CI

GitHub Actions runs typecheck, lint, and build on every push and PR. MIT-licensed, no telemetry, no vendor lock-in beyond Supabase.

Quick start

From zero to a running app in four steps.

  1. 01

    Clone the template

    npx degit zerox9dev/zerostack my-app
  2. 02

    Install deps

    cd my-app && pnpm install
  3. 03

    Wire Supabase

    cp .env.example apps/web/.env.local
    # fill NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY
  4. 04

    Run it

    pnpm dev

Stay in the loop

Get a heads-up when new modules ship.

Drop your email — we'll send a short note when major additions (Stripe, teams, mobile) land. No noise.