Skip to main content

Get Running in 5 Minutes

This is the fastest path to seeing KwikSaaS in action. You only need Supabase to start — Stripe and Resend can be added later.
TL;DR: Clone → Set 3 env vars → Run. That’s it.

Prerequisites

Node.js 18+

Check: node -v. Download if needed.

Supabase Account

Free tier works perfectly. Create account →

Step 1: Clone & Install

git clone https://github.com/MohammedAlhawamdeh/kwiksaas.git
cd kwiksaas
npm install
Takes about 1-2 minutes depending on your connection.

Step 2: Create Supabase Project

1

Create project

  1. Go to supabase.com/dashboard
  2. Click New Project
  3. Pick a name, set a password, choose a region
  4. Wait ~2 minutes for it to spin up
2

Copy your keys

Go to Settings → API and grab these 3 values:
What to copyWhere to paste
Project URLNEXT_PUBLIC_SUPABASE_URL
anon public keyNEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY
service_role secretSUPABASE_SECRET_KEY
3

Configure auth redirects

Go to Authentication → URL Configuration:
  • Site URL: http://localhost:3000
  • Redirect URLs: Add http://localhost:3000/auth/callback
4

Run database migration

Option A (Recommended):
npx supabase link --project-ref YOUR_PROJECT_REF
npx supabase db push
Option B (Manual): Copy contents of supabase/migrations/*.sql and run in Supabase SQL Editor.

Step 3: Set Environment Variables

cp .env.example .env.local
Open .env.local and fill in the 3 Supabase values you copied:
# Required - Supabase
NEXT_PUBLIC_SUPABASE_URL=https://xxxxx.supabase.co
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=eyJ...
SUPABASE_SECRET_KEY=eyJ...

# Required - Site URL
NEXT_PUBLIC_SITE_URL=http://localhost:3000

# Everything else is optional for now!
Stripe and Resend are optional. The app works without them — you just won’t have payments or custom emails yet.

Step 4: Run It!

npm run dev
Open http://localhost:3000 🎉

Verify It’s Working

TestHow
Homepage loadsVisit / — you should see the landing page
Auth worksGo to /sign-up, create an account
Dashboard worksAfter signing in, you land on /dashboard
You’re done! The app is running with full auth. Time to make it yours.

What’s Next?