Skip to content
'; user_status_content.firstChild.appendChild(avatarContainer); } else { // Placeholder for LoggedOutUserMenu let loggedOutContainer = document.createElement('div'); // if LoggedOutUserMenu fallback let userBtn = document.createElement('button'); userBtn.style.width = "33px"; userBtn.style.height = "33px"; userBtn.style.display = "flex"; userBtn.style.alignItems = "center"; userBtn.style.justifyContent = "center"; userBtn.style.color = "var(--ds-gray-900)"; userBtn.style.border = "1px solid var(--ds-gray-300)"; userBtn.style.borderRadius = "100%"; userBtn.style.cursor = "pointer"; userBtn.style.background = "transparent"; userBtn.style.padding = "0"; // user icon ( from geist) let svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); svg.setAttribute('data-testid', 'geist-icon'); svg.setAttribute('height', '16'); svg.setAttribute('stroke-linejoin', 'round'); svg.setAttribute('style', 'color:currentColor'); svg.setAttribute('viewBox', '0 0 16 16'); svg.setAttribute('width', '16'); let path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); path.setAttribute('fill-rule', 'evenodd'); path.setAttribute('clip-rule', 'evenodd'); path.setAttribute('d', 'M7.75 0C5.95507 0 4.5 1.45507 4.5 3.25V3.75C4.5 5.54493 5.95507 7 7.75 7H8.25C10.0449 7 11.5 5.54493 11.5 3.75V3.25C11.5 1.45507 10.0449 0 8.25 0H7.75ZM6 3.25C6 2.2835 6.7835 1.5 7.75 1.5H8.25C9.2165 1.5 10 2.2835 10 3.25V3.75C10 4.7165 9.2165 5.5 8.25 5.5H7.75C6.7835 5.5 6 4.7165 6 3.75V3.25ZM2.5 14.5V13.1709C3.31958 11.5377 4.99308 10.5 6.82945 10.5H9.17055C11.0069 10.5 12.6804 11.5377 13.5 13.1709V14.5H2.5ZM6.82945 9C4.35483 9 2.10604 10.4388 1.06903 12.6857L1 12.8353V13V15.25V16H1.75H14.25H15V15.25V13V12.8353L14.931 12.6857C13.894 10.4388 11.6452 9 9.17055 9H6.82945Z'); path.setAttribute('fill', 'currentColor'); svg.appendChild(path); userBtn.appendChild(svg); loggedOutContainer.appendChild(userBtn); loggedOutContainer.style.display = 'flex'; loggedOutContainer.style.gap = '8px'; loggedOutContainer.style.alignItems = 'center'; user_status_content.firstChild.appendChild(loggedOutContainer); } })();
Menu

Managing Builds

Last updated February 26, 2026

Turbo build machines are now enabled by default for new Pro projects - Learn more

When you build your application code, Vercel runs compute to install dependencies, run your build script, and sends the build output to our Compute and CDN.

By default, we enable our fastest build settings for Pro customers' new projects: Turbo build machines and On-Demand Concurrent Builds.

  • If you're on a Hobby plan and looking for faster builds, we recommend upgrading to Pro.
  • If you're on an Enterprise plan, build machines are managed as a part of your contract.

Visit Build Diagnostics in the Observability section in the Vercel dashboard sidebar to find your build durations. You can also use this table to quickly identify which solution fits your needs:

Your situationSolutionBest for
Builds are slow or running out of resourcesElastic/Enhanced/Turbo build machinesLarge apps, complex dependencies
Builds are frequently queuedOn-demand Concurrent BuildsTeams with frequent deployments
Specific projects are frequently queuedProject-level on-demandFast-moving projects
Occasional urgent deploy stuck in queueForce an on-demand buildAd-hoc critical fixes
Production builds stuck behind preview buildsPrioritize production buildsAll production-heavy workflows

Elastic, Enhanced, and Turbo build machines are available on Enterprise and Pro plans

Those with the owner role can access this feature

For Pro and Enterprise customers, we offer three higher-tier build machines with more compute resources than Standard. Elastic build machines auto-scale based on your recent build durations. Turbo build machines are enabled by default for new Pro projects.

Build machine typeNumber of vCPUsMemory (GB)Disk size (GB)
Standard4823
Enhanced81656
Turbo306064
Elastic4-308-60Auto-scaled

You can set the build machine type in the Build and Deployment section of your settings for your team or for individual projects.

When your team uses Elastic, Enhanced, or Turbo machines, usage contributes to your build usage charges. Elastic build machines are billed by CPU minute, starting at $0.0035 per CPU minute.

Enterprise customers who have Enhanced build machines enabled via contract will always use them by default. You can view if you have this enabled in the Build Machines section of the Build and Deployment tab in your Team Settings. To update your build machine preferences, you need to contact your account manager.

On-demand concurrent builds is available on Enterprise and Pro plans

Those with the owner role can access this feature

On-demand concurrent builds allow your builds to skip the queue and run immediately. By default, projects have on-demand concurrent builds enabled with full concurrency. Learn more about concurrency modes.

You are charged for on-demand concurrent builds based on the number of concurrent builds required to allow the builds to proceed as explained in usage and limits.

When you enable on-demand build concurrency at the level of a project, any queued builds in that project will automatically be allowed to proceed. You can choose to run all builds immediately or limit to one active build per branch.

You can configure this on the project's Build and Deployment Settings page:

  1. From your Vercel dashboard, select the project you wish to enable it for.
  2. Open Settings in the sidebar, and go to the Build and Deployment section of your Project Settings.
  3. Under On-Demand Concurrent Builds, select one of the following:
    • Run all builds immediately: Skip the queue for all builds
    • Run up to one build per branch: Limit to one active build per branch
  4. The Turbo option is selected by default with 30 vCPUs and 60 GB of memory. You can switch to Elastic, Enhanced, or Standard build machines based on your performance and cost goals.
  5. Click Save.

To create an Authorization Bearer token, see the access token section of the API documentation.

cURL
curl --request PATCH \
  --url https://api.vercel.com/v9/projects/YOUR_PROJECT_ID?teamId=YOUR_TEAM_ID \
  --header "Authorization: Bearer $VERCEL_TOKEN" \
  --header "Content-Type: application/json" \
  --data '{
    "resourceConfig": {
      "elasticConcurrencyEnabled": true,
      "buildQueue": {
        "configuration": "SKIP_NAMESPACE_QUEUE"
      }
    }
  }'

Set configuration to one of:

  • SKIP_NAMESPACE_QUEUE: Run all builds immediately
  • WAIT_FOR_NAMESPACE_QUEUE: Limit to one active build per branch

To create an Authorization Bearer token, see the access token section of the API documentation.

updateProject
import { Vercel } from '@vercel/sdk';
 
const vercel = new Vercel({
  bearerToken: '<YOUR_BEARER_TOKEN_HERE>',
});
 
async function run() {
  const result = await vercel.projects.updateProject({
    idOrName: 'YOUR_PROJECT_ID',
    teamId: 'YOUR_TEAM_ID',
    requestBody: {
      resourceConfig: {
        elasticConcurrencyEnabled: true,
        buildQueue: {
          configuration: 'SKIP_NAMESPACE_QUEUE',
        },
      },
    },
  });
 
  console.log(result);
}
 
run();

Set configuration to one of:

  • SKIP_NAMESPACE_QUEUE: Run all builds immediately
  • WAIT_FOR_NAMESPACE_QUEUE: Limit to one active build per branch

For individual deployments, you can force build execution using the Start Building Now button. Regardless of the reason why this build was queued, it will proceed.

  1. Select your project from the dashboard.

  2. in the sidebar, open Deployments.

  3. Find the queued deployment that you would like to build from the list. You can use the Status filter to help find it. You have 2 options:

    • Select the three dots to the right of the deployment and select Start Building Now.
    • Click on the deployment list item to go to the deployment's detail page and click Start Building Now.
  4. Confirm that you would like to build this deployment in the Start Building Now dialog.

Some other considerations to take into account when optimizing your builds include:

  • Understand and manage the build cache. By default, Vercel caches the dependencies of your project, based on your framework, to speed up the build process
  • You may choose to Ignore the Build Step on redeployments if you know that the build step is not necessary under certain conditions
  • Use the most recent version of your runtime, particularly Node.js, to take advantage of the latest performance improvements. To learn more, see Node.js

Prioritize production builds is available on all plans

If a build has to wait for queued preview deployments to finish, it can delay the production release process. When Vercel queues builds, we'll processes them in chronological order (FIFO Order).

For any new projects created after December 12, 2024, Vercel will prioritize production builds by default.

To ensure that changes to the production environment are prioritized over preview deployments in the queue, you can enable Prioritize Production Builds:

  1. From your Vercel dashboard, select the project you wish to enable it for
  2. Open Settings in the sidebar, and go to the Build and Deployment section of your Project Settings
  3. Under Prioritize Production Builds, toggle the switch to Enabled

The on-demand build usage is based on the amount of time it took for a deployment to build when using a concurrent build. In Billing, Elastic build machines are billed by CPU minute. Enhanced and Turbo machines are billed by build minute.

Build machine usage is priced by machine type. Standard build machines are billed only when on-demand concurrency is enabled. Elastic build machines start at $0.0035 per CPU minute.

Build machine typeStarting price
Standard (billed only when On-Demand Concurrent Builds is enabled)$0.014
Enhanced (always billed)$0.030
Turbo (always billed)$0.126
Elastic (always billed, per CPU minute)$0.0035

Elastic build machines start at $0.0035 per CPU minute. Enterprise contract pricing and discounts can vary.

On-demand concurrent builds for Standard, Enhanced, and Turbo build machines are priced in MIUs per minute of build time used and the rate depends on the number of contracted concurrent builds and the machine type.

Concurrent builds contractedCost (MIU per minute) for Standard build machinesCost (MIU per minute) for Enhanced build machinesCost (MIU per minute) for Turbo build machines
1-50.014 MIUs0.030 MIUs0.113 MIUs
6-100.012 MIUs0.026 MIUs0.098 MIUs
10+0.010 MIUs0.022 MIUs0.083 MIUs

Was this helpful?

supported.