# How builds work

A build turns source code into a container image that Koo can deploy. Deploys [from Git](/docs/apps/deploy-from-git) start with a build; container deploys bring their own image and skip it.

## Container deploys skip the builder

When you [deploy a container](/docs/apps/deploy-a-container), you bring the image and Koo ships it directly. The resulting [deployment](/docs/apps/deployments-and-rollback) goes from queued to deploying to ready with no building phase — nothing else on this page applies to it.

## Repo builds

Each [deploy from Git](/docs/apps/deploy-from-git) starts with a build:

1. 
2. 
3.

Build output lands on the deployment in the deploy timeline, and a failed build fails the deployment before anything reaches your service. Deploys created [with AI](/docs/apps/deploy-with-ai) (Coming soon) will likewise produce an image before they ship.

## Build limits

Each plan caps how many builds and deploys you can run per hour; requests over the cap are rejected with a `quota_exceeded` error.
