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.
  • macOS / Linux
  • Windows (PowerShell)
# Install Node.js 18 via nvm (recommended)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.nvm/nvm.sh
nvm install 18
nvm use 18

# Enable Corepack and install the latest pnpm
corepack enable
corepack prepare pnpm@latest --activate

# Install Git if it's not already available
brew install git # macOS (Homebrew)
sudo apt install git # Debian/Ubuntu

Installation

1

Clone the repository

Clone the Sabo repository and navigate into the project directory:
git clone <your-repository-url>
cd sabo
If you purchased Sabo or received access, use the repository URL provided to you.
2

Install dependencies

Install all required packages using pnpm:
pnpm install
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.
touch .env.local
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
# Site URL (required)
NEXT_PUBLIC_SITE_URL=http://localhost:3000
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:
pnpm dev
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:
# Find and kill the process using port 3000
lsof -ti:3000 | xargs kill

# Or run on a different port
pnpm dev -- -p 3001
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:
# Clear pnpm cache and reinstall
rm -rf node_modules
rm pnpm-lock.yaml
pnpm install

Development Commands

Once Sabo is running, use these commands for development:
# Start development server
pnpm dev

# Build for production
pnpm build

# Start production server (requires pnpm build first)
pnpm start

# Run linter
pnpm lint

# Format code
pnpm format

# Run E2E tests
pnpm test:e2e

# Run E2E tests in UI mode
pnpm test:e2e:ui

# Run E2E tests with browser visible
pnpm test:e2e:headed
Run pnpm build locally before deploying to catch any build errors early.