# Apps, builds and deploys

Source: /docs/concepts/apps-builds-deploys

Three words show up all over the dashboard. Knowing them makes the rest of the docs clear.

## The three things [#the-three-things]

* **App** — the record you create when you import a repository or a ZIP. It has a name, a subdomain, settings, and optionally a database. Creating an app builds and runs nothing on its own.
* **Build** — turning your source into a runnable image. Each build scans the source, builds the image, and pushes it. Builds have their own history.
* **Deploy** — taking a built image and making it live at your app's URL, replacing whatever ran before.

Pressing **DEPLOY** runs a build and then a deploy as one pipeline.

## The deploy pipeline [#the-deploy-pipeline]

A run moves through these stages, shown live:

`QUEUED` → `BUILDING` → `SCANNING` → `PUSHING` → `BUILT` → `PROVISIONING DB` → `DEPLOYING` → `LIVE`

`PROVISIONING DB` only appears on the first deploy of an app that has a database. If a run stops early it shows `FAILED`, or **Blocked by scan** when the security scan refused it. While going live you also see rollout stages: **Placing your app**, **Downloading image**, **Starting your app**, **Connecting your domain**.

Delivery status on the app summarises where you stand: **Not deployed**, **Up to date**, **Changes pending**, or **Deploy failed**.

## App states [#app-states]

The lifecycle label on an app is one of:

* **pending** — created, not yet deployed.
* **live** — running and serving its URL.
* **stopped** — you stopped it; the URL stops serving. Its data and settings are kept, and you can restart it.
* **grace** — a short holding state during platform housekeeping.
* **suspended** — stopped by an administrator. You cannot restart it yourself; contact support.
* **deleted** — removed. This frees the subdomain and cannot be undone.

## Stopped versus deleted [#stopped-versus-deleted]

**Stopped** takes the app off the web but keeps everything — restart it any time from **Actions**. **Delete** is permanent: it removes the app, its data, and frees the subdomain. Deleting asks you to type the app name to confirm.

## Restart versus redeploy [#restart-versus-redeploy]

* **Restart** runs the same image again — use it to clear a stuck process. It does not rebuild.
* **Deploy** (redeploy) builds your current source into a new image and ships it — use it after you change code or [environment variables that need a rebuild](/docs/concepts/environment-variables).

See [logs and status](/docs/concepts/logs-and-status) for reading what a running app is doing.