# Project

Projects provide complete isolation of feature stores at the infrastructure level. This is accomplished through resource namespacing, e.g., prefixing table names with the associated project. Each project should be considered a completely separate universe of entities and features. It is not possible to retrieve features from multiple projects in a single request. We recommend having a single feature store and a single project per environment (`dev`, `staging`, `prod`).

![](/files/wH3xsVn3cOVFXE0Un63H)

Users define one or more [feature views](/getting-started/concepts/feature-view.md) within a project. Each feature view contains one or more [features](/getting-started/concepts/feature-view.md#field). These features typically relate to one or more [entities](/getting-started/concepts/entity.md). A feature view must always have a [data source](/getting-started/concepts/data-ingestion.md), which in turn is used during the generation of training [datasets](/getting-started/concepts/feature-retrieval.md#dataset) and when materializing feature values into the online store.

The concept of a "project" provide the following benefits:

**Logical Grouping**: Projects group related features together, making it easier to manage and track them.

**Feature Definitions**: Within a project, you can define features, including their metadata, types, and sources. This helps standardize how features are created and consumed.

**Isolation**: Projects provide a way to isolate different environments, such as development, testing, and production, ensuring that changes in one project do not affect others.

**Collaboration**: By organizing features within projects, teams can collaborate more effectively, with clear boundaries around the features they are responsible for.

**Access Control**: Projects can implement permissions, allowing different users or teams to access only the features relevant to their work.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.feast.dev/getting-started/concepts/project.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
