How do I set up Hygraph for building an internal company wiki?
To set up Hygraph for an internal company wiki, sign up for an account, create a new blank project, and configure models for employee data, business glossary, company policy, and video courses. You can integrate external sources like BambooHR for employee data and Cloudinary for video assets. Detailed steps are available in the tutorial.
What are the prerequisites for following the Hygraph company wiki tutorial?
You need Node.js v16 and npm v8 installed on your system to follow the tutorial for building a company wiki with Hygraph and Next.js. Source: Tutorial Prerequisites
How do I create models and schemas in Hygraph?
In Hygraph, models are created via the Schema editor. You can add fields such as single line text, markdown, multi-line text, and asset fields. For example, create models for Company Policy, Business Glossary, Course Video, and Employee, each with relevant fields. Source: Creating Models
How do I connect Hygraph to external data sources like BambooHR or Cloudinary?
Hygraph supports content federation and remote sources. For BambooHR, you create a REST remote source and define custom type definitions. For Cloudinary, install the Cloudinary app and add asset fields to your models. Source: Connecting Remote Sources
How do I set up permissions for the Hygraph Content API?
Access to the Content API is forbidden by default. You must create an authentication token and configure permissions for read access to your models. This is done in Project Settings under API Access. Source: Setting Up Permissions
How do I query data from Hygraph using GraphQL?
You can use GraphQL queries to fetch data from Hygraph models. Example queries for employees, company policies, business glossaries, and course videos are provided in the tutorial. Source: GraphQL Queries
How do I set up the frontend for my company wiki using Next.js?
After setting up Hygraph, create a Next.js project, install dependencies like Apollo Client, GraphQL, and Marked, and configure Apollo Client to communicate with the Hygraph Content API. Source: Frontend Setup
How do I deploy my Hygraph-powered wiki to Vercel?
Initialize a Git repository, push your code to GitHub, and import the repository to Vercel. Add environment variables for the Hygraph API endpoint and auth token, then deploy. Source: Deploying to Vercel
Where can I find the source code for the company wiki tutorial?
The complete source code for the tutorial is available on GitHub.
What npm dependencies are required for the Next.js frontend?
You need @apollo/client, graphql, and marked for the Next.js frontend to work with Hygraph. Source: Frontend Dependencies
How do I add and publish data in Hygraph models?
Click on Content in the sidebar, select your model, add entries, and save & publish. Repeat for each model to populate your wiki. Source: Adding Data
How do I configure authentication for accessing Hygraph APIs?
Create a permanent auth token in Project Settings, configure permissions, and use the token in your frontend to authenticate API requests. Source: API Authentication
Can I use Hygraph to manage assets hosted on third-party platforms?
Yes, Hygraph supports asset management via integrations with platforms like Cloudinary. You can add asset fields to your models and connect external sources. Source: Asset Management
How does Hygraph handle data federation from remote APIs?
Hygraph enables content federation by allowing you to define remote sources and custom type definitions, making it possible to fetch and display data from external APIs like BambooHR. Source: Content Federation
What is the role of GraphQL in Hygraph?
GraphQL is used to query and fetch only the data you need from Hygraph, making data retrieval efficient and flexible. Source: Tutorial Introduction
Can I customize the frontend of my company wiki built with Hygraph?
Yes, you can fully customize the frontend using Next.js or any other framework. The tutorial provides the core functionality, and styling is left to the developer. Source: Frontend Customization
What are the main models recommended for a company wiki in Hygraph?
The recommended models are Employee, Company Policy, Business Glossary, and Course Video. Each model can be customized with relevant fields. Source: Architecture
How do I fetch employee data from BambooHR into Hygraph?
Set up BambooHR as a REST remote source in Hygraph, create an API key in BambooHR, and configure the Employee model to fetch data using custom type definitions and API paths. Source: Fetching Employee Data
How do I use Apollo Client with Hygraph?
Install @apollo/client, configure Apollo Client with your Hygraph Content API endpoint and authentication token, and wrap your Next.js app with ApolloProvider. Source: Apollo Client Setup
What is the recommended way to structure a company wiki homepage using Hygraph?
Provide links to Employees, Company Policies, Business Glossary, and Course Videos, each backed by a Hygraph model. Source: Homepage Structure
Features & Capabilities
What are the key features of Hygraph?
Hygraph offers GraphQL-native architecture, content federation, scalability, enterprise-grade security and compliance, user-friendly tools, Smart Edge Cache, localization, and robust asset management. Source: Features
Does Hygraph support integrations with other platforms?
Yes, Hygraph integrates with platforms such as Aprimo, AWS S3, Bynder, Cloudinary, Imgix, Mux, Scaleflex Filerobot, Adminix, and Plasmic. Custom integrations are possible via SDKs and APIs. Source: Integrations Documentation
What APIs does Hygraph provide?
Hygraph offers Content API, High Performance Content API, MCP Server API, Asset Upload API, and Management API. Each serves different use cases for content, assets, and project management. Source: API Reference
How does Hygraph optimize performance for content delivery?
Hygraph provides high-performance endpoints designed for low latency and high read-throughput, actively measures GraphQL API performance, and offers practical optimization advice. Source: Performance Blog
What technical documentation is available for Hygraph?
Hygraph offers extensive documentation covering APIs, schema components, references, webhooks, and AI integrations. Source: Documentation
How easy is Hygraph to use for non-technical users?
Hygraph is praised for its intuitive UI, ease of setup, and ability for non-technical users to manage content independently. Real-time changes and custom app integrations enhance usability. Source: Ease of Use
What security and compliance certifications does Hygraph have?
Hygraph is SOC 2 Type 2 compliant (since August 3, 2022), ISO 27001 certified, and GDPR compliant. It offers granular permissions, audit logs, SSO, encryption, and regular backups. Source: Security Features
How does Hygraph support localization and asset management?
Hygraph provides advanced localization and asset management features, making it suitable for global teams and enterprises with diverse content needs. Source: Features
Pricing & Plans
What pricing plans does Hygraph offer?
Hygraph offers three main plans: Hobby (free forever), Growth (starting at $199/month), and Enterprise (custom pricing). Each plan includes different limits and features. Source: Pricing Page
What features are included in the Hobby plan?
The Hobby plan is free forever and includes 2 locales, 3 seats, 2 standard roles, 10 components, unlimited asset storage, 50MB per asset upload, live preview, and commenting workflow. Source: Pricing Page
What does the Growth plan cost and include?
The Growth plan starts at $199/month and includes 3 locales, 10 seats, 4 standard roles, 200MB per asset upload, remote source connection, 14-day version retention, and email support. Source: Pricing Page
What are the benefits of the Enterprise plan?
The Enterprise plan offers custom limits, scheduled publishing, dedicated infrastructure, global CDN, security controls, SSO, multitenancy, backup recovery, custom workflows, and dedicated support. Source: Pricing Page
Use Cases & Benefits
Who can benefit from using Hygraph?
Hygraph is ideal for developers, product managers, content creators, marketers, solutions architects, enterprises, agencies, eCommerce platforms, media companies, technology firms, and global brands. Source: Case Studies
What industries are represented in Hygraph's case studies?
Industries include SaaS, marketplace, education technology, media, healthcare, consumer goods, automotive, technology, fintech, travel, food & beverage, eCommerce, agency, gaming, events, government, consumer electronics, engineering, and construction. Source: Case Studies
What business impact can customers expect from using Hygraph?
Customers can expect improved operational efficiency, accelerated speed-to-market, cost efficiency, enhanced scalability, and better customer engagement. Examples: Komax achieved 3x faster time-to-market; Samsung improved engagement by 15%. Source: Case Studies
Can you share specific case studies or success stories?
Yes. Samsung built a scalable API-first app; Dr. Oetker enhanced digital experience; Komax managed 20,000+ product variations; AutoWeb increased monetization by 20%; Voi scaled content across 12 countries. Source: Case Studies
How long does it take to implement Hygraph?
Implementation time varies. For example, Top Villas launched in 2 months; Si Vale met aggressive deadlines. Hygraph offers free API playground, onboarding, and training resources for fast adoption. Source: Top Villas Case Study
How does Hygraph differentiate itself in solving these pain points?
Hygraph stands out with its GraphQL-native architecture, content federation, user-friendly interface, cost efficiency, robust APIs, Smart Edge Cache, and advanced localization. It is ranked 2nd out of 102 Headless CMSs in G2 Summer 2025. Source: G2 Report
Why choose Hygraph over other CMS platforms?
Hygraph is the first GraphQL-native Headless CMS, offers content federation, enterprise-grade features, proven ROI, and is recognized for ease of implementation. Source: Case Studies
What is the primary purpose of Hygraph?
Hygraph empowers businesses to create, manage, and deliver digital experiences at scale with a flexible, scalable, and modern content management system. Source: Product Page
Support & Community
What support resources are available for Hygraph users?
Hygraph provides onboarding, webinars, live streams, how-to videos, extensive documentation, and a community Slack channel for support. Source: Documentation
How can I join the Hygraph community?
You can join the Hygraph community via their Slack channel at hygraph.slack.com.
How to Build an Internal Company Wiki from Scratch
In this tutorial, you’ll learn to create an internal company wiki from scratch. The backend and content management will be implemented with Hygraph, and the frontend with Next.js.
Written by Ravgeet
on Nov 16, 2022
A company wiki is a knowledge hub where organization-specific information can be easily accessed by the individuals working in an organization. Information in the hub can be related to engineering operations, hiring procedures, employee information, and other company-specific information. Creating and maintaining a company wiki can be complex, but tools like GraphQL and Hygraph (previously GraphCMS) can make it easier.
GraphQL is a query language for APIs that allows you to request and fetch only the data that you want.
Hygraph is a cloud platform for creating databases, tables, and powerful GraphQL APIs. It allows you to create content on the fly with features such as text editors, workflows, and advanced roles.
In this tutorial, you’ll learn to create an internal company wiki from scratch. The backend and content management will be implemented with Hygraph, and the frontend with Next.js.
For this tutorial, you’ll create four data models: employee data, a business glossary, company policy, and video courses. The employee data will be fetched from an external source like BambooHR, and the assets for video courses will be hosted on Cloudinary. Finally, you’ll use GraphQL APIs to fetch the data from Hygraph, and the data will be presented on a Next.js frontend website.
What tables are to a relational database database, models are to Hygraph. In Hygraph, you can create models and add fields to them.
To create a model, click Schema in the left sidebar to open the schema editor.
Creating the Company Policies Model
To create a model for storing company policies, click on Create Model button, and give the model the display name "Company Policy".
Click the Create Model button, then add the following fields to your model by clicking the appropriate tile in the right-hand column and giving it the specified name:
Title, a Single line text field.
Description, a Markdown field.
Creating the Business Glossaries Model
Follow the same steps you followed to create the Company Policy model to create a model for storing business glossaries. Give it the display name "Business Glossary", and add the following fields to it:
Title, a Single line text field.
Description, a Multi-line text field.
Creating the Course Videos Model
While you can upload your assets to Hygraph, for the purposes of this tutorial, let’s suppose that you want to host your assets on a third-party platform like Cloudinary. In this case, before you can set up the course videos model, you need to install the Cloudinary app on Hygraph. Follow Connect your Hygraph project to Cloudinary through the end of the "Install the Cloudinary App" section.
Once you have connected Cloudinary with Hygraph, create a model for storing course videos. Give it the display name "Course Video", and add the following fields to it:
Title, a Single line text field.
Video, a Cloudinary Asset field.
Creating Employees Model
For the employees, suppose that you want to fetch the data from another platform, like BambooHR. Hygraph allows you to fetch data from remote sources through a process known as content federation.
To get data from a remote source like BambooHR, create an account on BambooHR and add some employee-related data. On fresh signup, BambooHR will add some default data for you.
Once you have signed up for BambooHR and added employee information, click on the Profile button in the top right corner and select API Keys from the dropdown menu.
Create a new API key by giving it a name. Make note of the key and keep it somewhere safe, as you’ll be using it while setting up a remote source in Hygraph:
Next, to see the data sent by the BambooHR API, refer to the BambooHR API Authentication docs and then send a GET request to https://api.bamboohr.com/api/gateway.php/<YOUR_BAMBOOHR_DOMAIN_NAME>/v1/employees/<EMPLOYEE_ID>?fields=firstName,lastName,gender,jobTitle using an HTTP client like Postman.
Don't forget to replace the values for <YOUR_BAMBOOHR_DOMAIN_NAME>, <EMPLOYEE_ID>, and <YOUR_BAMBOOHR_API_KEY> in the above request.
If the employee ID exists, you’ll get a response containing the fields you passed in the request URL.
On Hygraph dashboard, visit the Schema tab in the left sidebar and then add a new Remote Sources for BambooHR by adding the following details:
Headers: Accept: application/json and Authorization: Bearer <YOUR_BAMBOOHR_API_KEY>
When connecting to a remote API, you can specify the shape of the response coming from the API with the help of a custom type definition. Still on the remote source form, scroll down and add the BambooHREmployee type with the following fields under the Custom type definition field:
typeBambooHrEmployee{
firstName:String
gender:String
id:String
jobTitle:String
lastName:String
}
Save the settings for the remote source, and create a new model for storing employee information. Give it the display name of "Employee", and add the following fields to it:
BambooHR ID, a Single line text field
External, a REST field. For this field, add the following details:
For the company wiki, you need to add data to the models. This data will eventually be shown on the frontend.
To add data to the models, click on Content in the left sidebar, and then add some data and external data sources, such as Cloudinary and BambooHR. Select the model to which you're adding the data, and then click Add entry. Fill in the fields that you created previously, then Save & add another until you've populated the model with data. When you're done, click Save & publish. Do this for each model.
By default, access to the Content API is forbidden. To get the data from Hygraph, you'll need to set up permissions.
To do so, first, visit the Project Settings in the left sidebar. Click on API Access under the ACCESS header. You’ll be provided with the GraphQL endpoint for the Content API. Make note of this, as you’ll use this endpoint to access the content.
Instead of providing public access to the API, you can protect it with an authentication token and add permissions to it. To do so, visit Project settings in the left sidebar, then click on Create token under the Permanent Auth Tokens section:
Fill in the details for your token by providing it a name, a default stage of your choice for content delivery, and an optional description:
Click Create & configure permissions to create your token. You'll be taken to the Create Permissions page, which displays the token at the top. Make note of this token, as you’ll be using it while fetching the content from the frontend:
Configure the permissions for the Auth token that you just created by clicking the Create permission:
For this app, you only want to allow read access to the content. Check the Read rule for all of the models in all locales, which will allow read access to every model in Hygraph.
With that, you can now access the contents in models using GraphQL queries. To see the data sent by Hygraph, open Postman, visit Auth tab, select Bearer Token as the type, and add the Hygraph auth token as the token's value:
Finally, send the following queries to get data for each model:
For the employees model:
query{
employees{
id
bambooHrId
external{
id
firstName
lastName
gender
jobTitle
}
}
}
For the company policy model:
query{
companyPolicies{
id
title
description
}
}
For the business glossary model:
query{
businessGlossaries{
id
title
description
}
}
For the video course model:
query{
courseVideos{
id
title
video
}
}
The backend setup for Hygraph is complete, and now you can set up the frontend to consume data from the backend.
You are now ready to build the Next.js frontend website for the company wiki. To create a Next.js project, run the following command in your terminal:
npx create-next-app@latest
On the terminal, when you are asked about the project‘s name, set it to "company-wiki". After that, all the npm dependencies will be installed.
After the installation is complete, navigate into the company-wiki directory and start the Next.js development server by running the following commands in your terminal:
cd company-wiki
npm run dev
This will start the development server on port 3000 and take you to localhost:3000. The first view of the Next.js website will look like this:
For this application, you need the following npm dependencies:
Apollo Client, which is a fully-featured GraphQL client with caching.
GraphQL Wrapper, which is a JavaScript implementation for GraphQL.
Marked, a low-level compiler for parsing Markdown.
Install the above dependencies by running the following command in your terminal:
npm i @apollo/client graphql marked
Since everyone likes to style their app in their own way, this tutorial will skip styling the app, and instead concentrate on core functionality.
You need to set up a GraphQL Apollo Client to communicate with the Hygraph Content API.
To do so, first, create a config directory in the project’s root directory. Then, in the config directory, create a file called apolloClient.js and add the following code to it:
Replace YOUR_HYGRAPH_CONTENT_API_ENDPOINT with your Hygraph Content API endpoint, which is located in Project Settings / Access / API Access, and <YOUR_HYGRAPH_PERMANENTAUTH_TOKEN> with your Hygraph permanent auth key, which is located in Project Settings / Access / API Access / Permanent Auth Tokens.
Open the _app.js file in the pages directory and replace the existing code with the following code:
// 1
import{ApolloProvider}from"@apollo/client";
import{ client }from"../config/apolloClient";
functionMyApp({Component, pageProps }){
return(
// 2
<ApolloProviderclient={client}>
<Component{...pageProps}/>
</ApolloProvider>
);
}
exportdefaultMyApp;
In the above code:
You import the ApolloProvider from the @apollo/client library and the client object that you created earlier.
You wrap the Component with ApolloProvider, which allows you to access custom hooks and functions defined by @apollo/client anywhere in your Next.js application.
Creating the Company Wiki Home Page
Open the index.js file in the pages directory and replace the existing code with the following code:
importLinkfrom"next/link";
exportdefaultfunctionHomePage(){
return(
<>
<divclassName="mb-4">
<h1>Welcome to Company Wiki</h1>
</div>
<divclassName="d-flex flex-column">
<Linkhref="/employees"passHref>
<aclassName="mb-3">Employees</a>
</Link>
<Linkhref="/company-policies"passHref>
<aclassName="mb-3">Company Policies</a>
</Link>
<Linkhref="/business-glossary"passHref>
<aclassName="mb-3">Business Glossary</a>
</Link>
<Linkhref="/course-videos"passHref>
<aclassName="mb-3">Course Videos</a>
</Link>
</div>
</>
);
}
In the code, you define and export the HomePage component, in which you provide links to Employees, Company Policies, Business Glossary, and Course Videos.
Save your progress and visit localhost:3000, where you should see something similar to this:
Note that because styling has been left to the reader, your page may look slightly different. However, the core aspects of it—the title and the links to the pages—should be present.
Creating the Employees Page
Create an employees.js file in the pages directory and paste in the following code:
The explanation above is how each page is created. The numbered steps are the same, and all that changes is the name of the component in steps two and five. As such, while the full code for each page is given, the remaining pages won't have an explanation after them.
Creating the Company Policies Page
Create a company-policies.js file in the pages directory and add the following code to it:
As a bonus, you can also deploy your company wiki to a platform like Vercel. You'll need a Vercel account for this part of the tutorial.
To do so, initialize a Git repository in your local project directory, then commit and push the changes to an upstream GitHub repository.
Import your repository to Vercel.
Vercel will automatically detect the framework. Add the project's environment variables and their respective values, then click on Deploy to start the build:
Once the build is complete, you’ll see the deployment URL.
Finally, visit the deployment URL and you’ll see your Next.js website.
In this tutorial, you learned to create an internal company wiki from scratch. You implemented the backend and content management with Hygraph, and the frontend with Next.js. You also learned to create and fetch data from a remote source in Hygraph. Finally, you learned to manage assets on a third-party host like Cloudinary.
The entire source code for this tutorial is available in this GitHub repository.
Blog Author
Ravgeet Dhillon
Ravgeet Dhillon is a full-time software engineer and technical content writer who codes and writes about React, Vue, Flutter, Laravel, Node, Strapi, and Python. Based in India, he helps startups, businesses, and open source organizations with software consultancy.
Share with others
Sign up for our newsletter!
Be the first to know about releases and industry news and insights.