Frequently Asked Questions

Getting Started & Prerequisites

What do I need before creating a header with links in Hygraph?

To create a header with links in Hygraph, you need a Hygraph account and an active project. You can sign up for a free account here. For your project, you can either create a new one, clone a prepared project (basic or complete cookbook), or use an existing project. For step-by-step instructions, see the official prerequisites guide.

How can I quickly start building a header with links in Hygraph?

You have several options to get started:

For more, see Clone project options.

Is there a way to skip the schema setup for header and footer recipes?

Yes, you can clone a prepared project that contains all the base schema elements needed for header and footer recipes. This allows you to skip manual schema setup and start directly with the header component creation. Clone the basic project here.

Features & Capabilities

What is the 'Header with links' recipe in Hygraph?

The 'Header with links' recipe is a guide that shows you how to build a reusable header component in Hygraph. This component includes a title, a company logo, and a nested navigation component for links. It supports both internal and external links, and you can configure links to open in a new tab. The recipe is designed for flexibility and reusability across different models in your project. See the full guide here.

What schema elements are involved in creating a header with links?

Creating a header with links involves several schema elements:

These elements allow you to build a flexible, reusable header structure. For details, see Core concepts.

Can I add both internal and external links to my header in Hygraph?

Yes, the navigation item component allows you to add both internal links (referencing entries from models like Author, Book, or Shop) and external links (using a URL field). You can also specify if a link should open in a new tab using a boolean field. This flexibility is built into the recipe's schema design. See the navigation item component guide for more details.

How do I reuse the header component across different models?

By creating the header as a component in Hygraph, you can add it as a field to any model in your project. This allows you to maintain a consistent header structure and easily update it across multiple content types. For more on reusable components, see the components documentation.

Technical Requirements & Implementation

What fields should I include in the navigation item component?

The navigation item component should include:

For field setup details, see this section.

How do I structure the header component for maximum flexibility?

To maximize flexibility, the header component should include:

This structure lets you add as many links as needed and ensures the header can be reused across models. See the header creation guide for details.

Are there validation options for external URLs in navigation items?

Yes, the external URL field in the navigation item component uses a slug field with URL pattern validation. You can set the field as unique and require it to match a specific URL pattern, with a custom error message if the format is incorrect. This ensures only valid URLs are accepted. See the navigation item setup for more.

Support & Resources

Where can I find more resources or get help with Hygraph recipes?

You can find more resources in the header & footer recipes index. For schema concepts, see the components documentation, references documentation, and enumerations documentation. For community support or to suggest new recipe ideas, join the Hygraph Community Slack.

What support and training does Hygraph offer for new users?

Hygraph provides extensive documentation, webinars, live streams, and how-to videos for onboarding and technical training. Real-time support is available via 24/7 chat, email, and phone. Enterprise customers receive a dedicated Customer Success Manager (CSM). You can also join the community Slack channel for peer and expert support. See Hygraph Documentation for 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 for hosting infrastructure, and GDPR compliant. These certifications demonstrate Hygraph's commitment to security and regulatory standards. For more details, see the security features page and the security and compliance report.

What security features are available in Hygraph?

Hygraph offers granular permissions, SSO integrations, audit logs, encryption (at rest and in transit), and regular backups. Enterprise features include dedicated hosting, custom SLAs, and compliance with regulations like GDPR and CCPA. For more, visit the security features page.

Performance & Product Experience

How does Hygraph ensure high performance for content delivery?

Hygraph uses Smart Edge Cache for enhanced performance and faster content delivery, especially for high-traffic and global audiences. The platform features high-performance endpoints and provides practical advice for optimizing GraphQL API usage. For details, see the high-performance endpoint blog post.

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

Hygraph is frequently praised for its intuitive user interface, making it accessible for both technical and non-technical users. Customers highlight its ease of setup and use, even for those without technical expertise. Hygraph was recognized for "Best Usability" in Summer 2023. For more, see customer feedback.

Use Cases & Benefits

Who can benefit from using Hygraph?

Hygraph is ideal for developers, product managers, and marketing teams in industries such as ecommerce, automotive, technology, food and beverage, and manufacturing. It is especially valuable for organizations modernizing legacy tech stacks, requiring localization, asset management, and content federation. For more, see the Hygraph Documentation.

What problems does Hygraph help solve?

Hygraph addresses operational inefficiencies (e.g., dependency on developers for content updates), financial challenges (e.g., high maintenance costs, slow speed-to-market), and technical issues (e.g., schema evolution, integration difficulties, cache and performance bottlenecks). Its user-friendly interface, GraphQL-native architecture, and content federation features help modernize content management and deliver exceptional digital experiences. See more in the CMS KPIs blog.

Customer Success & Metrics

Can you share some customer success stories with Hygraph?

Yes. Komax achieved a 3X faster time-to-market by managing over 20,000 product variations across 40+ markets via a single CMS. Samsung improved customer engagement by 15% with a scalable, composable member platform. Stobag increased online revenue share from 15% to 70% after transitioning to a digital-first approach. See more customer stories.

What KPIs and metrics are associated with Hygraph's impact?

Key KPIs include:

For more, see the CMS KPIs blog.

Maintenance, Upgrades & Troubleshooting

How does Hygraph handle maintenance, upgrades, and troubleshooting?

Hygraph is a cloud-based platform, so deployment, updates, security, and infrastructure maintenance are managed by Hygraph. Upgrades are seamless and require no manual intervention. Troubleshooting is supported by 24/7 support channels, Intercom chat, and extensive documentation. Enterprise customers receive a dedicated Customer Success Manager. See Hygraph Documentation for more.

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

#Header with links

#Overview

This guide shows how to build a header component containing a title, an image and a nested component for links.

It will allow you to create a typical single-line header that contains a company logo, and multiple links to both internal and external resources.

Header component with fieldsHeader component with fields

#Prerequisites

  • REQUIRED: You need to have a Hygraph account. If you don't have one, you can sign up here.
  • REQUIRED: You need to have a Hygraph project.
    • OPTION 1: Create a project. This is the way to go if you want to follow the entire tutorial for learning purposes.
    • OPTION 2: Clone the basic project. If you're already familiar with Hygraph and only want to follow the parts of the tutorial where you create the headers & footers, you can start here.
    • OPTION 3: Clone the entire cookbook. This is the way to go if you're curious about how the headers & footers are made but don't want to follow the step-by-step creation process. This project contains the entire Headers & footers Cookbook so you can compare them, or look into what instances they contain.
    • OPTION 4: Use an existing project of yours. If you have a project already and want to add this header to it, this is the way to go. In this case, you may need to adjust parts of the tutorial to your own project schema.

#Core concepts

In this guide, you'll work with a number of schema elements. Let's look into them:

  • Model: Your schema is the content structure of your project. You can define your schema by creating models and adding fields, reusable components, and sidebar widgets to them, as well as integrating remote sources and establishing relationships with other models.

  • Enumerations: an enumeration is a predefined set of values that represents a list of possible options. You can use them to group values within a type.

  • References: References are relations between two or more content entries in your project. With references, you can reuse content entries by connecting them. Once the relation is configured, you can also use it to create related content from the content creation screen.

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

  • Basic component field: a component is 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. 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.

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

#What you can do

This guide offers two paths:

  • Path 1: Use this guide to create a header component with links that you can use in your project.
  • Path 2: Clone one of the projects we created for you. You can clone a project that only contains the basic models so you can work on the headers & footers right away, or you can clone the project that contains the entire Headers & footers cookbook to compare the different section configurations without having to clone multiple projects.

#Clone project

#Clone the basic project

We have prepared a project that contains all the base schema elements you need to create your headers & footers, in case you don't want to build them from scratch:

Clone this project

If you decide to clone this project, you can skip the base schema elements creation part of this tutorial, and start from this step.

#Clone the complete cookbook

We have prepared a project that contains the entire Headers & footers cookbook:

Clone this project

This cookbook contains all the recipes we have so far to create headers & footers, so you can compare the different field configurations without having to clone multiple projects.

To find this particular recipe in the cookbook project, navigate to the schema and look for the "Header links" component.

#Step-by-step guide

In this guide, we will create a header component with a nested component field for links. Before we can build our header component, we need to create other schema elements that will be a part of it.

We will divide this process in steps to make it more manageable:

  1. Create the referenced models: We will create 3 sample models - Author, Book, and Shop - to use in our internal links.
  2. Create the navigation item component: We will build a navigation item component that we can nest into our header component.
  3. Create the header component: We will create a header component that you can later add as component field to your models.

#1. Create the basic models

For this example, we'll go with the idea of an online bookshop that has real world subsidiaries, so we'll create 3 models:

  • Author
  • Book
  • Shop

#Author model

Author modelAuthor model

Let's start with the Author model. In the Schema builder, we'll click +Add next to Models, and use the following information:

FieldInput
Display NameAuthor
API IDAuthor
API ID PluralAuthors

We'll click Add model to save.

Our model has been created but it's empty. To create a simple model that will contain basic author information, we'll add the author name, bio, and image.

Let's start with the author name, as a Single line text field. We'll find it on the Add fields right sidebar, and click Add on the field card to add it.

We'll use the following information:

TabFieldInput
SettingsDisplay NameAuthor name
SettingsAPI IDauthorName
SettingsUse as title field checkboxLeave this checkbox selected

We'll click Add to save.

Next, we'll add a Rich text field, which will our author's bio. We'll select the Rich text field from the right sidebar and use the following information to create it:

TabFieldInput
SettingsDisplay NameAuthor bio
SettingsAPI IDauthorBio

We'll click Add to save.

Finally, we'll add an Asset picker field, which will be our author's image. We'll select the Asset picker field from the right sidebar and use the following information to create it:

TabFieldInput
SettingsDisplay NameAuthor image
SettingsAPI IDauthorImage

We'll click Add to save.

Now that we're done with our Author model, let's move on to the Book model.

#Book model

Book modelBook model

Our second model will be the Book model. In the Schema builder, we'll click +Add next to Models, and use the following information:

FieldInput
Display NameBook
API IDBook
API ID PluralBooks

We'll click Add model to save.

Our model has been created but it's empty. To create a simple model that will contain basic book information, we'll add the book name, description, cover image, and a relation to the author.

Let's start with the book name, as a Single line text field. We'll find it on the Add fields right sidebar, and click Add on the field card to add it.

We'll use the following information:

TabFieldInput
SettingsDisplay NameBook name
SettingsAPI IDbookName
SettingsUse as title field checkboxLeave this checkbox selected

We'll click Add to save.

Next, we'll add a Rich text field, which will our book description. We'll select the Rich text field from the right sidebar and use the following information to create it:

TabFieldInput
SettingsDisplay NameBook description
SettingsAPI IDbookDescription

We'll click Add to save.

Now let's add an Asset picker field, which will be our book cover image. We'll select the Asset picker field from the right sidebar and use the following information to create it:

TabFieldInput
SettingsDisplay NameBook cover
SettingsAPI IDbookCover

We'll click Add to save.

Finally, we want books and authors to be connected. A great way to do this is using a two-way reference in our Book model, that will create a relation with the Author model. This type of relation will also create a reverse field that we will later be able to see in our Author model, connecting back to our Book model.

We'll find the Reference field on the Add fields right sidebar, and click Add on the field card to add it.

We'll use the following information:

TabFieldInput
DefineReference typeSelect Allow only one model to be referenced
DefineModels to referenceUse the dropdown menu to select Author
DefineReference directionSelect Two-way reference
DefineAllow multiple... checkboxSelect Allow multiple Book per Author and Allow multiple Author per Book
Configure referenceDisplay NameAuthor
Configure referenceAPI IDAuthor
Configure reverse fieldDisplay NameBook
Configure reverse fieldAPI IDbook

We'll click Add to save.

Now that we're done with our Book model, let's move on to the Shop model.

#Shop model

Shop modelShop model

Our final model is the Shop model. In the Schema builder, we'll click +Add next to Models, and use the following information:

FieldInput
Display NameShop
API IDShop
API ID PluralShops

We'll click Add model to save.

Our model has been created but it's empty. To create a simple model that will contain basic shop information, we'll add the shop name, address, picture and location.

Let's start with the shop name, as a Single line text field. We'll find it on the Add fields right sidebar, and click Add on the field card to add it.

We'll use the following information:

TabFieldInput
SettingsDisplay NameShop name
SettingsAPI IDshopName
SettingsUse as title field checkboxLeave this checkbox selected

We'll click Add to save.

Next, we'll add another Single line text field for the shop address.

We'll use the following information:

TabFieldInput
SettingsDisplay NameShop address
SettingsAPI IDshopAddress

We'll click Add to save.

Finally, we'll add an Asset picker field, which will be our shop's image. We'll select the Asset picker field from the right sidebar and use the following information to create it:

TabFieldInput
SettingsDisplay NameShop picture
SettingsAPI IDshopPicture

We'll click Add to save.

Finally, we'll add a location field so Editors can show the shop location on a map. We'll select the Location field from the right sidebar and use the following information to create it:

TabFieldInput
SettingsDisplay NameLocation
SettingsAPI IDlocation

We'll click Add to save.

Now that we're done with our three models, let's create our links component!

#2. Create the navigation item component

Create a navigation item componentCreate a navigation item component

We want our header to contain a navigation item component that will allow us to add multiple links - both internal and external - to our header. To build this, we'll click + Add next to Components and add it using this information:

FieldInput
Display NameNavigation item
API IDNavigationItem
API ID PluralNavigationItems

We'll click Add component to save. It's time to start adding instances to this component.

First, we'll add a Single line text field by clicking on it on the Add fields right sidebar.

We'll use the following information:

TabFieldInput
SettingsDisplay NameLink label
SettingsAPI IDlinkLabel
SettingsUse as title field checkboxSelect this checkbox

We'll click Add to save.

We want our header to offer the possibility to add both internal and external links. To do this, we'll add a reference for the internal links, and a slug field for the external ones. In this case, we won't be making them required fields, because users will either use one or the other.

We'll start with the reference field. We'll find the Reference field on the Add fields right sidebar, click on it, and use the following information:

TabFieldInput
DefineReference typeSelect Allow multiple models to be referenced (Union Type)
DefineModels to referenceUse the dropdown menu to select Author, Book and Shop
DefineReference directionSelect One-way reference
DefineRelation cardinalitySelect One to One
Configure referenceDisplay NameInternal link
Configure referenceAPI IDinternalLink

We'll click Add to save. We've configured the reference in such a way that when we find this field in a content entry, it will allow us to select an entry from the models that we selected.

Next, we'll add a slug field for our external URLs, using the following information:

TabFieldInput
SettingsDisplay NameExternal URL
SettingsAPI IDexternalUrl
SettingsLowercase checkboxLeave this checkbox selected
ValidationsSet field as unique checkboxLeave this checkbox selected
ValidationsMatch a specific pattern checkboxLeave this checkbox selected, and use the dropdown to select the URL pattern. Write "Input value does not match the expected format." in the Custom error message field.

We'll click Add to save.

Finally, we want to have a boolean field that we can then toggle to indicate if a link should open on a separate tab or not.

We'll add a boolean field using the following information:

TabFieldInput
SettingsDisplay NameNew tab
SettingsAPI IDnewTab

We'll click Add to save.

#3. Create the header

Now that we have all the schema elements that, both directly and indirectly, will be a part of our final header component, we'll go ahead and create it.

Header component with fieldsHeader component with fields

We'll click + Add next to Components and add it using this information:

FieldInput
Display NameHeader links
API IDHeaderLinks
API ID PluralHeaderLinkss

We'll click Add component to save, and then we'll start adding instances to it.

First, we'll add a Single line text field, which will be our header title. Let's add it by clicking Add on the Single line text field card on the right sidebar.

We'll use the following information:

TabFieldInput
SettingsDisplay NameHeader title
SettingsAPI IDheaderTitle
SettingsDescriptionYou can add a title to your header here
SettingsUse as title field checkboxSelect this checkbox

We'll click Add to save.

Next, we want our header to have the company logo in it, so we'll add an Asset picker field, using the following information:

TabFieldInput
SettingsDisplay NameLogo
SettingsAPI IDlogo

We'll click Add to save. In this case we're not allowing multiple values because we only want to add one image to our headers.

Finally, we will add a basic component field to nest the navigation item component we created earlier into our header component. We'll use the following information:

TabFieldInput
SettingsDisplay NameLinks
SettingsAPI IDlinks
SettingsAllow multiple values checkboxSelect this checkbox
SettingsSelect componentUse the dropdown to select the "Navigation item" component

We'll click Add to save. In this case, we've allowed multiple values, because that way we can add as many links as we want to our header.

This is how you create a simple header component containing a title, an image and links. Creating the header as a component, allows you to reuse the structure in different models in your project.