This template gives you a production-ready SaaS foundation so you can focus on your product — not infrastructure. Here's how to get up and running fast.
Start by copying .env.example to .env.local in both the frontend/ and backend/ directories. Fill in your Supabase, Stripe, and any other required keys. The setup script at setup-project.sh can walk you through this automatically.
./setup-project.sh from the project root to provision your Supabase project, sync env vars, and run migrations in one step.Set NEXT_PUBLIC_APP_NAME, NEXT_PUBLIC_APP_DOMAIN, and NEXT_PUBLIC_SUPPORT_EMAIL in your frontend env. All branding in the app reads from frontend/constants/app.constants.ts — a single source of truth for your product identity.
This template ships with Stripe Billing pre-wired. Create your products and prices in the Stripe dashboard, then map the price IDs to plan names in your backend config. Webhooks are handled automatically.
Database migrations live in backend/migrations/postgres/ and run with Postgrator. Use npm run migrate-db from the root to apply all pending migrations.
The backend deploys to Google Cloud Run via the generated backend/app.generated.yaml. The frontend deploys to Vercel. Both are pre-configured for CI/CD — just connect your repo and push.
frontend/components/Marketing/LogoIcon/ and update the favicon in frontend/public/favicon/.