Deploy to Vercel
Deploy Software Multitool to Vercel with a Supabase database.
Software Multitool is designed to deploy to Vercel with a Supabase PostgreSQL database. This guide covers the full production deployment.
Prerequisites
- A Vercel account
- A Supabase project (free tier works)
- At minimum one email provider (Resend is the easiest)
Step 1: Create a Supabase project
- Go to supabase.com and create a new project.
- After the project initializes, go to Settings → API and copy:
- Project URL →
NEXT_PUBLIC_SUPABASE_URL - anon public key →
NEXT_PUBLIC_SUPABASE_ANON_KEY
- Project URL →
- Go to Settings → Database and copy the connection string (URI) →
POSTGRES_PRISMA_URL
Step 2: Deploy to Vercel
- Fork or clone the repository and push to your GitHub account.
- Go to vercel.com/new and import your repository.
- Vercel will detect the Turborepo monorepo automatically.
- Set the Root Directory to
apps/web. - Add the environment variables listed below before deploying.
Step 3: Set environment variables
Add these to Vercel under Settings → Environment Variables:
Required
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
POSTGRES_PRISMA_URL=postgresql://...?pgbouncer=true&connection_limit=1
POSTGRES_URL_NON_POOLING=postgresql://...
BETTER_AUTH_SECRET=your-random-secret-min-32-chars
NEXT_PUBLIC_SITE_URL=https://yourdomain.comGenerate BETTER_AUTH_SECRET with:
openssl rand -base64 32Email (pick one provider)
# Resend
RESEND_API_KEY=re_...
# OR Postmark
POSTMARK_API_KEY=...Payments (optional but recommended)
# Stripe
STRIPE_SECRET_KEY=sk_live_...
STRIPE_WEBHOOK_SECRET=whsec_...AI tools (optional — needed for specific tools)
OPENAI_API_KEY=sk-...
ASSEMBLYAI_API_KEY=...
REPLICATE_API_TOKEN=...Step 4: Run database migrations
After your first deploy, run the Prisma migrations against your Supabase database:
# From your local machine with the production DATABASE_URL set
pnpm db:migrateOr configure Vercel to run migrations automatically on deploy via the Deploy Database Migrations workflow in .github/workflows/.
Step 5: Set up Inngest (for async jobs)
- Create an account at inngest.com.
- Add your Inngest event key and signing key to Vercel:
INNGEST_EVENT_KEY=... INNGEST_SIGNING_KEY=... - Sync your functions in the Inngest dashboard after deploying.
Step 6: Configure payment webhooks
If you're using payments, configure your provider's webhook to point at:
https://yourdomain.com/api/webhooks/paymentsFor Stripe, use:
https://yourdomain.com/api/webhooks/stripeEnvironment variable reference
See Getting Started → Environment Variables for a full list of supported variables.
Custom domain
Point your custom domain to Vercel via your DNS provider. Vercel handles SSL automatically.
Update NEXT_PUBLIC_SITE_URL in your environment variables to match your production domain.