Documentation

Deploy to Vercel

Deploy Software Multitool to Vercel with a Neon PostgreSQL database.

Software Multitool is designed to deploy to Vercel with a Neon PostgreSQL database. This guide covers the full production deployment.

Prerequisites

  • A Vercel account
  • At minimum one email provider (Resend is the easiest)

Step 1: Install Neon from the Vercel Marketplace

  1. Go to Vercel Dashboard → Integrations → Browse Marketplace and install Neon.
  2. During setup, create a new Neon project (or link an existing one).
  3. Vercel automatically injects DATABASE_URL and DATABASE_URL_UNPOOLED into your project environment variables -- no manual configuration needed.

Step 2: Deploy to Vercel

  1. Fork or clone the repository and push to your GitHub account.
  2. Go to vercel.com/new and import your repository.
  3. Vercel will detect the Turborepo monorepo automatically.
  4. Set the Root Directory to apps/web.
  5. Add the environment variables listed below before deploying.

Step 3: Set environment variables

Add these to Vercel under Settings → Environment Variables:

Required

BETTER_AUTH_SECRET=your-random-secret-min-32-chars
NEXT_PUBLIC_SITE_URL=https://yourdomain.com

DATABASE_URL and DATABASE_URL_UNPOOLED are auto-injected by the Neon Marketplace integration.

Generate BETTER_AUTH_SECRET with:

openssl rand -base64 32

Email (pick one provider)

# Resend
RESEND_API_KEY=re_...

# OR Postmark
POSTMARK_API_KEY=...
# 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 Neon database:

# From your local machine with the production DATABASE_URL set
pnpm db:migrate

Or 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)

  1. Create an account at inngest.com.
  2. Add your Inngest event key and signing key to Vercel:
    INNGEST_EVENT_KEY=...
    INNGEST_SIGNING_KEY=...
  3. 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/payments

For Stripe, use:

https://yourdomain.com/api/webhooks/stripe

Environment 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.

Deploy to Vercel | Documentation | Software Multitool