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:Required
Required
- 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
Optional (for full features)
Optional (for full features)
- Supabase account (Sign up free)
- Stripe account (test mode is free) (Sign up)
- PostHog account (optional, for analytics) (Sign up free)
- macOS / Linux
- Windows (PowerShell)
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.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.
Full Setup (recommended)
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
- Sign up:
http://localhost:3000/sign-up - Sign in:
http://localhost:3000/sign-in
- 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)
- Go to
http://localhost:3000/sign-up - Enter an email and password
- Check your email for the verification link
- Click the link to verify your account
- Sign in at
http://localhost:3000/sign-in - You should be redirected to
http://localhost:3000/dashboard
Troubleshooting
Error: Invalid Supabase URL or key
Error: Invalid Supabase URL or key
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
Error: Cannot connect to database
Error: Cannot connect to database
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, andpayment_historytables are present
Email verification not working
Email verification not working
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/callbackto Redirect URLs - Check your email spam folder
- In Supabase Dashboard → Authentication → Email Templates, ensure templates are enabled
OAuth sign-in doesn't work
OAuth sign-in doesn't work
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
Port 3000 already in use
Port 3000 already in use
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.Module not found errors
Module not found errors
Problem: The app shows “Module not found” errors for dependencies.Fix: