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
- Go to Vercel Dashboard → Integrations → Browse Marketplace and install Neon.
- During setup, create a new Neon project (or link an existing one).
- Vercel automatically injects
DATABASE_URLandDATABASE_URL_UNPOOLEDinto your project environment variables -- no manual configuration needed.
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
BETTER_AUTH_SECRET=your-random-secret-min-32-chars
NEXT_PUBLIC_SITE_URL=https://yourdomain.comDATABASE_URL and DATABASE_URL_UNPOOLED are auto-injected by the Neon Marketplace integration.
Generate 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 Neon 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.