---
title: Projects
description: The link between a GitHub repository and your deployments.
order: 1
---

A **project** is the core unit of work in Atlasflow. Each project maps to a single GitHub repository and holds the configuration Atlasflow uses to build and run it.

## What a project contains

| Property               | Description                                                                            |
| ---------------------- | -------------------------------------------------------------------------------------- |
| **Name**               | Human-readable name, defaults to the repository name.                                  |
| **Slug**               | URL-safe identifier used in the dashboard and API.                                     |
| **GitHub repository**  | The connected repository, in `owner/name` form.                                        |
| **Root directory**     | Subdirectory containing the app to deploy. Defaults to `/`.                            |
| **Dockerfile path**    | Path to the Dockerfile, relative to the root directory. Defaults to `Dockerfile`.      |
| **Default branch**     | The branch whose pushes trigger deployments.                                           |
| **Build machine tier** | CPU and memory allocated to builds. See [Build machines](/docs/guides/build-machines.md). |

A project also owns its [environment variables](/docs/guides/environment-variables.md), [custom domains](/docs/networking/custom-domains.md), and the history of its [deployments](/docs/concepts/deployments.md).

## One project per repository

Projects map one-to-one to a repository. To deploy multiple apps from a single repository (a monorepo), create multiple projects and point each one at a different [root directory](/docs/guides/monorepos.md).

## Project settings

You can change a project's configuration anytime from the project **Settings** pages in the dashboard. Updating the root directory, Dockerfile path, default branch, or build machine tier affects the next deployment, not deployments that have already run.

If repository access changes or the GitHub App installation is removed, reconnect GitHub from project settings so Atlasflow can keep cloning your code and receiving push events.

## Next steps

- [Configuration](/docs/guides/configuration.md): change build paths, branch, and more.
- [Deployments](/docs/concepts/deployments.md): what happens when a project deploys.
- [Environment variables](/docs/guides/environment-variables.md): build and runtime configuration.