Skip the boilerplate pain. In this guide we'll set up a production-ready SaaS application from scratch using Next.js 15, Clerk for auth, Stripe for billing, Supabase for the database, and Resend for transactional email.
Stack Overview
Project Setup & Folder Structure
Bootstrap a Next.js 15 app with TypeScript, Tailwind CSS, and the app router. Define a clean folder structure for a SaaS product.
Authentication with Clerk
Add sign-up, login, and org management in under 20 minutes. Protect routes with middleware and sync users to your database.
Database & ORM
Set up a Supabase Postgres database, define your schema with Prisma, and write type-safe queries.
Stripe Billing
Implement subscription plans, a customer portal, and webhook handling so billing state stays in sync with your database.
Transactional Email with Resend
Send welcome emails, receipts, and password resets using React Email templates and Resend's delivery API.
Deploy on Vercel
Deploy your app with environment variables, preview deployments, and a custom domain.
npx create-next-app@latest my-saas \
--typescript \
--tailwind \
--app \
--src-dir
cd my-saas
npm install @clerk/nextjs @prisma/client prisma \
stripe @stripe/stripe-js resend
Pro tip: Use our Next.js SaaS Template to clone this entire setup with one command and skip the configuration.