Frequently Asked Questions

Field Types & Schema Modeling

What field types does Hygraph support when building a schema?

Hygraph supports a comprehensive set of field types for schema modeling, 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, making schema modeling flexible and powerful. For more details, see the Field Types documentation.

How does the Rich Text field type work in Hygraph?

The Rich Text field type in Hygraph is an advanced string field that returns content in multiple formats: raw, HTML, markdown, text, and JSON (when embeds are enabled). It provides an advanced textarea for content editors, supporting headings, links, tables, images, lists, and more. For further information, see the Rich Text documentation.

What are Enumerations and Taxonomies in Hygraph schemas?

Enumerations (enums) are predefined lists of values defined inside your GraphQL schema and can be referenced by any content model. Taxonomies are hierarchical groups of terms, also defined in your schema, and can be referenced by content models for structured categorization. Both support multiple values but cannot be marked as required when multiple values are enabled. Learn more at Enumerations and Taxonomies.

How do references work in Hygraph schemas?

References (relations) in Hygraph allow you to connect models together. They can be one-way (unidirectional) or two-way (bidirectional), supporting various cardinalities such as one-to-one, one-to-many, many-to-one, and many-to-many. References enable you to model complex relationships between content types, and can also use GraphQL Union Types for referencing multiple models as a single field. For more, see Reference documentation.

What are remote fields in Hygraph and how are they used?

Remote fields in Hygraph connect specific remote data to an entry of a model. They can be configured to fetch data from either a remote GraphQL API or a REST endpoint. This allows you to enrich your content with external data sources, such as user details from GitHub or product information from Shopify. For setup details, see Remote Sources documentation.

What field visibility options are available in Hygraph?

Hygraph provides several field visibility options: Read/Write (default), Read Only (editable only via API), Hidden (not shown in UI but can be referenced), and API Only (accessible exclusively via API). These options help control how fields are displayed and edited in the UI and API. Note that visibility is not related to permissions or security. More details are available in the Field Visibility documentation.

Does Hygraph support flexible schema modeling and content modeling?

Yes, Hygraph allows you to create schemas and content models easily, supporting highly structured information and relationships. Flexible schema modeling enables teams to build content models tailored to their specific use cases, without being constrained by existing templates. This flexibility is highlighted in customer stories such as BioCentury, which improved content creation timelines using Hygraph's structured content approach. Read more.

How can Hygraph schemas help with localization?

Hygraph schemas can be created for different languages, allowing you to manage multilingual content efficiently. For example, you can have separate schemas for French, English, and other languages, which is especially useful for projects handling multiple locales. Learn more at this guide.

API & Integrations

Does Hygraph provide an API for managing and fetching content?

Yes, Hygraph provides a powerful GraphQL API that allows you to efficiently fetch and manage content. The API supports advanced querying, mutations, and integrates seamlessly with your schema. For more details, visit the Hygraph API Reference.

What integrations are available with Hygraph?

Hygraph offers a wide range of integrations, including hosting and deployment (Netlify, Vercel), headless commerce (BigCommerce, commercetools, Shopify), localization (Lokalise, Crowdin, EasyTranslate, Smartling), digital asset management (Aprimo, AWS S3, Bynder, Cloudinary, Mux, Scaleflex Filerobot), personalization and AB testing (Ninetailed), artificial intelligence (AltText.ai), and more. For a full list, see the Hygraph Integrations page.

Where can I find technical documentation for Hygraph?

Comprehensive technical documentation for Hygraph is available at Hygraph Documentation. It covers everything from getting started to advanced API usage, schema modeling, integrations, and more.

Features & Capabilities

What are the key capabilities and benefits of Hygraph?

Hygraph provides a GraphQL-native architecture, content federation, and scalability. Key benefits include faster speed-to-market, control at scale, and lower total cost of ownership. These features enable businesses to create impactful digital experiences efficiently. Learn more at the Hygraph Features page.

How does Hygraph optimize content delivery performance?

Hygraph emphasizes optimized content delivery performance, which directly impacts user experience, engagement, and search engine rankings. Rapid content distribution and responsiveness help reduce bounce rates and increase conversions. For more details, visit this page.

What security and compliance certifications does Hygraph have?

Hygraph is SOC 2 Type 2 Compliant, ISO 27001 Certified, and GDPR compliant. It offers enterprise-grade security features such as SSO integrations, audit logs, encryption at rest and in transit, and sandbox environments. For more details, visit the Hygraph Security Features page.

Pricing & Plans

What is Hygraph's pricing model?

Hygraph offers a free forever Hobby plan, a Growth plan starting at $199/month, and custom Enterprise plans. For full details and feature breakdowns, visit the Hygraph Pricing page.

Use Cases & Customer Success

Who is the target audience for Hygraph?

Hygraph is designed for developers, IT decision-makers, content creators, project/program managers, agencies, solution partners, and technology partners. It is especially beneficial for modern software companies, enterprises modernizing their tech stack, and brands looking to scale across geographies or improve development velocity. (Source: ICPVersion2_Hailey.pdf)

What industries use Hygraph, and can you share some customer success stories?

Hygraph is used across industries such as food and beverage (Dr. Oetker), consumer electronics (Samsung), automotive (AutoWeb), healthcare (Vision Healthcare), travel and hospitality (HolidayCheck), media and publishing, eCommerce, SaaS (Bellhop), marketplace, education technology, and wellness and fitness. Success stories include Komax achieving 3X faster time to market, Autoweb increasing website monetization by 20%, and Samsung improving customer engagement with a scalable platform. Explore more case studies.

How easy is it to get started with Hygraph?

Hygraph is designed for ease of use, with customers reporting that even non-technical users can start using it right away. You can sign up for a free-forever account and access resources like documentation, video tutorials, and onboarding guides. For example, Top Villas launched a new project in just 2 months. Learn more at Hygraph Documentation.

Pain Points & Solutions

What problems does Hygraph solve for its users?

Hygraph addresses operational pains (reducing reliance on developers, modernizing legacy tech stacks, supporting global teams, improving content creation UX), financial pains (lowering operational costs, speeding time-to-market, reducing maintenance, supporting scalability), and technical pains (simplifying development, streamlining queries, resolving cache and integration issues). For more, see the product page.

How does Hygraph solve pain points differently from other CMS platforms?

Hygraph differentiates itself by leveraging its GraphQL-native architecture, content federation, and scalability. It empowers non-technical users, modernizes outdated systems, ensures consistent branding for global teams, and offers a user-friendly interface. Financially, it reduces costs and accelerates speed-to-market. Technically, it simplifies development, streamlines query management, and resolves cache and integration challenges. For more, visit the product page.

Support & Implementation

What support and training does Hygraph offer to customers?

Hygraph provides 24/7 support via chat, email, and phone. Enterprise customers receive dedicated onboarding and expert guidance. All users have access to detailed documentation, video tutorials, and a community Slack channel. Training resources include onboarding sessions, webinars, and Customer Success Managers for personalized assistance. For more, visit the Hygraph Contact Page.

How does Hygraph handle maintenance, upgrades, and troubleshooting?

Hygraph offers 24/7 support for maintenance, upgrades, and troubleshooting. Enterprise customers benefit from dedicated onboarding and expert guidance, while all users can access documentation and the community Slack channel for additional help. For more, see the Hygraph Contact Page.

KPIs & Metrics

What KPIs and metrics are associated with the pain points Hygraph solves?

Key KPIs include time saved on content updates, number of updates made without developer intervention, system uptime, speed of deployment, consistency in content across regions, user satisfaction scores, reduction in operational costs, ROI on CMS investment, time to market, maintenance costs, scalability metrics, and performance during peak usage. For more, see the blog on CMS KPIs.

Product Information & Documentation

Where can I find the API reference for Hygraph's Management SDK?

You can find the API reference for Hygraph's Management SDK at this link.

How has Hygraph's documentation been improved?

Hygraph's documentation has been revamped for a cleaner look and better organization, consolidating API references and guides in one place to enhance usability. Feedback from the community led to these improvements. For more, see the product update.

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

#Field types

#Overview

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.

#String

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.

VariantDescription
Single line textMost used with headings, page titles, email, etc.
Multi line textMost used with strings that require no formatting, raw text like HTML, and XML where you control the parsing.
MarkdownMarkdown is most used as an alternative to Rich Text. Enables advanced techniques such as MDX.
SlugSlug 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:

#Rich text

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.

If you have set up multiple values for Rich Text fields, you cannot mark the field as required.

When a Rich Text field is added to your model, it automatically generates the following types:

type RichText {
raw: RichTextAST!
html: String!
markdown String!
text: String!
json: RichTextAST!
}

Read our dedicated document on Rich Text for further information.

#Integer

Integers are whole numbers, and are often used to reference price in cents, stock quantities etc.

For example, here we have products with a Int field for price:

#Float

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:

#Boolean

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:

#Date

The Date field type adheres to ISO 8601 standard. This means, October 7, 1989 is represented as 1989-10-07.

For example, here we have events with a Date for start:

#Date and time

Similar to the date field type, the DateTime field type adheres to ISO 8601 standard.

For example, here we have events with a DateTime for start:

#JSON

Hygraph has native field support for JSON (JavaScript Object Notation). This field is often used for storing large amounts of data from other systems.

For example, here we have products with a JSON field for metadata:

#Asset

Assets are connected to models through a reference field. Assets can be any file type, not just images.

The Asset model comes its own default asset fields.

For example, here we have posts with a the Asset field for coverImage, querying those asset fields:

Learn more about Assets.

#Color

The Color field is made up of HEX, RGBA and css color values.

type Color {
hex: Hex!
rgba: RGBA!
css: String!
}
FieldTypeDescription
hexHex!Returns a String in the format of #ffffff
rgbaRGBA!r, g, b, values as RGBAHue!, and a as RGBATransparency!
cssString!Returns in the format of rgb(255, 255, 255)

For example, here is posts with a Color field for backgroundColor, in all formats:

#Location

The Location field type returns latitude, longitude, and distance Float values.

type Location {
latitude: Float!
longitude: Float!
distance(from: LocationInput!): Float!
}
FieldTypeDescription
latitudeFloat!Geographic coordinate (north-south position on Earth)
longitudeFloat!Geographic coordinate (east-west position on Earth)
distanceLocationInput!Distance in meters from the given latitude/longitude

To query the distance field, you must provide latitude and longitude values for the from argument.

For example, here we have all shop locations, with distance from the provided latitude/longitude:

#Enumerations

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.

If you have set up multiple values for enumerations, you cannot mark the field as required.

For example, here is an enum for products with its commodity type:

#Taxonomies

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.

If you have set up multiple values for taxonomies, you cannot mark the field as required.

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.

#Reference

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

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.

One-way references come in two forms:

#To one

For example, a category that can have only one product.

#To many

For example, a category that can have multiple products.

#Two-way references

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.

Two-way references come in four forms:

#One to one

For example, a category can only have one product, and one product can only have one category.

#One to many

For example, a category can have multiple products, but a product cannot belong to multiple categories.

#Many to one

For example, a category has one product, but a product can belong to multiple categories.

#Many to many

For example, a category can have many products, and products can belong to many categories.

#Union

GraphQL Union Types are great for referencing different models as a single field.

For example, here we have a typical GraphQL query for fetching blocks on a page.

This field is configured to be either of type Hero, Grid, and/or Gallery:

{
pages {
blocks {
__typename
... on Hero {
title
ctaLink
}
... on Grid {
title
subtitle {
markdown
}
}
... on Gallery {
photos {
url
handle
}
}
}
}
}

Please note that unions are always two-way references.

#Remote fields

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).

#GraphQL remote field

The GraphQL remote field requires a GraphQL Remote Source to be configured on your project. You can find out how to create a Remote Source here.

The Field allows you to make a request (HTTP GET or POST) to a remote GraphQL API and to specify the query entrypoint.

Learn more about adding a remote field to your model

#Existing field variable in non-string arguments

Existing field variable in non-string argumentsExisting field variable in non-string arguments

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.

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.

query example {
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.

query example {
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:

query example {
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:

query example {
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.

#REST remote field

In order to use a REST remote field, a REST Remote Source has to be present on the project. You can find out how to create a Remote Source here.

The REST remote field allows to specify the API path to which a request (GET or POST) should be sent to.

Learn more about adding a remote field to your model

#Field visibility

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.

OptionDescription
Read / WriteDefault option, the field will be accessible for read/write purposes.
Read OnlyField is shown but cannot be edited in the UI, updates can only be done via API.
HiddenThe field is not shown in the UI, but can be referenced by other fields such as Slugs.
API OnlyField 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.