billing hacks
Platform SettingsBuild Settings

Build & Preview Settings

Stop paying for builds you don't need.

Every push triggers a deployment. For active teams, this adds up fast.

Auto-Cancel Superseded Builds

Developer pushes commit A. Build starts. Developer pushes commit B.

Without cancellation: Both builds complete. You pay for both.

With cancellation: Build A killed. You only pay for B.

vercel.json
{
  "github": {
    "autoJobCancellation": true
  }
}

Branch Filtering

Not every branch needs a preview:

{
  "git": {
    "deploymentEnabled": {
      "main": true,
      "develop": true,
      "release/*": true,
      "feature/*": false,
      "dependabot/*": false,
      "renovate/*": false
    }
  }
}

Dependency bots generate dozens of PRs weekly. Skip them.

Ignore File Changes

Skip rebuilds when only docs change:

{
  "ignoreCommand": "git diff --quiet HEAD^ HEAD -- . ':!docs' ':!*.md' ':!.github'"
}

Preview Cost Breakdown

Team ActivityMonthly PreviewsEst. Cost
5 PRs/week~20 buildsMinimal
20 PRs/week~80 builds$20-50
50 PRs/week~200 builds$50-150

Preview-Specific Config

Reduce resource usage in previews:

lib/env.ts
export const IS_PREVIEW = process.env.VERCEL_ENV === 'preview';
export const IS_PRODUCTION = process.env.VERCEL_ENV === 'production';

export const CONFIG = {
  analytics: IS_PRODUCTION,
  imageQuality: IS_PREVIEW ? 60 : 85,
  revalidate: IS_PREVIEW ? 60 : 3600,
};

Next: Memory Config for function optimization.

On this page