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

# What is a project?

export const DefinitionDescription = ({children}) => <dd className="definition-description">{children}</dd>;

export const DefinitionTerm = ({children}) => <dt className="definition-term">{children}</dt>;

export const DefinitionList = ({children}) => <dl className="definition-list">{children}</dl>;

A project brings together the code, flows, and assets that make up an AI or machine learning system, so they're developed, versioned, and deployed as one coherent unit rather than as scattered pieces. Projects add lightweight structure on top of the [flows](/docs/platform/concepts/what-is-a-workflow) you already run.

## Why projects matter

An AI or ML system is built from code, data, and models that each evolve on their own schedule. Code changes through commits and pull requests; data refreshes on a pipeline; models get retrained or swapped. A project gives all of these a shared home with versioning and continuous delivery, so you can iterate rapidly across branches and still bring everything together into a working system you can keep improving.

## What a project contains

A project is defined in a Git repository and centers on a configuration file, `obproject.toml`, that names the project and the Anaconda Platform organization it belongs to:

```toml theme={null}
platform = "<PLATFORM_URL>"
project = "fraud_detection"
title = "Fraud Detection"
```

A project deploys into a [perimeter](/docs/platform/concepts/what-is-a-perimeter), and a perimeter can host many projects. Different branches of a project can target different perimeters, so `main` can deploy to a production perimeter while feature branches deploy to a development one.

Each project tracks the following assets:

<DefinitionList>
  <DefinitionTerm>
    Code
  </DefinitionTerm>

  <DefinitionDescription>
    The project's Git repository. The platform tracks its branches and deployment history automatically, so you can see exactly which version of the code each deployment came from.
  </DefinitionDescription>

  <DefinitionTerm>
    Data
  </DefinitionTerm>

  <DefinitionDescription>
    The datasets a project produces or consumes.
  </DefinitionDescription>

  <DefinitionTerm>
    Models
  </DefinitionTerm>

  <DefinitionDescription>
    The models a project produces or consumes.
  </DefinitionDescription>
</DefinitionList>

Assets are references, not storage. An asset points at the code, data, or model itself, wherever it lives: the Git repository, an artifact a flow produced in the [data plane](/docs/platform/architecture), or an external system the project connects to.

Data and model assets add a layer of metadata and tracking on top of the artifacts a flow produces. They answer what a project's key inputs and outputs are, which flows produce and consume them, and when each was last refreshed. Assets are scoped to a project branch, so you can evaluate different models or datasets in isolation and compare them across branches.

## Projects and CI/CD

Because a project lives in a Git repository, it fits naturally into continuous delivery. Pushing a change can trigger an update to the project on the platform. This is how a project moves from open-ended experimentation toward a production system, following the same software engineering practices you'd use for any codebase.

## Working with projects

For instructions on creating and structuring a project, see [Working with projects](/docs/platform/guides/projects/working-with-projects).
