Introduction
Launch Now is a production-ready Next.js 16 SaaS boilerplate with auth, organizations, Stripe billing, an admin panel and a marketing site.
Welcome to the Launch Now documentation.
Launch Now is a SaaS boilerplate built on Next.js 16 and the App Router. It gives you the parts every SaaS needs (sign-in, teams, subscriptions, emails, an admin panel, a marketing site, legal pages) so you can spend your time on the product itself.
The boilerplate ships as a working demo product called Pulse, a fictional product analytics app.
"Pulse" is a placeholder: you rename it in one file, lib/config/site-config.ts, and the new name
appears in the UI, metadata, emails, Stripe products and API key prefixes. See
Configuration.
What's included
Authentication and accounts
- Passwordless sign-in with a one-time code sent by email, plus GitHub and Google OAuth, powered by Better Auth.
- Two-factor authentication, active session list with revocation, and a "last used" sign-in method indicator.
- Account settings: profile and avatar upload, security, notifications, billing and a danger zone.
- Personal API keys with a product-specific prefix, expiration and rename or delete actions.
- An onboarding flow for new users and a setup progress card on the dashboard.
Organizations
- Multi-tenant organizations with their own slug (
/orgs/[orgSlug]), members, invitations and roles (owner, admin, member). - An organization switcher in the sidebar, organization settings (general, members, billing, security, danger zone) and invitation acceptance pages.
Billing
- Stripe subscriptions through the Better Auth Stripe plugin, for users and for organizations.
- Plans stored in the database (Free, Pro and Ultra in the demo), a public pricing page with a comparison table, invoices, a past-due banner and a webhook route.
- Scripts that create the Stripe products and prices and seed the plans table.
Admin panel
- Platform admin pages under
/adminfor users, organizations, feedback, notifications and the newsletter, restricted to users whose role isadmin. - User impersonation with a visible banner.
Notifications and email
- In-app notifications with a bell, an inbox and per-category preferences (organizations, billing, security, platform admin, announcements), plus admin broadcasts.
- Transactional email with Resend and React Email templates.
- An optional newsletter with double opt-in, backed by a Resend audience.
Content and marketing
- A marketing homepage built from sections (hero, logos, features, steps, testimonials, pricing, FAQ, call to action).
- MDX docs at
/docsand a blog at/blog, powered by Fumadocs. - A changelog page with an RSS feed, and a public status page.
- Legal documents (terms, privacy, cookies, DPA, refund policy, legal notice) generated from a single config file, and a cookie consent banner.
- SEO helpers: metadata, Open Graph image, sitemap, robots, web manifest and JSON-LD.
Developer experience
- Type-safe server actions with
next-safe-action, and environment variables validated at startup. - A resource generator that scaffolds a full CRUD feature (table, actions, forms, pages) from a JSON spec.
- A
reset-projectscript that removes the demo code when you are ready to build your own product. - CI, conventional commits and automated releases.
Tech stack
| Layer | Technology |
|---|---|
| Framework | Next.js 16 (App Router), React 19, TypeScript |
| Database | PostgreSQL (Neon or any Postgres) with Drizzle ORM |
| Authentication | Better Auth (email OTP, OAuth, 2FA, organizations, API keys) |
| Payments | Stripe with @better-auth/stripe |
| Resend and React Email | |
| File storage | Any S3-compatible storage with the AWS SDK |
| UI | shadcn/ui (Base UI), Tailwind CSS 4, Motion, Lucide icons |
| Forms and data | React Hook Form, Zod 4, TanStack Query, TanStack Table |
| Server actions | next-safe-action |
| Environment | @t3-oss/env-nextjs |
| Content | Fumadocs (MDX docs and blog) |
| Charts | Recharts and ECharts |
| Tooling | pnpm, ESLint, Prettier, Knip, commitlint, release-it |
| Hosting | Vercel |
How to use the docs
The docs are split into three sections:
- Getting started: install the project, understand the folder layout, set your environment variables and deploy to production. Read these in order the first time.
- Guides: one page per feature (authentication, billing, organizations, email…). Each guide explains how the feature works, where its code lives and how to customize it.
- API reference: the package scripts, configuration files, server actions and database schema, for when you need the exact details.
Every page is written against the source code. When in doubt, the code in your copy of the boilerplate is the source of truth.
Good to know: This site documents the boilerplate itself. The /docs route inside your app
(served from content/docs/) is yours to fill with documentation for your own product.
Start here
Clone the repository, configure the environment and run the app locally.
Project structureThe folders and files that make up the boilerplate, and the conventions they follow.
Environment variablesEvery variable, whether it is required, and where to get its value.
ConfigurationRename the product and adjust the site-wide settings.
DeployingShip to Vercel with migrations, Stripe webhooks and OAuth in production.
AuthenticationEmail one-time codes, OAuth, 2FA and sessions with Better Auth.
OrganizationsTeams, members, invitations and roles.
BillingPlans, Stripe subscriptions, invoices and webhooks.
DatabaseDrizzle schema, migrations and seed scripts.
Server actionsType-safe mutations with next-safe-action.
AdminManage users and organizations as a platform admin.
Resource generatorScaffold a full CRUD feature from a JSON spec.