Skip to main content
Each app in the monorepo deploys as a separate Vercel project.

Steps

  1. Push your monorepo to GitHub.
  2. Import the repo at vercel.com/new. Create one Vercel project per app.
  3. Set the root directory for each project:
Vercel ProjectRoot Directory
Main applicationapps/app
Marketing websiteapps/web
API layerapps/api
  1. Add environment variables from your .env file to each project:
VariableDescription
NEXT_PUBLIC_CONVEX_URLProduction Convex deployment URL
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEYClerk publishable key
CLERK_SECRET_KEYClerk server-side secret
NEXT_PUBLIC_APP_URLProduction URL for the main app
NEXT_PUBLIC_WEB_URLProduction URL for the marketing site
NEXT_PUBLIC_DOCS_URLProduction URL for the docs
  1. Deploy. Pushes to main trigger automatic deployments.

Vercel Integrations

The Clerk integration and Convex integration auto-sync their keys to your Vercel projects.

Documentation

The apps/docs/ site deploys via Mintlify, not Vercel. Configure your docs domain in the Mintlify dashboard.

Monorepo Behavior

Vercel detects Turborepo and scopes builds to the affected app. Only changed apps rebuild. Each Vercel project keeps its own environment variables; they are not shared across projects.

Learn More