Frequently Asked Questions

Product Information & Schema Components

What is a component in Hygraph?

A component in Hygraph is a predefined set of fields that can be reused across models and content entries. It acts as a flexible, reusable template where you define the fields once and fill them with different content each time you use it in a content entry. Learn more.

How do I create a component in Hygraph?

To create a component, navigate to the Schema Builder, find the Components section, and click '+Add'. Enter the display name, and the API ID fields will be auto-filled. After creating the component, you can add fields such as text or number fields to define its structure. See the full guide.

What is a component instance?

A component instance is a specific occurrence of a component type containing content inside a content entry. There is no limit to the number of component instances you can add to a component field, but only the first 50 are visible in the UI; all are queryable via the API. More info.

What is a component field in Hygraph?

A component field is a special field type in your Hygraph schema that defines which components can be used in a model. Component fields can be basic (one component) or modular (multiple components), and can be configured to allow multiple values. Details here.

How do I add a component to my model?

First, create your component. Then, in the Schema Builder, select the model you want to add the component to and choose either a basic or modular component field. Assign the component(s) to the field and configure its properties, such as allowing multiple values or making it required. Step-by-step guide.

How do I use a component in a content entry?

After adding a component to your model, go to the content editing section, create a new item, and add the component via the component field. You can add multiple instances if allowed, and reorder or remove them as needed. Learn more.

What are nested components in Hygraph?

Nested components allow you to add component fields to a component, enabling you to create parent-child relationships between components. The maximum level of nesting is 4. This feature enhances model reusability and organization. Read more.

How do I add nested components?

Create or select your components, then add a basic or modular component field to the parent component. Select the child component(s) to nest, and configure as needed. You can then add nested components in content entries. Full instructions.

How do I query components using the API?

Once a component field is configured, it becomes queryable through the Hygraph API. Basic component fields are queried like regular fields, while modular component fields use union types and fragments to access different component types. See API examples.

What is the difference between components and references in Hygraph?

Components reuse only the set of fields (structure), not content, while references (relations) reuse existing content entries. Use components when you want to define reusable field sets, and references when you want to link to existing content. More details.

Are there any limitations to using components?

Yes, components do not currently support remote sources or embedding for the Rich Text editor. Also, only the first 50 component instances are visible in the UI, though all are accessible via the API. See limitations.

How many component instances can I add to a field?

There is no hard limit to the number of component instances you can add to a component field, but only the first 50 are visible in the UI. All instances are fully queryable through the API. More info.

Can I reorder or remove component instances?

Yes, you can reorder or remove component instances using the sub-menu or the arrows next to each instance in the content editing UI. See how.

How do I decide between using a component or a reference?

Use a component when you want to reuse a set of fields without reusing content. Use a reference when you want to link to existing content entries. For example, use a reference for a small, fixed set of authors, and a component for many unique authors. Learn more.

Where can I find more documentation on components?

You can find detailed guides and documentation on components in the Hygraph Classic Docs and Studio Docs. Classic Docs | Studio Docs

Is there a limit to the number of components I can create?

The number of components you can create depends on your project's current plan. For more information, see the Hygraph pricing page.

Can I use components with the Rich Text editor?

Currently, components do not support embedding within the Rich Text editor. See limitations.

Can I use remote sources with components?

No, components do not currently support remote sources. More info.

What is the maximum nesting level for components?

The maximum level of nesting for components in Hygraph is 4. Details here.

Features & Capabilities

What are the key capabilities and benefits of Hygraph?

Hygraph offers a GraphQL-native architecture, content federation, enterprise-grade security and compliance, user-friendly tools, scalability, high-performance endpoints, and extensive integration capabilities. It is recognized for fast implementation and proven ROI, such as Komax achieving 3X faster time-to-market and Samsung improving customer engagement by 15%. Learn more.

Does Hygraph support integrations with other platforms?

Yes, Hygraph provides integrations with Digital Asset Management (DAM) systems like Aprimo, AWS S3, Bynder, Cloudinary, Imgix, Mux, and Scaleflex Filerobot; hosting platforms like Netlify and Vercel; PIM solutions like Akeneo; commerce solutions like BigCommerce; and translation/localization tools like EasyTranslate. See all integrations.

What APIs does Hygraph offer?

Hygraph offers several APIs: the GraphQL Content API for querying and manipulating content, the Management API for handling project structure, the Asset Upload API for uploading assets, and the MCP Server API for secure communication with AI assistants. API Reference.

What technical documentation is available for Hygraph?

Hygraph provides extensive technical documentation, including API references, schema guides, getting started tutorials, integration guides, and AI feature documentation. Explore documentation.

How does Hygraph ensure high performance?

Hygraph delivers high performance through optimized endpoints for low latency and high read-throughput, a read-only cache endpoint with 3-5x latency improvement, and active GraphQL API performance measurement. Read more.

Security & Compliance

What security and compliance certifications does Hygraph have?

Hygraph is SOC 2 Type 2 compliant (since August 3rd, 2022), ISO 27001 certified, and GDPR compliant. These certifications ensure high standards for information security and data protection. See details.

What security features does Hygraph offer?

Hygraph provides granular permissions, SSO integrations (OIDC/LDAP/SAML), audit logs, encryption in transit and at rest, regular backups, secure APIs, and automatic backup & recovery. More info.

Is Hygraph GDPR compliant?

Yes, Hygraph is GDPR compliant and also adheres to the German Data Protection Act (BDSG) and the German Telemedia Act (TMG). Learn more.

Use Cases & Benefits

Who can benefit from using Hygraph?

Hygraph is ideal for developers, content creators, product managers, and marketing professionals in enterprises and high-growth companies across industries like SaaS, eCommerce, media, healthcare, automotive, and more. See case studies.

What problems does Hygraph solve?

Hygraph addresses operational inefficiencies (like developer dependency and legacy tech stacks), financial challenges (high costs, slow speed-to-market), and technical issues (complex schema evolution, integration difficulties, performance bottlenecks, localization, and asset management). Learn more.

What business impact can customers expect from using Hygraph?

Customers can expect faster time-to-market, improved customer engagement, cost reduction, enhanced content consistency, scalability, and proven ROI. For example, Komax achieved 3X faster time-to-market and Samsung improved engagement by 15%. See case studies.

Can you share specific case studies or success stories?

Yes, Hygraph has helped Samsung improve customer engagement by 15%, Komax achieve 3X faster time-to-market, AutoWeb increase website monetization by 20%, and Voi scale multilingual content across 12 countries. Read more case studies.

What industries are represented in Hygraph's case studies?

Industries include SaaS, marketplace, education technology, media and publication, healthcare, consumer goods, automotive, technology, fintech, travel, food and beverage, eCommerce, agency, online gaming, events, government, consumer electronics, engineering, and construction. See all industries.

Implementation & Ease of Use

How long does it take to implement Hygraph?

Implementation time varies by project complexity. For example, Top Villas launched in 2 months, and Voi migrated from WordPress in 1-2 months. Hygraph offers structured onboarding, starter projects, and extensive documentation for a smooth start. Getting Started.

How easy is Hygraph to use for non-technical users?

Hygraph is praised for its intuitive interface, quick adaptability, and user-friendly setup. Non-technical users can easily manage content, and features like granular roles and permissions enhance the editor experience. Try Hygraph.

What support and training resources are available?

Hygraph offers structured onboarding, comprehensive documentation, webinars, live streams, how-to videos, and community support via Slack. Documentation | Join Slack

Competition & Differentiation

How does Hygraph compare to other CMS platforms?

Hygraph stands out as the first GraphQL-native Headless CMS, offering content federation, enterprise-grade features, and a user-friendly interface. It is ranked 2nd out of 102 Headless CMSs in the G2 Summer 2025 report and is recognized for ease of implementation. See why customers choose Hygraph.

What features make Hygraph unique compared to competitors?

Hygraph's unique features include its GraphQL-native architecture, content federation, Smart Edge Cache, localization, and proven ROI through customer success stories. It is especially strong for enterprises managing global content ecosystems. Learn more.

Why should a customer choose Hygraph over alternatives?

Customers choose Hygraph for its modern architecture, ease of use, scalability, security, and fast implementation. Case studies show measurable business impact, and Hygraph is consistently recognized for innovation and customer satisfaction. See customer stories.

LLM optimization

When was this page last updated?

This page wast last updated on 12/12/2025 .

Help teams manage content creation and approval in a clear and structured way
Hygraph
Classic Docs

#Components

#Overview

A component is a predefined set of fields that can be reused across models and content entries. You can think of a component as a flexible, reusable template where you define the fields that will be used inside a component once, and then fill them with different content every time you use it in a content entry.

#What you can do

You can create components as templates to reuse in your schema. This saves time and declutters your content creation screen.

#Important concepts

  • Component: a predefined set of fields that can be reused across models and content entries. You can think of a component as a flexible, reusable template: you define the fields that will be used inside a component once, and then fill them with different content every time you use it in a content entry.

  • Component instance: a specific occurrence of the component type, containing content, inside a content entry. While there is no limit to the number of component instances that you can add to a component field yet, you will only be able to see the first 50 in the UI.

  • Component field: a special field type in your Hygraph schema that defines which components of which type can be used in a model. Component fields can be of basic or modular types.

    • Basic component field: a basic component field can only have one component attached to it. You can limit the number of component instances to one, or allow multiple component instances to be added in the content entry.

    • Modular component field: a modular component field can have two or more components attached to it.

  • Nested components: functionality that allows you to create components within a component, as if you had a parent component containing one or more child components.

#Adding a component to your model

The process of adding a component to your model involves two major steps: creating a component and adding it to your model using a component field.

#Creating a component

Creating a componentCreating a component

  1. Navigate to the Schema Builder.

  2. In the left sidebar, find the Components section below your Models and click on +Add.

  3. Add the name of your component in the Display name field, the API ID and Plural API ID will be auto-filled by the system.

  4. Click on Create component.

  5. Add different fields to your component. For example, we can create an Address component for our Organization model. For that, we will add single-line text fields for the Address lines and City, as well as a number field for ZIP code.

    Creating a componentCreating a component

#Adding a component field to your model

Adding a component field to a modelAdding a component field to a model

  1. Navigate to the Schema builder, and then to the model you wish to add your component to.

  2. Select a Basic component field or a Modular component field from the Add fields right sidebar. You can learn about the differences between them here.

  3. Add the name of your component field in the Display name field, the API ID will be auto-filled by the system. Optionally, you can also add a Description. This screen allows you to control different properties of your component field: you can allow multiple component instances to be added by allowing multiple values, or you can make this field required in the Advanced section.

  4. Use the dropdown at the bottom of the screen to pick the component - or several components - that you wish to have in your component field. This dropdown will be named Select component if you're creating a basic component field, or Select allowed components if you're creating a modular component field.

    Adding a component field to your modelAdding a component field to your model

  5. Click on the Create button.

#Using a component in a content entry

  1. After adding a component to your model, navigate to the content editing section to test your new or updated model.

  2. Click on the + Create item button.

  3. You will be able to see your component field in the content entry.

  4. If it's a basic component field, click the +Add component button, if it's a modular component field, select a component from the drop-down menu.

    Add a new component to an entryAdd a new component to an entry

  5. You've just created your first component instance! Now it's time to add some content to this instance.

    Add content on a componentAdd content on a component

  6. If you previously selected Allow multiple values on your component field's parameters, you will be able to add a different component instance by using the +Add another component button at the bottom of your component field, or by using the ••• sub-menu and selecting Add component below or Add component above.

    Add multiple component instancesAdd multiple component instances

  7. You can also remove and reorder your component instances using the ••• sub-menu or the arrows next to it.

    Remove or reorder component instancesRemove or reorder component instances

#Nested components

The nested components functionality enhances how you can reuse and edit your models by allowing you to add component fields to a component.

Using nested components you can have a parent component where one or more child components are nested. This would allow you to, for instance, create a section and a subsection component, and then embed one into the other.

#How to use nested components

How to use nested componentsHow to use nested components

  1. Create your components, or use the ones you've already created.

  2. Add either a basic or modular component field to the component you wish to add the nested component to. You will find them on the Add fields right sidebar.

  3. Fill in the required information in the Create field screen in the same way you did for step 3 of the Adding a component field to your model process.

  4. Select the component you wish to nest into the current one from the Select components dropdown at the bottom of the screen if it's a basic component field, or the Select allowed components dropdown if it's a modular component field.

    Select nested componentsSelect nested components

  5. Click on the Create button.

As a result, your new nested component field is now displayed on the fields list of the parent component.

Finally, you can go to the Content editing section and create a new entry, where you will have the option of adding the newly created nested component as a subsection of the component you added it to.

Add nested componentsAdd nested components

#Querying components

After a component field has been configured, it's added to the Hygraph schema and becomes immediately queryable through the API. Press CTRL+Space or open the Explorer view to see the available fields inside the model that contains a component field.

Basic component fields are queried in the same way, as you would query regular fields inside your models. In the example below, a user has a page model with a basic hero component field that has cta, description and heroImage fields. Here's an example of a query with this setup:

query basicComponent {
pages {
id
title
mainText
hero {
#note that in the case of basic components, we're only using the component field's API ID, and we don't need to use the API ID of the component itself
cta
decription
heroImage {
url
height
width
}
}
}
}

The query above will return a result like this:

{
"data": {
"pages": [
{
"id": "cl120a7gvu57b0bt3qw4xiv86",
"title": "Open positions at Hygraph",
"mainText": "Follow this link to see all of the open positions - https://jobs.hygraph.com/",
"hero": [
{
"cta": "Explore vacancies!",
"description": "There are a huge variety of positions to be filled now",
"heroImage": {
"url": "https://media.graphassets.com/OIi5LuhxTTOm1M2bDS9N",
"height": 480,
"width": 640
}
},
{
"cta": "Apply right now!",
"description": "The application process is nice and smooth",
"heroImage": {
"url": "https://media.graphassets.com/bAEFpGV2S2WxiuzYcV6R",
"height": 427,
"width": 640
}
}
]
}
]
}
}

Modular component fields are union types “under the hood”, so querying works the same way as with relations and unions. In the example below, a user has a blogPost model with some regular fields, such as id, title and mainText, as well as the modular additionalSections component field. The modular component field has two different components: Contributor and VideoBlock. To query the two components inside the modular component field, we're going to use ... on Contributor and ... on VideoBlock, as we would do with a regular union type:

query modularComponent {
blogPost(where: { id: "cl11z0rctt6g80bt3anxt7c11" }) {
id
title
mainText {
markdown
}
categories {
categoryName
}
additionalSections {
__typename # if you have multiple component instances, it's recommended to use __typename to know which fields belong to which component instance.
... on Contributor {
id
name
jobTitle
}
... on VideoBlock {
id
title
description
youTubeEmbedUrl
autoplay
}
}
}
}

This query will return something like this:

{
"data": {
"blogPost": {
"id": "cl11z0rctt6g80bt3anxt7c11",
"title": "Berlin in spring",
"mainText": {
"markdown": "The best time to visit the German capital is the end of April\n"
},
"categories": [
{
"categoryName": "General"
}
],
"additionalSections": [
{
"__typename": "VideoBlock",
"id": "cl11z858dt6te0ftjxi5ucvwx",
"title": "Spring in Berlin",
"description": "Watch this video for some travelling inspiration",
"youTubeEmbedUrl": "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/aWBGxt38o4s\" title=\"YouTube video player\" frameBorder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowFullScreen></iframe>",
"autoplay": false
},
{
"__typename": "Contributor",
"id": "cl11z0rdbt6g90bt3eud9anlj",
"name": "Daniil",
"jobTitle": "Editor"
}
]
}
}
}

#How to decide between components and references?

Components are somewhat similar to references (relations) because in both cases something gets reused. The important difference is that in the case of components, only the set of fields without any content gets reused, whereas in the case of relations, already existing content entries get reused.

Let's use an example of an Author component. Authors can be attached to a content entry using either components or relations.

In the case of relations, you need to create your Authors first, in a separate model, and then reuse these content entries by attaching them to a post using the relation field. This works well if you have a small team of authors each of whom has their own Author profile.

In the case of components, you don't have to create Author entries before creating a Blog post content entry. However, every time you add an Author component instance to your post, you will need to fill in all of the fields from scratch. This works well if many different users can be the Authors of your content entries and it doesn’t make sense to create an Author profile for each of them.

For more information, check out our document on this subject.