Home / Docs / Getting Started

Getting Started with LaunchSaaS

From purchase to a working production deployment in about 30 minutes.

Updated Apr 2026
8 min read

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:

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

Recommended

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:

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

  1. Push the repository to your personal GitHub account (private fork).
  2. Go to vercel.com/new and import the repository.
  3. Add environment variables in the Vercel project settings.
  4. 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:

  1. Go to Stripe Dashboard → Developers → Webhooks → Add endpoint.
  2. Set the endpoint URL to https://yourdomain.com/api/webhooks.
  3. Select the events to listen for (at minimum: checkout.session.completed, customer.subscription.updated, customer.subscription.deleted).
  4. Copy the signing secret and update STRIPE_WEBHOOK_SECRET in 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