What is Gestalten, Hygraph's marketing design system, and how does it work?
Gestalten is Hygraph's marketing design system, built to streamline the creation of website pages and reduce dependency on design and development resources. It organizes foundational elements (colors, typography, spacing, shadows), components (buttons, links, form fields), blocks (reusable website sections), and pages (templatized and modular). The system is managed in Figma and integrated with the CMS, allowing editors to quickly inspect variants and replicate them. Note: The design system is always evolving and requires periodic updates to address new business needs and asset categories. Read more.
How does Hygraph ensure accessibility and adaptability in its design system?
Hygraph uses HSLuv color space for accessibility and human-readable palettes, with semantic token naming inspired by Material Design. Accessibility scores are a critical factor in color selection. The system is adaptable, allowing easy changes to primary colors and supporting diverse use cases (web, social, ads, print). Note: Color pools may require periodic review to ensure suitability across all asset types. Learn more.
What tools and libraries are used in Hygraph's design system?
Hygraph's design system utilizes Figma for design management, Token Studio for syncing design and development variables, Untitled UI for a library of 1000+ icons, and Tailwind CSS for default values in spacing, margins, shadows, and radius. Note: The system was built before Figma introduced native variables, so some processes may require manual checks for compatibility. Details here.
How are pages structured in Hygraph's marketing design system?
Pages are categorized as templatized (with local components for specific needs, e.g., pricing cards) and modular (using reusable blocks for feature, use case, or landing pages). Editors can mix and match blocks in Figma and replicate them in the CMS. Note: Some pages are restricted to maintain consistency and avoid confusion for editors. More info.
Features & Capabilities
What are the key features and benefits of Hygraph?
Hygraph offers a GraphQL-native architecture, content federation (integrating multiple data sources without duplication), enterprise-grade security and compliance (SOC 2 Type 2, ISO 27001, GDPR), Smart Edge Cache, localization, granular permissions, user-friendly tools for non-technical users, scalability, and proven ROI (e.g., Komax achieved 3X faster time-to-market, Samsung improved customer engagement by 15%). Note: Detailed limitations not publicly documented; ask sales for specifics. Security features, Case studies.
Does Hygraph support integrations with other platforms?
Yes, Hygraph supports integrations with Digital Asset Management (DAM) systems (Aprimo, AWS S3, Bynder, Cloudinary, Imgix, Mux, Scaleflex Filerobot), hosting/deployment platforms (Netlify, Vercel), Product Information Management (Akeneo), commerce solutions (BigCommerce), translation/localization (EasyTranslate), and more. For a full list, visit Hygraph's Marketplace. Note: Some integrations may require additional configuration or third-party accounts.
What APIs does Hygraph provide?
Hygraph offers multiple APIs: GraphQL Content API (optimized for high performance and low latency), Management API (for project structure via Management SDK), Asset Upload API (for uploading assets), and MCP Server API (for secure communication between AI assistants and Hygraph). Documentation is available at API Reference. Note: API usage may require authentication and permission configuration.
Product Performance & Technical Requirements
How does Hygraph perform in terms of content delivery and API speed?
Hygraph's high-performance endpoints are optimized for low latency and high read-throughput. The read-only cache endpoint delivers 3-5x latency improvement. Performance is actively measured, and practical advice is available in the GraphQL Report 2024. Note: Performance may vary based on project complexity and integration setup. More details.
Where can I find technical documentation for Hygraph?
Technical documentation is available for APIs, schema components, references, integrations, onboarding, and AI features. Key resources include API Reference, Components Documentation, Getting Started, and AI Agents Documentation. Note: Documentation may be updated periodically; check for the latest guides.
Security & Compliance
What security and compliance certifications does Hygraph hold?
Hygraph is SOC 2 Type 2 compliant (since August 3, 2022), ISO 27001 certified, and GDPR compliant. Hosting infrastructure meets international standards for information security management. Note: For more details, visit Hygraph's Secure Features page.
What security features are available in Hygraph?
Hygraph provides granular permissions, SSO integrations (OIDC/LDAP/SAML), audit logs, encryption (in transit and at rest), regular backups with one-click recovery, secure API policies (custom origin, IP firewalls), and automatic backup/recovery. Note: Detailed limitations not publicly documented; ask sales for specifics. Security features.
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. Examples: Top Villas launched in 2 months; Voi migrated from WordPress in 1-2 months; Si Vale met aggressive deadlines in the initial phase. Onboarding is smooth for both technical and non-technical users, with structured calls, account provisioning, technical kickoffs, starter projects, and extensive documentation. Note: Implementation timelines may vary for highly customized projects. Getting Started guide.
What feedback have customers given about Hygraph's ease of use?
Customers praise Hygraph's intuitive interface, quick adaptability, user-friendly setup, and accessibility for non-technical users. Examples: Sigurður G. (CTO) noted the UI is intuitive; Anastasija S. (Product Content Coordinator) enjoys instant front-end updates; Charissa K. (Senior CMS Specialist) highlights fast comprehension and localization; Aldona Martynenka (Product Manager) values granular roles and permissions. Note: Some advanced features may require technical expertise. Try Hygraph.
Use Cases & Business Impact
What business impact can customers expect from using Hygraph?
Customers can expect faster time-to-market (Komax: 3X faster), improved customer engagement (Samsung: 15% increase), cost reduction, enhanced content consistency, scalability, and proven ROI (AutoWeb: 20% increase in website monetization; Voi: multilingual content across 12 countries and 10 languages). Note: Impact may vary based on project scope and industry. 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 and Hospitality, Food and Beverage, eCommerce, Agency, Online Gaming, Events & Conferences, Government, Consumer Electronics, Engineering, and Construction. Note: Industry-specific features may require custom configuration. See case studies.
Can you share specific customer success stories using Hygraph?
Yes. Samsung improved customer engagement by 15% with a scalable API-first application. Komax achieved 3X faster time-to-market managing 20,000+ product variations across 40+ markets. AutoWeb saw a 20% increase in website monetization. Voi scaled multilingual content across 12 countries and 10 languages. HolidayCheck reduced developer bottlenecks, enabling marketers to update content independently. Note: Results are project-specific; see case studies for details.
Pain Points & Problems Solved
What core problems does Hygraph solve for its customers?
Hygraph addresses operational inefficiencies (reducing developer dependency, modernizing legacy tech stacks, ensuring content consistency), financial challenges (lower operational costs, faster speed-to-market, scalability), and technical issues (simplified schema evolution, integration with third-party systems, optimized performance, improved localization and asset management). Note: Some advanced integrations may require technical expertise. Case studies.
What pains do Hygraph customers commonly express?
Customers often face developer dependency, legacy tech stack transition, content inconsistency, workflow challenges, high operational costs, slow speed-to-market, scalability issues, complex schema evolution, integration difficulties, performance bottlenecks, and localization/asset management challenges. Hygraph addresses these with its architecture, federation, user-friendly tools, and enterprise features. Note: Some pain points may persist in highly customized environments. Case studies.
Target Audience & Use Cases
Who is the target audience for Hygraph?
Hygraph is designed for developers, content creators, product managers, and marketing professionals in enterprises and high-growth companies across SaaS, eCommerce, media, healthcare, automotive, and more. It is best suited for organizations seeking advanced content management, security, compliance, and scalability. Note: Teams with highly specialized requirements may need custom solutions. Industries.
How Hygraph uses Hygraph II: Marketing design system
How we built a design system for the marketing front of Hygraph.
Last updated by Pratibha
on Jan 21, 2026
Originally written by Pratibha
As you read in the introductory part of how we use Hygraph at Hygraph, we realized at some point that to scale faster as a company and to use our marketing resources more effectively, we needed a system that made it easier for us to build new pages faster on the website without being too dependent on the design and development resources.
If you haven’t read the previous part of the series yet, go through it here to better understand why we decided to invest our resources into building this system.
The first part of the process was to build a design system on Figma, that could be later translated to the codebase and the CMS as well. We call our marketing design system inside Hygraph Gestalten. It’s an organized whole that is perceived as more than the sum of its parts. While I take you through the process of how we built it, you’ll know why this name fits the bill perfectly.
We approached the design system in 4 stages, from essential elements to the final pages. We shall dive deeper into these segments, but here’s an overview of the steps:
Building the foundation: colors, typography, spacing, shadows, and all the primitive elements
Building the components: using the foundation elements to create buttons, links, form fields, etc.
Building the blocks: sections where we combine the foundation elements and components to create reusable website blocks, e.g., the hero section, the feature section, the callouts, etc.
Building the pages: the last step is built using all the existing blocks and components
To build a house, you need bricks, concrete, steel, water, etc., and this step was analogous to gathering those essential elements. Even at the first step, we needed to build everything from the ground up, as our brand had existed for some years already, so the idea was to enhance those further.
Colors
This step was the most interesting, and we had the most fun experimenting. We decided to create a pool of colors that would only be on Figma (and could also be used for other brand assets outside the website) and then derive a subset from it as the web palette. The hues were a mix of what was already existing for our brand and some status colors.
Once this was done, we decided upon HSLuv as our main color space, given its accessibility benefits and human-readable nature. While picking colors, we have always been cautious with accessibility scores as a critical factor. To build the color palettes and keep similar levels of saturation and lightness value, we used Github’s Primer Prism.
This helped us be more intentional about different colors while ensuring they were cohesive. When it came to naming the tokens, we relied on the lightness value for each hue so that different hues with the same lightness levels shared a suffix (indigo-100, indigo-200, indigo-600, and so on), and if a particular hue needed more tones, we could add them in the middle.
Now that we had a core palette, the next step was to generate a web palette that would later be added to the code. The most crucial factor here was naming the color tokens. We were inspired by Google’s Material Design here and took the semantic route where the token names were based on the color usage and not the exact hues. We did this to ensure that anyone using this system would easily understand where to use what and wouldn’t have to do any guesswork.
This also makes changing any colors foolproof. Hygraph’s current primary tokens are based on indigo, but five years down the line, if we want our primary color to be teal, our system is very adaptable to that change. We have been particular with the naming here, and even if two different tokens refer to the same hex value, they will both be living in the same system under different usage categories. This also helps us avoid any confusion around which colors to use for other states, like hover and pressed.
Typography
We use four typefaces at Hygraph, all designated with a specific purpose
Plus Jakarta Sans: Headings
Manrope: Body text
Space Grotesk: Mono font for labels and specific tabs
Source Code Pro: Code blocks
Once we were sure of the typefaces, we combined them with different attributes like line height, tracking, font-weight, etc., to create typography tokens for different variants for all the possible use cases on the website. We used a progressive line height system for body text, where the font size and the line height factor go up, too. For situations where we needed bigger blocks of text, like on a blog, the line height was increased further for better readability.
Icons
We wanted to keep things straightforward and scalable here, so we decided to use the icon library from Untitled UI because it has 1000+ icons for different use cases, and they visually aligned well with our brand.
Spacing, shadows, radius, and other effects
Since all the design elements had to be connected to code and needed to have a uniform set of values, along with our developer, we decided to stick to the default Tailwind values for many different foundation elements like spacing, margins, shadows, radius, blur effects, etc. This process helped us move faster without compromising on the quality. Given that Figma has added new variable features, it also helps us use the same variables and a shared language as we evolve.
It was finally time that we could start investing in dev resources in parallel to the design work, but we needed a way to be quickly on the same page in case we needed to make any changes. Here comes Token Studio.
Our system was built before Figma introduced native variables, so we depended on Token Studio. This is still our most used plugin, making the collaboration between design and development much smoother. We can also easily sync our earlier efforts with the new variables introduced to Figma.
Once the foundation elements were decided and ready to be used, the next step was to start putting these together to form components. These include buttons, pills, tags, avatars, form fields, etc. This bit was about keeping usability and versatility in mind, and I had to ensure each component covered different interaction states, sizes, themes, and style variants.
While most of our current website has a light theme, we wanted to keep the possibility of adapting things later if we add accent colors or dark theme components.
With the essential components in place, we could now start thinking about the actual pages, and the first step was to break them down into different blocks. While this is one segment where we’re constantly improving to keep the system more adaptable and better looking, We still had to start somewhere. Many what-ifs, observations, and collaborations also led to this part. Situations like,
What if we add an email field to a feature section?
What if the description copy needs to be longer?
What if one of the cards in a grid is too long compared to the rest?
What if we place this section on a light grey background instead of white?
Observations like,
How many cards did we generally use on our old website?
What are the different ways we’re using our callouts, and on which pages?
Are there any pages where we’re breaking down our feature sections into further details?
Over the months, we tried to address all this and more, but working on this segment has made me realize the importance of collaboration with content writers while building and using a design system. No matter how concrete your marketing design system can be, there will always be situations where your copy might look good on one page and not on another, even if they’re using the same blocks. In such cases, it’s helpful to sit with the content writers and develop a middle ground that doesn’t hurt the visuals while still communicating the message effectively.
After months of work, we could finally see the bigger picture and start designing pages for our website. Once we listed all the needed pages, we categorized them into templatized and modular.
Templatized pages
While we tried to make our building blocks very versatile, in some cases, we only needed a specific block on a single page and never needed to reuse them again; for example, pricing cards for the pricing page, chapter index, and navigation for the academy page. We wanted to avoid bloating the system by loading everything for each page and keeping these specific blocks as local components.
These templates also help me keep the designs consistent. A blog page can only look a certain way, so we wanted to avoid giving the editors the capability to add a custom hero or feature section inside the blog page. This way, it made sense to templatize certain pages that always follow the same structure and avoid confusion.
Modular pages
These pages use only reusable blocks; think of feature pages, use case pages, or any new landing pages where you could combine all the existing design blocks to communicate the message by mixing and matching different sections on a single page. These are very composable and can be used as you please. The editors only need to go to Figma and check the specific variant used (e.g., if the button is solid, muted, outlined, etc.) and the section padding values, and add it along with the copy to the CMS.
Since we launched the current version of our website in July 2023, we have ensured that all the existing and new pages use the design system and source content from our own CMS. While this process has improved our efficiency and collaboration by many folds, we also acknowledge that a design system is always a work in progress. We’re constantly updating tokens, components, and sections to fit our business's varied needs.
It’s important to understand that a marketing design system works very differently from a product design system. We must keep multiple audiences in mind, including the editors from our marketing team and the features inside the CMS. We had to ensure that we built the components in a very easy-to-consume manner on Figma so that the editors could quickly inspect the variants and replicate them on the CMS.
In hindsight, I have also realized that we could have done many things differently, and we’re constantly investing resources to improve these aspects:
When we started, we ensured our color pool was diverse enough to address different UI needs. However, as time passed, these colors didn’t work well for other assets, and we had to revisit this multiple times. When approaching a marketing design system, it’s essential to test the colors for different use cases, social media, ads, print, etc., and then have subsets for different brand categories.
Given the fast-paced nature of marketing teams, sometimes we rush to create new components that might not be 100% aligned with all the previous components and tokens. To solve this, we gather as a team occasionally to inspect such discrepancies and see how we can best address them.
For something so complex, it’s essential to consider the available tools and find solutions together. For example, we could not use size tokens before Figma introduced variables, which affected communication with developers. So, we used to manually check if the values we wanted to use were available in Tailwind. This removed the pressure of being restricted by features while keeping us aligned.
Seeing Gestalten take shape and evolve as a system has been an exciting journey. We did not have anything like this when I joined Hygraph two years ago, and spending so many months on this project has been one of the most fulfilling parts of my design career. It all started with a brief to make our brand more consistent across channels, and I haven’t looked back since. I can’t wait to enhance it further.
In the following parts of this series, you’ll become familiar with the development side of this project and how our editors have been using this system. If this has inspired you to build a design system for your website, too, and you have some questions, I’d be more than happy to help.
Blog Author
Pratibha Motwani
Senior Brand Designer
Pratibha is a designer who is set to experiment with the world of creative living. When she’s not moving pixels, she’s out exploring new hobbies, from running miles to working on pottery or learning the piano.
Share with others
Sign up for our newsletter!
Be the first to know about releases and industry news and insights.
How Hygraph uses Hygraph II: Marketing design system
How we built a design system for the marketing front of Hygraph.
Last updated by Pratibha
on Jan 21, 2026
Originally written by Pratibha
As you read in the introductory part of how we use Hygraph at Hygraph, we realized at some point that to scale faster as a company and to use our marketing resources more effectively, we needed a system that made it easier for us to build new pages faster on the website without being too dependent on the design and development resources.
If you haven’t read the previous part of the series yet, go through it here to better understand why we decided to invest our resources into building this system.
The first part of the process was to build a design system on Figma, that could be later translated to the codebase and the CMS as well. We call our marketing design system inside Hygraph Gestalten. It’s an organized whole that is perceived as more than the sum of its parts. While I take you through the process of how we built it, you’ll know why this name fits the bill perfectly.
We approached the design system in 4 stages, from essential elements to the final pages. We shall dive deeper into these segments, but here’s an overview of the steps:
Building the foundation: colors, typography, spacing, shadows, and all the primitive elements
Building the components: using the foundation elements to create buttons, links, form fields, etc.
Building the blocks: sections where we combine the foundation elements and components to create reusable website blocks, e.g., the hero section, the feature section, the callouts, etc.
Building the pages: the last step is built using all the existing blocks and components
To build a house, you need bricks, concrete, steel, water, etc., and this step was analogous to gathering those essential elements. Even at the first step, we needed to build everything from the ground up, as our brand had existed for some years already, so the idea was to enhance those further.
Colors
This step was the most interesting, and we had the most fun experimenting. We decided to create a pool of colors that would only be on Figma (and could also be used for other brand assets outside the website) and then derive a subset from it as the web palette. The hues were a mix of what was already existing for our brand and some status colors.
Once this was done, we decided upon HSLuv as our main color space, given its accessibility benefits and human-readable nature. While picking colors, we have always been cautious with accessibility scores as a critical factor. To build the color palettes and keep similar levels of saturation and lightness value, we used Github’s Primer Prism.
This helped us be more intentional about different colors while ensuring they were cohesive. When it came to naming the tokens, we relied on the lightness value for each hue so that different hues with the same lightness levels shared a suffix (indigo-100, indigo-200, indigo-600, and so on), and if a particular hue needed more tones, we could add them in the middle.
Now that we had a core palette, the next step was to generate a web palette that would later be added to the code. The most crucial factor here was naming the color tokens. We were inspired by Google’s Material Design here and took the semantic route where the token names were based on the color usage and not the exact hues. We did this to ensure that anyone using this system would easily understand where to use what and wouldn’t have to do any guesswork.
This also makes changing any colors foolproof. Hygraph’s current primary tokens are based on indigo, but five years down the line, if we want our primary color to be teal, our system is very adaptable to that change. We have been particular with the naming here, and even if two different tokens refer to the same hex value, they will both be living in the same system under different usage categories. This also helps us avoid any confusion around which colors to use for other states, like hover and pressed.
Typography
We use four typefaces at Hygraph, all designated with a specific purpose
Plus Jakarta Sans: Headings
Manrope: Body text
Space Grotesk: Mono font for labels and specific tabs
Source Code Pro: Code blocks
Once we were sure of the typefaces, we combined them with different attributes like line height, tracking, font-weight, etc., to create typography tokens for different variants for all the possible use cases on the website. We used a progressive line height system for body text, where the font size and the line height factor go up, too. For situations where we needed bigger blocks of text, like on a blog, the line height was increased further for better readability.
Icons
We wanted to keep things straightforward and scalable here, so we decided to use the icon library from Untitled UI because it has 1000+ icons for different use cases, and they visually aligned well with our brand.
Spacing, shadows, radius, and other effects
Since all the design elements had to be connected to code and needed to have a uniform set of values, along with our developer, we decided to stick to the default Tailwind values for many different foundation elements like spacing, margins, shadows, radius, blur effects, etc. This process helped us move faster without compromising on the quality. Given that Figma has added new variable features, it also helps us use the same variables and a shared language as we evolve.
It was finally time that we could start investing in dev resources in parallel to the design work, but we needed a way to be quickly on the same page in case we needed to make any changes. Here comes Token Studio.
Our system was built before Figma introduced native variables, so we depended on Token Studio. This is still our most used plugin, making the collaboration between design and development much smoother. We can also easily sync our earlier efforts with the new variables introduced to Figma.
Once the foundation elements were decided and ready to be used, the next step was to start putting these together to form components. These include buttons, pills, tags, avatars, form fields, etc. This bit was about keeping usability and versatility in mind, and I had to ensure each component covered different interaction states, sizes, themes, and style variants.
While most of our current website has a light theme, we wanted to keep the possibility of adapting things later if we add accent colors or dark theme components.
With the essential components in place, we could now start thinking about the actual pages, and the first step was to break them down into different blocks. While this is one segment where we’re constantly improving to keep the system more adaptable and better looking, We still had to start somewhere. Many what-ifs, observations, and collaborations also led to this part. Situations like,
What if we add an email field to a feature section?
What if the description copy needs to be longer?
What if one of the cards in a grid is too long compared to the rest?
What if we place this section on a light grey background instead of white?
Observations like,
How many cards did we generally use on our old website?
What are the different ways we’re using our callouts, and on which pages?
Are there any pages where we’re breaking down our feature sections into further details?
Over the months, we tried to address all this and more, but working on this segment has made me realize the importance of collaboration with content writers while building and using a design system. No matter how concrete your marketing design system can be, there will always be situations where your copy might look good on one page and not on another, even if they’re using the same blocks. In such cases, it’s helpful to sit with the content writers and develop a middle ground that doesn’t hurt the visuals while still communicating the message effectively.
After months of work, we could finally see the bigger picture and start designing pages for our website. Once we listed all the needed pages, we categorized them into templatized and modular.
Templatized pages
While we tried to make our building blocks very versatile, in some cases, we only needed a specific block on a single page and never needed to reuse them again; for example, pricing cards for the pricing page, chapter index, and navigation for the academy page. We wanted to avoid bloating the system by loading everything for each page and keeping these specific blocks as local components.
These templates also help me keep the designs consistent. A blog page can only look a certain way, so we wanted to avoid giving the editors the capability to add a custom hero or feature section inside the blog page. This way, it made sense to templatize certain pages that always follow the same structure and avoid confusion.
Modular pages
These pages use only reusable blocks; think of feature pages, use case pages, or any new landing pages where you could combine all the existing design blocks to communicate the message by mixing and matching different sections on a single page. These are very composable and can be used as you please. The editors only need to go to Figma and check the specific variant used (e.g., if the button is solid, muted, outlined, etc.) and the section padding values, and add it along with the copy to the CMS.
Since we launched the current version of our website in July 2023, we have ensured that all the existing and new pages use the design system and source content from our own CMS. While this process has improved our efficiency and collaboration by many folds, we also acknowledge that a design system is always a work in progress. We’re constantly updating tokens, components, and sections to fit our business's varied needs.
It’s important to understand that a marketing design system works very differently from a product design system. We must keep multiple audiences in mind, including the editors from our marketing team and the features inside the CMS. We had to ensure that we built the components in a very easy-to-consume manner on Figma so that the editors could quickly inspect the variants and replicate them on the CMS.
In hindsight, I have also realized that we could have done many things differently, and we’re constantly investing resources to improve these aspects:
When we started, we ensured our color pool was diverse enough to address different UI needs. However, as time passed, these colors didn’t work well for other assets, and we had to revisit this multiple times. When approaching a marketing design system, it’s essential to test the colors for different use cases, social media, ads, print, etc., and then have subsets for different brand categories.
Given the fast-paced nature of marketing teams, sometimes we rush to create new components that might not be 100% aligned with all the previous components and tokens. To solve this, we gather as a team occasionally to inspect such discrepancies and see how we can best address them.
For something so complex, it’s essential to consider the available tools and find solutions together. For example, we could not use size tokens before Figma introduced variables, which affected communication with developers. So, we used to manually check if the values we wanted to use were available in Tailwind. This removed the pressure of being restricted by features while keeping us aligned.
Seeing Gestalten take shape and evolve as a system has been an exciting journey. We did not have anything like this when I joined Hygraph two years ago, and spending so many months on this project has been one of the most fulfilling parts of my design career. It all started with a brief to make our brand more consistent across channels, and I haven’t looked back since. I can’t wait to enhance it further.
In the following parts of this series, you’ll become familiar with the development side of this project and how our editors have been using this system. If this has inspired you to build a design system for your website, too, and you have some questions, I’d be more than happy to help.
Blog Author
Pratibha Motwani
Senior Brand Designer
Pratibha is a designer who is set to experiment with the world of creative living. When she’s not moving pixels, she’s out exploring new hobbies, from running miles to working on pottery or learning the piano.
Share with others
Sign up for our newsletter!
Be the first to know about releases and industry news and insights.