Vercel

Deploy Explainer apps to Vercel using GitHub Actions with the amondnet/vercel-action.

Setup

Set the deploy target

Add a repository variable in GitHub Settings → Variables:

DEPLOY_TARGET=vercel

Add required secrets

Add the following secrets in GitHub Settings → Secrets:

SecretDescription
VERCEL_TOKENVercel API token
VERCEL_ORG_IDYour Vercel organization ID
VERCEL_DOCS_PROJECT_IDVercel project ID for the docs app

Configure vercel.json

Each app can have its own vercel.json for customization:

apps/docs/vercel.json
{
  "buildCommand": "pnpm --filter @explainer/docs build",
  "outputDirectory": "apps/docs/dist"
}

GitHub Actions workflow

The unified workflow at .github/workflows/deploy.yml handles all three apps. When DEPLOY_TARGET is set to vercel, the deploy job uses:

- uses: amondnet/vercel-action@v25
  with:
    vercel-token: ${{ secrets.VERCEL_TOKEN }}
    vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
    vercel-project-id: ${{ secrets.VERCEL_DOCS_PROJECT_ID }}
    working-directory: apps/docs/dist
    vercel-args: '--prod'

Each app has its own build and deploy jobs within the same workflow. See the CI/CD page for the full workflow structure.