# Project

Your Hypertune project contains your:

* [Schema](https://docs.hypertune.com/concepts/schema)
  * Flag definitions
  * Input types for flag targeting logic, e.g. `User`, `Organization`, `Environment`
  * [Event types](https://docs.hypertune.com/concepts/event-types), e.g. `SignUpEvent`, `PurchaseEvent`
* [Logic](https://docs.hypertune.com/concepts/logic)
* [Experiments](https://docs.hypertune.com/concepts/experiments)
  * [A/B/n tests](https://docs.hypertune.com/concepts/a-b-n-tests)
  * [Multivariate tests](https://docs.hypertune.com/concepts/multivariate-tests)
  * [AI loops](https://docs.hypertune.com/concepts/ai-loops)
  * [Progressive rollouts](https://docs.hypertune.com/concepts/progressive-rollouts)
* [Analytics dashboards](https://docs.hypertune.com/concepts/analytics-views)
  * [Funnels](https://docs.hypertune.com/concepts/funnels)
  * [Tables](https://docs.hypertune.com/concepts/tables)

All of these are saved together as a single commit in the [Git-based version history](https://docs.hypertune.com/concepts/git-based-version-control) for your project.

A new commit is created on your main branch any time you save new changes.

Hypertune uses the latest commit on your main branch when you consume your flags.

You consume your flags via:

* One of the SDKs
* The [GraphQL API](https://docs.hypertune.com/concepts/graphql-api)
