What field types does Hygraph support for building my schema?
Hygraph supports a wide range of field types for schema design, including String (single line, multi line, markdown, slug), Rich Text, Integer, Float, Boolean, Date, DateTime, JSON, Asset, Color, Location, Enumerations, Taxonomies, Reference (one-way and two-way), Union, and Remote fields (GraphQL and REST). Each field type is designed to handle specific data structures and use cases. For detailed examples and code snippets, refer to the Field Types documentation. Note: Not all field types support every advanced configuration; see documentation for details.
How does the Rich Text field type work in Hygraph?
The Rich Text field type in Hygraph allows you to store and render advanced content, supporting multiple output formats: raw, HTML, markdown, text, and JSON (when embeds are enabled). It provides an advanced textarea with tools for headings, links, tables, images, and lists. If you enable multiple values for Rich Text fields, you cannot mark the field as required. For more, see the Rich Text documentation. Note: JSON output is only available when embeds are enabled.
What are Enumerations and Taxonomies in Hygraph schemas?
Enumerations (enums) are predefined lists of values defined in your GraphQL schema and referenced by content models. Taxonomies are hierarchical groups of terms, also defined in your schema and referenced by models. Both support multiple values, but if multiple values are enabled, the field cannot be marked as required. For more, see Enumerations and Taxonomies documentation. Note: Not all field types support required status when multiple values are enabled.
How do references and relations work in Hygraph?
References (relations) connect models together and can be one-way (unidirectional) or two-way (bidirectional). One-way references exist only on the referencing model, while two-way references are configured on both models and can be queried from either side. Two-way references support one-to-one, one-to-many, many-to-one, and many-to-many relationships. For more, see the Reference field documentation. Note: Field visibility options are not available for Reference fields.
What are Remote fields in Hygraph and how are they used?
Remote fields allow you to connect external data sources (GraphQL or REST) to your Hygraph models. GraphQL remote fields require a configured remote source and let you specify the query entrypoint. REST remote fields require a REST remote source and allow you to specify the API path for GET or POST requests. For more, see Remote fields documentation. Note: Remote fields require proper configuration of remote sources and may not support all field visibility options.
How does field visibility work in Hygraph?
Field visibility in Hygraph can be set to Read/Write (default), Read Only, Hidden, or API Only. These options control how fields appear in the UI and API, but do not affect permissions or security. Field visibility options are available for all field types except References. For more, see the Field Visibility documentation. Note: Field visibility should not be used for security or permissions purposes.
Features & Capabilities
What integrations does Hygraph support?
Hygraph offers integrations with Digital Asset Management (DAM) systems (e.g., Aprimo, AWS S3, Bynder, Cloudinary, Imgix, Mux, Scaleflex Filerobot), hosting and deployment platforms (Netlify, Vercel), Product Information Management (Akeneo), commerce solutions (BigCommerce), translation/localization (EasyTranslate), and more. For the full list, visit the Hygraph Marketplace. Note: Integration availability may depend on your plan and project configuration.
What APIs does Hygraph provide?
Hygraph provides several APIs: the GraphQL Content API (for querying and manipulating content), the Management API (for project structure, accessible via the Management SDK), the Asset Upload API (for uploading files), and the MCP Server API (for secure AI assistant communication). For more, see the API Reference documentation. Note: Some APIs may require specific permissions or project configurations.
What technical documentation is available for Hygraph?
Hygraph offers comprehensive technical documentation, including API references, schema guides, getting started tutorials, integration guides (e.g., Mux, Akeneo, Auth0), and AI feature documentation. Access these resources at Hygraph Documentation. Note: Documentation is available for both Studio and Classic versions; ensure you are referencing the correct version for your project.
Performance, Security & Compliance
How does Hygraph ensure high performance for content delivery?
Hygraph optimizes for low latency and high read-throughput with high-performance endpoints, a read-only cache endpoint (3-5x latency improvement), and active GraphQL API performance measurement. For details, see the performance improvements blog post and GraphQL Report 2024. Note: Performance may vary based on project complexity and configuration.
What security and compliance certifications does Hygraph have?
Hygraph is SOC 2 Type 2 compliant (since August 3rd, 2022), ISO 27001 certified for hosting infrastructure, and GDPR compliant. These certifications demonstrate adherence to international standards for information security and privacy. For more, see the Secure Features page. Note: For detailed limitations or additional certifications, contact Hygraph sales.
Use Cases & Customer Success
Who uses Hygraph and what industries are represented?
Hygraph is used by companies in SaaS, marketplaces, education technology, media and publication, healthcare, consumer goods, automotive, technology, fintech, travel, food and beverage, eCommerce, agencies, online gaming, events, government, consumer electronics, engineering, and construction. Notable customers include Samsung, Dr. Oetker, Komax, AutoWeb, BioCentury, Voi, HolidayCheck, and Lindex Group. For case studies, visit the case studies page. Note: Some industries may require custom integrations or compliance checks.
What business impact can customers expect from using Hygraph?
Customers have reported faster time-to-market (e.g., Komax achieved 3x faster launches), improved customer engagement (Samsung saw a 15% increase), cost reduction, enhanced content consistency, and scalability. For example, AutoWeb increased website monetization by 20%, and Voi scaled multilingual content across 12 countries. See more at Hygraph case studies. Note: Results may vary based on implementation and use case.
Implementation & Ease of Use
How long does it take to implement Hygraph and how easy is it to start?
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. Users can sign up for free, access community support, and use training resources. See Getting Started guide. Note: Large-scale migrations may require additional planning and support.
What feedback have customers given about Hygraph's ease of use?
Customers praise Hygraph's intuitive interface, quick adaptability, and accessibility for non-technical users. For example, Sigurður G. (CTO) noted the UI is intuitive, and Charissa K. (Senior CMS Specialist) described it as fast to comprehend and localizable. Multiple reviews highlight the ease of setup and granular roles/permissions. See more on the Try Hygraph page. Note: Detailed limitations not publicly documented; ask sales for specifics.
Pain Points & Problem Solving
What common pain points does Hygraph address?
Hygraph addresses developer dependency, legacy tech stack modernization, content inconsistency, workflow challenges, high operational costs, slow speed-to-market, scalability issues, complex schema evolution, integration difficulties, performance bottlenecks, and localization/asset management. These are solved through its GraphQL-native architecture, content federation, user-friendly tools, and enterprise-grade features. Note: Some pain points may require custom solutions or integrations.
Security & Permissions
How does Hygraph handle security and permissions?
Hygraph provides granular permissions, SSO integrations (OIDC/LDAP/SAML), audit logs, encryption in transit and at rest, regular backups, secure APIs (custom origin policies, IP firewalls), and automatic backup/recovery. All endpoints have SSL certificates. For more, see the Secure Features page. Note: Field visibility is not a substitute for permissions or security; use dedicated security features for access control.
Your schema is built up of GraphQL types. If you're familiar working with GraphQL, you should feel right at home. Hygraph supports all of the common GraphQL types you are used to, as well as some of its own.
You may also be interested in how input types work for filtering, ordering, paginating, and mutating data.
Here you will discover the core field types available when building your Hygraph schema. Since your schema is automatically generated, it is recommended you browse the API Playground to get inspect all available field type definitions.
Hygraph supports a few variations of the String field type. Strings are just strings, but depending on the variation you add to your model, it will reflect how it appears to content editors.
Variant
Description
Single line text
Most used with headings, page titles, email, etc.
Multi line text
Most used with strings that require no formatting, raw text like HTML, and XML where you control the parsing.
Markdown
Markdown is most used as an alternative to Rich Text. Enables advanced techniques such as MDX.
Slug
Slug template with automatic initial value generation based off existing fields.
All 3 variations of the String type are queried in the same way, and return the strings of the field they represent:
The RichText field type is an advanced String field that returns your content in 4 different formats by default: raw, HTML, markdown, and text. json is also available when embeds are enabled. The Rich Text field renders an advanced textarea with tools to add headings, links, tables, images, lists, etc.
Floats are floating point numbers, and often represent fractional values. They are often used to describe values with precision, such as distance, weight, volume, etc.
For example, here we have products with a Float field for rating:
Booleans default to null in Hygraph, and can be true or false. You may opt to use a Boolean for specifying if a product is on sale, is part of a bundle, or a post accepts comments.
For example, here we have posts with a Boolean field for acceptsComments:
Enumerations, or enum for short, are predefined list of values. They are defined inside your GraphQL schema, and can be referenced by any of your content models.
Taxonomies are a group of terms arranged in a hierarchical structure. They are defined inside your GraphQL schema, and can be referenced by any of your content models.
For example, here is a taxonomy for the products model which has a category taxonomy field. The category taxonomy field uses the Clothes taxonomy. In the GraphQL schema, category.value is the taxonomy node attached to the entry, and category.path is an array of the full path up to the assigned node.
References, often referred as relations, are a powerful field type that allows you to connect one or more models together, and even reference multiple models as a single field type with GraphQL Union Types.
For example, here we have an example of querying all products, with categories they belong to.
One-way references - also called unidirectional relations - only exist in one direction. This type of reference is most useful when there is no need to know where a model is being referenced from, such as a model that is used many times. One-way references only show up on the model for which the reference is configured, and can only be queried from that side as well. This also means that for one-way references, no reverse field is configured on the referenced model. With one-way references, the content editor UI is kept clean by not showing irrelevant relations where they are not needed.
Two-way references - alternatively known as bidirectional relations - exist in two directions. This type of reference is useful for use cases where both sides of the reference are relevant, and need to be edited or queryable. Two-way references are configured and show up on both the referencing and referenced models, and can be queried from either side.
Remote fields connect specific remote data to an entry of that model. Remote fields are always related to a single remote source, and a single custom type. RESTful remote fields are configured with a path to a specific endpoint in the remote source, such as user details from Github, or price & availability from Shopify. GraphQL remote fields allow to select the entrypoint to the schema (query).
In order to support existing field variables in non-string arguments, the {{!cast=<type>}} syntax can be used to indicate that the resulting data should be forwarded as is.
Please note that there is no post processing done on the data after filling in the existing field variable.
Let's say our remote GraphQL API accepts an int argument, which we want to get filled in from an int field called n that already exists on the model we are creating the remote field on.
When specifying the template, we can add the handlebars comment {{!cast=<type}} to specify what type the value resulting from our template is, so the API will forward the raw data value to the remote API.
In this example we use {{!cast=int}} to forward the raw int value.
queryexample{
assets(first:"{{doc.n}}{{!cast=int}}"){
...EntryPoint
}
}
The resulting query shows what will be sent when we execute the remote field, which is raw 1.
queryexample{
assets(last:1){
...EntryPoint
}
}
The resulting query matches what the remote API expects.
If we did not use the casting handlebars comment, the remote fields query template would look like this:
queryexample{
assets(first:"{{doc.n}}"){
...EntryPoint
}
}
When the remote field gets executed, the template gets filled in with the current document's n value. The resulting query would look like this:
queryexample{
assets(last:"1"){
...EntryPoint
}
}
We mentioned before that our remote API accepts an int for the last argument, but our API now sends it as a string. Therefore, we would wrongly pass "1" instead of the desired 1.
Hygraph field types allow for different visibility options via the Advanced tab during field creation. Below is a reference for the different options and how they are different.
Option
Description
Read / Write
Default option, the field will be accessible for read/write purposes.
Read Only
Field is shown but cannot be edited in the UI, updates can only be done via API.
Hidden
The field is not shown in the UI, but can be referenced by other fields such as Slugs.
API Only
Field is not shown in the UI, can be read and updated exclusively from the API.
Note that these options are available for all field types except for References.
Field visibility has no relation with permissions or security and should not be used for those purposes.
Your schema is built up of GraphQL types. If you're familiar working with GraphQL, you should feel right at home. Hygraph supports all of the common GraphQL types you are used to, as well as some of its own.
You may also be interested in how input types work for filtering, ordering, paginating, and mutating data.
Here you will discover the core field types available when building your Hygraph schema. Since your schema is automatically generated, it is recommended you browse the API Playground to get inspect all available field type definitions.
Hygraph supports a few variations of the String field type. Strings are just strings, but depending on the variation you add to your model, it will reflect how it appears to content editors.
Variant
Description
Single line text
Most used with headings, page titles, email, etc.
Multi line text
Most used with strings that require no formatting, raw text like HTML, and XML where you control the parsing.
Markdown
Markdown is most used as an alternative to Rich Text. Enables advanced techniques such as MDX.
Slug
Slug template with automatic initial value generation based off existing fields.
All 3 variations of the String type are queried in the same way, and return the strings of the field they represent:
The RichText field type is an advanced String field that returns your content in 4 different formats by default: raw, HTML, markdown, and text. json is also available when embeds are enabled. The Rich Text field renders an advanced textarea with tools to add headings, links, tables, images, lists, etc.
Floats are floating point numbers, and often represent fractional values. They are often used to describe values with precision, such as distance, weight, volume, etc.
For example, here we have products with a Float field for rating:
Booleans default to null in Hygraph, and can be true or false. You may opt to use a Boolean for specifying if a product is on sale, is part of a bundle, or a post accepts comments.
For example, here we have posts with a Boolean field for acceptsComments:
Enumerations, or enum for short, are predefined list of values. They are defined inside your GraphQL schema, and can be referenced by any of your content models.
Taxonomies are a group of terms arranged in a hierarchical structure. They are defined inside your GraphQL schema, and can be referenced by any of your content models.
For example, here is a taxonomy for the products model which has a category taxonomy field. The category taxonomy field uses the Clothes taxonomy. In the GraphQL schema, category.value is the taxonomy node attached to the entry, and category.path is an array of the full path up to the assigned node.
References, often referred as relations, are a powerful field type that allows you to connect one or more models together, and even reference multiple models as a single field type with GraphQL Union Types.
For example, here we have an example of querying all products, with categories they belong to.
One-way references - also called unidirectional relations - only exist in one direction. This type of reference is most useful when there is no need to know where a model is being referenced from, such as a model that is used many times. One-way references only show up on the model for which the reference is configured, and can only be queried from that side as well. This also means that for one-way references, no reverse field is configured on the referenced model. With one-way references, the content editor UI is kept clean by not showing irrelevant relations where they are not needed.
Two-way references - alternatively known as bidirectional relations - exist in two directions. This type of reference is useful for use cases where both sides of the reference are relevant, and need to be edited or queryable. Two-way references are configured and show up on both the referencing and referenced models, and can be queried from either side.
Remote fields connect specific remote data to an entry of that model. Remote fields are always related to a single remote source, and a single custom type. RESTful remote fields are configured with a path to a specific endpoint in the remote source, such as user details from Github, or price & availability from Shopify. GraphQL remote fields allow to select the entrypoint to the schema (query).
In order to support existing field variables in non-string arguments, the {{!cast=<type>}} syntax can be used to indicate that the resulting data should be forwarded as is.
Please note that there is no post processing done on the data after filling in the existing field variable.
Let's say our remote GraphQL API accepts an int argument, which we want to get filled in from an int field called n that already exists on the model we are creating the remote field on.
When specifying the template, we can add the handlebars comment {{!cast=<type}} to specify what type the value resulting from our template is, so the API will forward the raw data value to the remote API.
In this example we use {{!cast=int}} to forward the raw int value.
queryexample{
assets(first:"{{doc.n}}{{!cast=int}}"){
...EntryPoint
}
}
The resulting query shows what will be sent when we execute the remote field, which is raw 1.
queryexample{
assets(last:1){
...EntryPoint
}
}
The resulting query matches what the remote API expects.
If we did not use the casting handlebars comment, the remote fields query template would look like this:
queryexample{
assets(first:"{{doc.n}}"){
...EntryPoint
}
}
When the remote field gets executed, the template gets filled in with the current document's n value. The resulting query would look like this:
queryexample{
assets(last:"1"){
...EntryPoint
}
}
We mentioned before that our remote API accepts an int for the last argument, but our API now sends it as a string. Therefore, we would wrongly pass "1" instead of the desired 1.
Hygraph field types allow for different visibility options via the Advanced tab during field creation. Below is a reference for the different options and how they are different.
Option
Description
Read / Write
Default option, the field will be accessible for read/write purposes.
Read Only
Field is shown but cannot be edited in the UI, updates can only be done via API.
Hidden
The field is not shown in the UI, but can be referenced by other fields such as Slugs.
API Only
Field is not shown in the UI, can be read and updated exclusively from the API.
Note that these options are available for all field types except for References.
Field visibility has no relation with permissions or security and should not be used for those purposes.