Skip to main content
This quickstart covers installing Sabo, configuring essential environment variables, running the database migration, and verifying your local setup. For detailed feature configuration (Stripe, PostHog, etc.), see the linked Core Features guides.

Prerequisites

Before you begin, ensure you have the following installed:
  • Node.js 18.18+ – Install from nodejs.org or use nvm with nvm install 18 && nvm use 18
  • pnpm – Enable Corepack (corepack enable && corepack prepare pnpm@latest --activate) or follow the official guide
  • Git – Already bundled on most systems; if missing, install from git-scm.com or via your package manager
Prefer installing from the terminal? Use the commands below as a starting point.

Installation

1

Clone the repository

Clone the Sabo repository and navigate into the project directory:
If you purchased Sabo or received access, use the repository URL provided to you.
2

Install dependencies

Install all required packages using pnpm:
This installs Next.js 16, React 19, Tailwind CSS 4, and all integrated libraries (~282KB pnpm-lock.yaml).
3

Create environment file

Create a .env.local file in the sabo directory. This file stores sensitive configuration and is excluded from version control.
Never commit .env.local to git. It’s already included in .gitignore.

Configuration

Minimal Setup (for UI exploration)

If you just want to explore the UI without authentication or payments, add these minimal variables:
.env.local
With this minimal setup, you can browse the marketing site, blog, and changelog, but authentication and protected routes won’t work.
For a fully functional Sabo installation with authentication and payments:
1

Set up Supabase for authentication

Create a free Supabase project and configure environment variables for user authentication.
See Auth with Supabase for detailed setup instructions.
2

Run database migration

Execute the included SQL migration to create user tables and enable Row Level Security.
The migration creates user_profiles, user_subscriptions, and payment_history tables. See Database with Supabase for details.
3

Configure Stripe for payments (optional)

Add Stripe test mode keys to enable payment processing and subscription management.
See Payments with Stripe for complete setup and webhook configuration.
4

Add PostHog for analytics (optional)

Set up PostHog to track user behavior and feature usage.
See Analytics with PostHog for configuration and event tracking.

Run Sabo

1

Start the development server

Run the Next.js development server:
The server starts on http://localhost:3000. Open this URL in your browser.
2

Verify the installation

Test that Sabo is working correctly:Marketing pages (no auth required):
  • Home page: http://localhost:3000/
  • Pricing: http://localhost:3000/pricing
  • Contact: http://localhost:3000/contact
  • Blog: http://localhost:3000/blog
  • Changelog: http://localhost:3000/changelog
Authentication (requires Supabase setup):
  • Sign up: http://localhost:3000/sign-up
  • Sign in: http://localhost:3000/sign-in
Dashboard (requires authentication):
  • Dashboard: http://localhost:3000/dashboard
  • Settings: http://localhost:3000/dashboard/settings/general
If you can view the home page and navigate to other marketing pages, your installation is successful!
3

Test authentication (if Supabase configured)

  1. Go to http://localhost:3000/sign-up
  2. Enter an email and password
  3. Check your email for the verification link
  4. Click the link to verify your account
  5. Sign in at http://localhost:3000/sign-in
  6. You should be redirected to http://localhost:3000/dashboard
If email verification doesn’t work, check your Supabase Dashboard → Authentication → URL Configuration and ensure the redirect URL is correct.

Troubleshooting

Problem: The app shows authentication errors or protected pages don’t work.Check:
  • Verify all three Supabase environment variables are set correctly in .env.local
  • Ensure there are no extra spaces or quotes around the values
  • Restart the dev server (pnpm dev) after changing .env.local
  • Check the Supabase Dashboard to confirm your project is active
Problem: Settings pages show errors about missing tables.Fix:
  • Run the database migration (see Step 3 in Full Setup above)
  • Verify tables exist in Supabase Dashboard → Table Editor
  • Check that user_profiles, user_subscriptions, and payment_history tables are present
Problem: Signup completes but no verification email arrives.Check:
  • Go to Supabase Dashboard → Authentication → URL Configuration
  • Ensure Site URL is http://localhost:3000
  • Add http://localhost:3000/auth/callback to Redirect URLs
  • Check your email spam folder
  • In Supabase Dashboard → Authentication → Email Templates, ensure templates are enabled
Problem: Google/GitHub sign-in redirects fail or show errors.Setup required:
  • OAuth providers must be configured in Supabase Dashboard
  • Go to Authentication → Providers
  • Enable and configure each provider (Google, GitHub, Apple)
  • Add OAuth credentials from each provider’s developer console
  • See Auth with Supabase for detailed setup
Problem: pnpm dev fails because port 3000 is occupied.Fix:
If you change the port, update NEXT_PUBLIC_SITE_URL in .env.local and restart the server.
Problem: The app shows “Module not found” errors for dependencies.Fix:

Development Commands

Once Sabo is running, use these commands for development:
Run pnpm build locally before deploying to catch any build errors early.