View on GitHub Start Building Free
MIT licensed · v2.4.1 · Next.js 15

The boilerplate you'd build — if you had a week to spare.

Next.js 15, TypeScript, Prisma, Clerk, Neon, Stripe, shadcn/ui. Pre-wired, typed end-to-end, MIT-licensed. Clone it, ship it, delete what you don't need.

last commit: 2 days ago 247 dependencies 0 telemetry calls
bash — ~/projects — 92×28
Check the repo on GitHub →
PROBLEM / SOLUTION

Week one of every SaaS, rewritten.

The same five tasks, every project. Either you do them this weekend, or this repo already did.

WITHOUT BOILERPLATE-SAAS

Week one, by hand

  • Wire Clerk, protect routes, build signin/signup pages
  • Set up Prisma, design schema, push to Postgres, debug the connection string
  • Implement Stripe checkout + webhook signature verification
  • Configure Tailwind tokens, install shadcn/ui, wire dark mode
  • Set up Resend, write the welcome email in React
WITH BOILERPLATE-SAAS

Done before you start

  • Auth: Clerk configured, protected routes, signin/signup
  • Database: Prisma + Neon, schema with User / Account / Subscription
  • Payments: Stripe checkout, typed webhooks, signature verified
  • UI: Tailwind tokens, shadcn/ui, dark mode wired
  • Email: Resend configured, React templates, welcome flow
FEATURES / 08

What's already in the box.

Eight things you'd otherwise build, debug, and rebuild. Each configured to production defaults — not toy examples.

Authentication

Clerk pre-wired. Protected routes, middleware, signin/signup. Social logins enabled.

Database

Prisma + Neon Postgres. Schema with User, Account, Subscription. Migrations ready.

Payments

Stripe checkout + webhooks. Signature verification, typed events, idempotent handlers.

UI Primitives

shadcn/ui + Tailwind. Token-based theming, dark mode, copy-in components you own.

Email

Resend configured. React email templates, welcome flow, transactional helpers.

Deployment

Vercel config, env vars documented, migrations on build. Preview deploys work.

Multi-tenant by default

Organizations, invitations, and role-based access powered by Clerk. Every resource scoped to a tenant out of the box.

Multi-language ready

Locale-based routing and translated UI powered by next-intl, with a working example locale included.

TECH STACK / package.json

Every dependency, justified.

No "we use the best tools" — here's what's in package.json and why each line is there. Disagree with a choice? Swap it. The boundaries are clean.

package.json
tsconfig.json
.env.example
README.md
{
  "name": "boilerplate-saas",
  "version": "2.4.1",
  "private": true,
  "type": "module",
  "dependencies": {
    "next": "^15.0.3",              // app router, server actions, no pages/
    "react": "^19.0.0",              // concurrent rendering, use() hook
    "typescript": "^5.6.3",            // strict mode, no implicit any
    "@clerk/nextjs": "^6.3.0",        // auth without the auth.js config hell
    "@prisma/client": "^5.20.0",       // typed db client, migrations as code
    "@neondatabase/serverless":    // postgres over http, no pool limits
      "^0.9.4",
    "stripe": "^17.0.0",              // typed webhooks, no signature handling
    "resend": "^4.0.0",                // email with react templates
    "tailwindcss": "^3.4.14",          // tokens, not config files
    "@shadcn/ui": "latest",            // copy-in components, not a dependency
    "next-intl": "^3.26.0"                // i18n with [locale] routing, no config hell
  },
  "engines": { "node": ">=20.0.0" }     // vercel runs 20.x, you should too
}
WHO IT'S FOR / 03

Built for three kinds of builders.

If you're none of these, the repo still works — but the defaults are tuned for these people.

01 / SOLO

Indie hackers

Weekend projects that ship Monday. No three-week scaffold phase, no auth rabbit hole. Clone, configure five env vars, push.

"I shipped my last SaaS in a weekend. The weekend before that was auth."
02 / TEAM

Small teams

Skip the scaffold debate. The boring decisions are made: Postgres over Mongo, Clerk over DIY, Stripe over Lemon Squeezy. Disagree? Fork it.

"We deleted the 'which ORM' Notion doc and just started building."
03 / AGENCY

Agencies

A defensible default across client work. Same starter every project, same deployment story, same handoff. Bill for the product, not the boilerplate.

"12 client projects on this. Zero scaffold regressions."
HOW IT WORKS / 03 STEPS

From clone to deploy in three commands.

Numbered because this is actually a sequence — not a value framework, not a "philosophy". Three steps, in order.

01

Clone

One command. Creates a fresh Next.js app wired to this repo's example. No fork, no template — you get a clean git history.

$ npx create-next-app@latest my-app \
02

Configure

Five environment variables. All documented in .env.example. Clerk keys, Neon DSN, Stripe keys, Resend key. That's the entire setup.

$ cp .env.example .env.local
03

Deploy

Push to GitHub, import to Vercel. Migrations run on build via prisma migrate deploy. Preview deploys get isolated database branches automatically.

$ git push origin main
FREE & OPEN SOURCE

No paywall. No tiers. No "enterprise" call.

The repo is the product. MIT-licensed, hosted on GitHub, maintained in the open. If we ever build a hosted dashboard, it'll be a separate product — this starter stays free forever.

license MIT
  • No "Pro" tierThere is no upgrade page. There is no upgrade page because there is no paid version.
  • No email gateThe repo is public. The docs are public. No "request access" form, no waitlist, no Discord-only download link.
  • No attribution requiredMIT license. Delete the README, claim you wrote it, ship it. We genuinely do not care.
  • No telemetryZero analytics calls in the codebase. Verified by grep -r "fetch\|axios" src/ returning only your own code.
  • No "enterprise" forkIf we build a hosted dashboard, it'll be a separate product. This repo stays MIT, forever — the LICENSE file is the contract.
FAQ / 06

Questions developers actually ask.

Pulled from GitHub issues, Discord DMs, and the awkward @-mentions. Answered honestly.

// FINAL_CTA

Clone it. Ship it.
Delete what you hate.

No signup. No email. No "book a demo". Just a git URL and 47 seconds of npm install.