Create a new Launch.now project with the CLI and get it running locally in minutes.
Prerequisites
- Node.js 20+ —
node -vto check - pnpm —
pnpm i -g pnpm - Git
1. Create your project
pnpm dlx create-saas-appThe CLI walks you through a short setup:
┌ Launch.now│◇ Project name│ my-app│◇ SaaS model│ ● B2B — multi-tenant (organisations & workspaces) [default]│ ○ B2C — single-tenant (user-owned resources)│◇ Advanced auth features (multi-select)│ ◼ Two-factor authentication (TOTP + OTP)│ ◼ Passkeys (WebAuthn)│ ◻ Magic link│◇ Initialize a git repository?│ Yes│◇ Install dependencies?│ Yes│└ Done! cd my-app && pnpm devThe SaaS model you choose here shapes the database schema, auth flows, middleware, and Stripe integration. It cannot be changed after init.
2. Configure environment variables
cp .env.example .env.localcp .env.example .env.localOpen .env.local. The variables are grouped by service — you do not need all of them to start. Here is the minimum to get the app running locally:
# AppNEXT_PUBLIC_APP_URL=http://localhost:3000# Auth — generate with: openssl rand -base64 32BETTER_AUTH_SECRET=# Database — local Postgres or a free cloud instance (Neon / Supabase)DATABASE_URL=postgresql://postgres:password@localhost:5432/myappFor the full list of variables with instructions for each service, see Environment Variables.
3. Set up the database
pnpm db:migrateThis runs the consolidated migration and creates all tables — including Better Auth session tables.
4. Start the development server
pnpm devThe app is running at http://localhost:3000.
What works out of the box
Once the server is up, the following work with only the minimum env vars above:
- Email/password authentication
- Session management
- Two-factor authentication (if selected at init)
- Passkeys (if selected at init)
- Organisation creation and member management (B2B mode)
The following require additional service configuration:
| Feature | What to configure |
|---|---|
| Social login | GitHub OAuth · Vercel OAuth |
| Transactional email | Resend API key |
| Payments | Stripe keys + webhook |
| File uploads | Supabase Storage keys |
| Background jobs | Inngest event key |
| Caching | Upstash Redis keys |
| Error tracking | Sentry DSN |
Start with what you need — every section is independent.
Auth, billing, orgs, and emails — all wired up. Clone and deploy in minutes.
Get launch.now