# Build your schema

An overview of the building blocks of a Hygraph schema, including models, fields, components, references, remote sources, enumerations, taxonomies, and variants, with links to the guide for each one.

Your schema defines the structure of the content in your project. You build it in the **Schema** builder from models, the fields you add to them, and reusable elements such as components, enumerations, and taxonomies. Hygraph generates the GraphQL Content API from your schema, so schema changes are available in the API as soon as you save them.

This section explains how to set up each part of your schema. For content modeling concepts, see [Content modeling in Hygraph](https://hygraph.com/docs/core-concepts/content-modeling/content-modeling-in-hygraph). For how each schema element appears in the GraphQL API, see the [Schema](https://hygraph.com/docs/api-reference/schema/schema-overview) section of the API Reference.

## Models and fields

| Guide | What it covers |
| --- | --- |
| [Models](https://hygraph.com/docs/developer-guides/schema/models) | Create, edit, and delete models, add fields, and customize the content form sidebar. |
| [Field types](https://hygraph.com/docs/developer-guides/schema/field-types) | The field types Hygraph supports, and when to use each one. |
| [Field configuration](https://hygraph.com/docs/developer-guides/schema/field-configuration) | Settings, validations, and advanced options for fields. |
| [Conditional fields](https://hygraph.com/docs/developer-guides/schema/conditional-fields) | Show fields to editors only when they need them. |
| [Reserved terms](https://hygraph.com/docs/developer-guides/schema/reserved-terms) | Terms you cannot use as names in your schema. |

## Schema elements

| Guide | What it covers |
| --- | --- |
| [Slug](https://hygraph.com/docs/developer-guides/schema/slug-field) | Generate URL-safe identifiers for entries from a template. |
| [Components](https://hygraph.com/docs/developer-guides/schema/components) | Define reusable groups of fields once and use them across models and content entries. |
| [References](https://hygraph.com/docs/developer-guides/schema/references) | Connect content entries across models, and choose the reference direction and cardinality. |
| [Components or references](https://hygraph.com/docs/developer-guides/schema/components-or-references) | Decide when to use a component, a reference, or both. |
| [Remote sources](https://hygraph.com/docs/developer-guides/remote-data/overview) | Add content from other systems and sources to the Hygraph API with Remote Sources, without migrating it. |
| [Configure Remote Sources](https://hygraph.com/docs/developer-guides/remote-data/remote-sources) | Configure Remote Sources to add content from other systems to the Hygraph API without migrating it. |
| [Remote fields vs top-level remote fields](https://hygraph.com/docs/developer-guides/remote-data/remote-field) | Choose between remote fields and top-level remote fields to fetch data from a remote source. |
| [Add remote data to your model](https://hygraph.com/docs/developer-guides/remote-data/remote-content) | Add remote fields to a model, or use top-level remote fields to fetch data unrelated to Hygraph. |
| [Remote data troubleshooting](https://hygraph.com/docs/developer-guides/remote-data/troubleshooting) | Troubleshoot remote data errors and known issues, and refetch your data. |
| [Remote data examples](https://hygraph.com/docs/developer-guides/remote-data/remote-data-examples) | See examples of working with Remote Sources, remote fields, and top-level remote fields. |
| [Enumerations](https://hygraph.com/docs/developer-guides/schema/using-enumerations) | Create predefined sets of values that editors select from. |
| [Taxonomies](https://hygraph.com/docs/developer-guides/schema/taxonomies) | Classify content with terms arranged in a hierarchy. Taxonomies are an enterprise feature. |
| [Best practices for taxonomies](https://hygraph.com/docs/developer-guides/schema/taxonomies-best-practices) | Follow best practices for setting up taxonomies in Hygraph. |
| [Variants](https://hygraph.com/docs/developer-guides/schema/variants) | Deliver personalized versions of content entries to user Segments. |

## Reuse schema from other projects

| Guide | What it covers |
| --- | --- |
| [Import schema elements](https://hygraph.com/docs/developer-guides/schema/import-schema) | Import models, components, remote sources, enumerations, and taxonomies from another project or template. |
