---
title: How can I add a custom build step to my project?
description: Learn how to add a custom build step for your project.
url: /kb/guide/how-can-i-add-a-custom-build-step-to-my-project
canonical_url: "https://vercel.com/kb/guide/how-can-i-add-a-custom-build-step-to-my-project"
published: 2025-11-03
last_updated: 2025-11-10
authors: Allen Hai
related:
  - /docs/platform/projects
  - /docs/concepts/deployments/troubleshoot-a-build
  - /docs/build-step
install_vercel_plugin: npx plugins add vercel/vercel-plugin
---
<!-- docsgraph:related -->
## Related pages

> **For AI agents:** Follow these links to understand how this page connects to the rest of the Vercel ecosystem. For the full cross-link map (inbound, outbound, prerequisites, and semantic neighbors), see the .graph.md link below.

- [vercel build](https://vercel.com/docs/cli/build?from=related) — Learn how to build a Vercel Project locally or in your own CI environment using the vercel build CLI command.
- [Build Features](https://vercel.com/docs/builds/build-features?from=related) — Learn how to customize your deployments using Vercel's build features.
- [Build System](https://vercel.com/docs/fundamentals/builds?from=related) — Learn how Vercel transforms your source code into optimized assets ready to serve globally.
- [Builds](https://vercel.com/docs/builds?from=related) — Understand how the build step works when creating a Vercel Deployment.
- [Build Image](https://vercel.com/docs/builds/build-image?from=related) — Learn about the container image used for Vercel builds.
- [Per-environment and per-branch Build Commands on Vercel](https://vercel.com/kb/guide/per-environment-and-per-branch-build-commands?from=related) — Customize your commands for specific behaviors based on branch, environment, and more.
- [Dynamically run build commands](https://vercel.com/kb/guide/dynamic-build-commands?from=related) — Learn how to run different scripts based on the environment or branch.
- [How can I use the Vercel CLI for custom workflows?](https://vercel.com/kb/guide/using-vercel-cli-for-custom-workflows?from=related) — You can use the Vercel CLI to deploy any application, including custom git providers and restricted source code.
- [How do I use the "Ignored Build Step" field on Vercel?](https://vercel.com/kb/guide/how-do-i-use-the-ignored-build-step-field-on-vercel?from=related) — Instructions on how to use the "Ignored Build Step" field to programmatically prevent a new deployment from being built.
- [Can I deploy a locally built Next.js app to Vercel?](https://vercel.com/kb/guide/deploying-locally-built-nextjs?from=related) — Learn how to deploy a locally built Next.js application to Vercel.

Full cross-link map for this page: [/kb/guide/how-can-i-add-a-custom-build-step-to-my-project.graph.md](/kb/guide/how-can-i-add-a-custom-build-step-to-my-project.graph.md)
<!-- /docsgraph:related -->


[Projects](https://vercel.com/docs/platform/projects) with advanced build requirements may demand several steps of execution before the final assets are output into the destination directory. Read on to learn how Vercel supports advanced project builds.

## Custom Build Script

[Projects](https://vercel.com/docs/platform/projects) on Vercel are built in an [Amazon Linux 2](https://vercel.com/docs/concepts/deployments/troubleshoot-a-build#build-image) environment and are able to run custom scripts during the build. All that's required is a `package.json` file at the project root with a `scripts.build` key like the following:

```json
{
  "scripts": {
    "build": "wget example.com/custom-binary.tar.gz;tar -zxvf ./custom-binary.tar.gz;./custom-binary.tar.gz;"
  }
}
```

You can also set a custom build command without creating a `package.json` file through your Project's settings in the [dashboard](https://vercel.com/docs/build-step#customizing-build-settings).

You can find a list of frequently asked questions about the build environment in the [documentation](https://vercel.com/docs/concepts/deployments/troubleshoot-a-build#build-image).