---
title: tb build
meta:
    description: Build your Tinybird project and validate resources
---

# tb build

Builds your project and checks that all the resources are valid.

```bash
tb build

» Building project...
✓ datasources/events.datasource created
✓ endpoints/endpoint.pipe created

✓ Build completed in 0.2s
```

## Difference with tb deployment create

While similar, `tb build` and `tb deployment create` have different purposes:

- `tb build` command is a stateless command that validates project [datafiles](/forward/dev-reference/datafiles).
- `tb deployment create --check` checks that you can successfully create the deployment.
- Unlike `tb deployment create --check`, `tb build` does *not* validate external connections.
- **Exception**: [Postgres copy pipes](/forward/get-data-in/table-functions/postgresql) *are* validated with `tb build`. Secrets and DB host must be available locally in order to successfully build.

For example, when updating a data project in a workspace, `tb build` checks that the new version of your project is valid, while `tb deployment create --check` verifies that you can successfully migrate from the old version to the new one.

## Options

{% table %}
  * Option
  * Description
  ---
  * --with-connections
  * Creates data linkers for connection data sources (S3, Kafka, GCS) during build. Use this flag to enable connector data sources in branches.
  ---
  * --watch
  * Watches for changes and rebuilds automatically.
{% /table %}

## Environment support

{% table %}
  * Environment
  * Supported
  * Description
  ---
  * `--local`
  * ✓ Yes (default)
  * Builds your project locally.
  ---
  * `--cloud`
  * ✗ No
  * Use `tb deployment create --check` to validate your project against Tinybird Cloud.
  ---
  * `--branch=BRANCH_NAME`
  * ✓ Yes
  * Builds your project in a remote branch.
{% /table %}
