> ## Documentation Index
> Fetch the complete documentation index at: https://ona.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Create your first project

> Connect a repository to Ona so you can launch environments, configure Dev Containers, and run Automations against it.

A project connects a repository to Ona. It defines which runner provisions your environments, which environment classes are available, and what configuration files to use. Every environment and every Automation starts from a project.

## Prerequisites

* An Ona account on any plan
* At least one runner in your organization. Ona Cloud includes a runner by default. If you're self-hosting, [deploy a runner](/ona/runners/overview) on [AWS](/ona/runners/aws/overview) or [GCP](/ona/runners/gcp/overview) first.
* A repository URL (GitHub or GitLab)

## Create the project

1. From the Ona dashboard, click **Projects** in the sidebar.
2. Click **New Project**.

<img src="https://mintcdn.com/gitpod-13c83c2b/5WZVG2ykORKKtocU/images/docs/ona/projects/new-project.png?fit=max&auto=format&n=5WZVG2ykORKKtocU&q=85&s=5fd00970c5d11a43fedc01d6baf4d287" alt="Create a project dialog with repository selector, project name, and environment classes" width="1436" height="1172" data-path="images/docs/ona/projects/new-project.png" />

3. Search for or browse to your repository.
4. Enter a project name.
5. Select at least one environment class. You can add up to 30 classes per project.
6. Click **Create**.

## Configure your environment

Every project reads two configuration files from your repository root. If a `devcontainer.json` doesn't exist yet, Ona generates a default one. Adding your own makes the environment match your project's needs.

* **`devcontainer.json`**: defines the base image, language runtimes, tools, and VS Code extensions. This is the [Dev Container](https://containers.dev/) standard, so the same file works in VS Code, GitHub Codespaces, and Ona. See [configure your Dev Container](/ona/configuration/devcontainer/getting-started) for a walkthrough.
* **`automations.yaml`**: defines startup tasks (install dependencies, seed databases) and long-running services (dev servers, databases). These run automatically when an environment starts. See [tasks and services](/ona/configuration/tasks-and-services/overview) for examples.

By default, Ona looks for `automations.yaml` at the repository root. To use a different path (e.g. `.ona/automations.yaml`), set the **Automations file path** in your project settings.

Every environment and every Automation launched from this project uses the same configuration.

## Verify it works

1. Open the project from your dashboard.
2. Click **Create Environment**.
3. Wait for the environment to build and start.
4. Confirm your tools, dependencies, and services are available.

If the environment builds and your test suite passes, the project is ready for Automations.

## What's next

* [Create your first Automation](/ona/create-first-automation) to run workflows against this project
* [Set up your first environment](/ona/configuration/devcontainer/getting-started) to configure `devcontainer.json`
* [Share the project](/ona/projects/project-sharing) with your team
* [Projects reference](/ona/projects/overview) for environment classes, recommended editors, and advanced configuration
