Getting Started with LaunchSaaS
From purchase to a working production deployment in about 30 minutes.
On this page
What You Get After Purchase
After completing your $99 purchase, you will receive a GitHub repository invite at the email address you used during checkout. The invite typically arrives within a few minutes. Once you accept, you have permanent access to the private LaunchSaaS boilerplate repository — this is a one-time payment, not a subscription, so access does not expire.
The repository contains:
- 14 production-grade packages (authentication, payments, multi-tenancy, email, admin, and more)
- 2,335 automated tests with 87% statement coverage
- 9,383 lines of inline documentation
- GitHub Actions CI/CD configuration
- Vercel deployment configuration
- Database migration files for Supabase
Note
If you do not receive the GitHub invite within 15 minutes, check your spam folder. The invite comes from noreply@github.com. You can also contact support through the LaunchSaaS website.
Prerequisites
Before cloning the repository, make sure you have the following:
Required
- Node.js 18 or higher — Node.js 20 LTS is recommended. Check with
node --version. - A Supabase account — The free tier is sufficient to start. Create one at supabase.com. You will need to create a new project.
- A Stripe account — Test mode keys work for local development. Create an account at stripe.com.
- Git — To clone the repository.
Recommended
- Vercel account — For deployment. The free Hobby plan is enough for most early-stage SaaS applications.
- Stripe CLI — For testing webhooks locally. Install via
brew install stripe/stripe-cli/stripeon macOS or see the Stripe CLI docs. - Resend account — For transactional email. Free tier allows 3,000 emails/month.
Step-by-Step Setup
Step 1: Clone the repository
After accepting the GitHub invite, clone the repository to your local machine:
git clone https://github.com/launchsaas/launchsaas-boilerplate.git my-app
cd my-app
Step 2: Install dependencies
npm install
This installs all required packages. Expect this to take 30–60 seconds depending on your connection.
Step 3: Copy the environment file
cp .env.example .env.local
Open .env.local in your editor. You will fill in the values in the next step.
Step 4: Configure environment variables
See the environment variables section below for the full list of required values and where to find them.
Step 5: Run database migrations
LaunchSaaS includes all Supabase migration files. Run them from the Supabase dashboard (SQL Editor) or using the Supabase CLI:
npx supabase db push
This creates all required tables, functions, and RLS policies in your Supabase project.
Step 6: Run locally
npm run dev
Your app will be available at http://localhost:3000. The first build may take 10–15 seconds.
Step 7: Test a checkout flow
To test Stripe payments locally, in a separate terminal run:
stripe listen --forward-to localhost:3000/api/webhooks
Use Stripe's test card number 4242 4242 4242 4242 with any future expiry date and any 3-digit CVC.
Environment Variables
These four variables are required to run LaunchSaaS. Without them, the app will not start correctly.
| Variable | Where to find it | Example |
|---|---|---|
NEXT_PUBLIC_SUPABASE_URL |
Supabase Dashboard → Project Settings → API → Project URL | https://abc.supabase.co |
SUPABASE_SERVICE_KEY |
Supabase Dashboard → Project Settings → API → service_role key | eyJhbG... |
STRIPE_SECRET_KEY |
Stripe Dashboard → Developers → API Keys → Secret key | sk_test_... |
STRIPE_WEBHOOK_SECRET |
Generated by Stripe CLI (stripe listen) or Stripe Dashboard webhook setup |
whsec_... |
Security
Never commit .env.local to git. It is already listed in .gitignore. The SUPABASE_SERVICE_KEY and STRIPE_SECRET_KEY are server-side secrets — never expose them in client-side code or prefix them with NEXT_PUBLIC_.
Optional variables for additional features:
RESEND_API_KEY— Required for transactional email (welcome emails, password resets). Get from resend.com.NEXT_PUBLIC_SUPABASE_ANON_KEY— Required for client-side Supabase calls. Found in Supabase project settings alongside the URL.NEXT_PUBLIC_APP_URL— Your app's public URL (e.g.https://yourapp.com). Used for redirect URLs.
Deploy to Vercel
Vercel is the recommended deployment platform. LaunchSaaS is optimized for Vercel and requires no additional configuration beyond environment variables.
Option A: Deploy via Vercel CLI
npm install -g vercel
vercel
The CLI will prompt you to connect your Vercel account, then walk you through the deployment. Add your environment variables when prompted, or set them in the Vercel dashboard after the initial deploy.
Option B: Deploy via GitHub
- Push the repository to your personal GitHub account (private fork).
- Go to vercel.com/new and import the repository.
- Add environment variables in the Vercel project settings.
- Click Deploy. Vercel detects Next.js automatically.
After deploying: configure Stripe webhook
Your local Stripe CLI webhook will not receive events in production. You need to register your production webhook endpoint in the Stripe Dashboard:
- Go to Stripe Dashboard → Developers → Webhooks → Add endpoint.
- Set the endpoint URL to
https://yourdomain.com/api/webhooks. - Select the events to listen for (at minimum:
checkout.session.completed,customer.subscription.updated,customer.subscription.deleted). - Copy the signing secret and update
STRIPE_WEBHOOK_SECRETin your Vercel environment variables.
Frequently Asked Questions
What do I get immediately after purchasing LaunchSaaS?
Within a few minutes of purchase, you receive a GitHub repository invite to the private LaunchSaaS boilerplate repository. The invite is sent to the email address associated with your purchase. Once you accept, you have full access to clone, fork, or download the repository. There is no time-limited access — it is lifetime access.
What Node.js version does LaunchSaaS require?
LaunchSaaS requires Node.js 18 or higher. Node.js 20 LTS is recommended for production. You can check your version with node --version. If you need to manage multiple Node.js versions, nvm (Node Version Manager) works well.
Do I need a paid Supabase plan to use LaunchSaaS?
No. The Supabase free tier (500MB database, 50,000 monthly active users, 2GB file storage) is enough to develop and launch an early-stage SaaS. You would typically upgrade to a paid Supabase plan once you have significant traffic or need daily database backups.
Which environment variables are required to run LaunchSaaS locally?
Four variables are required at minimum: NEXT_PUBLIC_SUPABASE_URL, SUPABASE_SERVICE_KEY, STRIPE_SECRET_KEY, and STRIPE_WEBHOOK_SECRET. Additional optional variables exist for email (Resend) and other integrations.
How do I run LaunchSaaS locally without a live Stripe account?
Use Stripe's test mode keys (prefixed with sk_test_) for local development. To test webhooks locally, install the Stripe CLI and run stripe listen --forward-to localhost:3000/api/webhooks. This forwards Stripe events to your local server and gives you a test webhook secret.
Can I deploy LaunchSaaS to a platform other than Vercel?
Yes. LaunchSaaS is a standard Next.js application and can be deployed to any platform that supports Next.js: Railway, Render, Fly.io, AWS Amplify, or a self-hosted Node.js server. Vercel is recommended because it requires no additional configuration — the project structure is already optimized for it.
Ready to ship
Skip the boilerplate. Ship your product.
14 production packages. 2,335 tests. Battle-tested by 13,000+ users. One-time payment. Lifetime access.
Get Instant Access — $99