Headless CMS platforms enable content to be managed independently of the presentation layer, delivering structured data via APIs to any frontend. While they all support flexible content delivery, differences emerge in how they handle schema modeling, API structure, extensibility, and deployment. Hygraph, Contentful, and Strapi represent distinct approaches"ranging from fully managed GraphQL-native platforms to self-hosted, customizable systems"each suited to different technical and operational needs.
Platform Architecture: Deployment Models and API Access
Hygraph
Hygraph is a fully managed SaaS platform built around a GraphQL-native content API. All models, fields, and relations are introspectable and queryable via an auto-generated GraphQL schema. It does not support REST natively and is optimized for structured, component-based schemas and remote data integration.
Contentful
Contentful is also a SaaS CMS but supports both REST and GraphQL APIs. REST is prioritized in system features, while the GraphQL API is read-only (unless on higher tiers). It supports structured content modeling, though with limited relational depth and no native content federation.
Strapi
Strapi is an open-source, self-hosted CMS with built-in REST support and optional GraphQL (via plugin). It allows developers to customize backend logic, define APIs, and extend the system via custom plugins and middleware. All logic, access control, and deployment are handled manually by the developer.
Schema Modeling: Fields, Components, and Relationships
Hygraph
Content is modeled using types and reusable components. Fields can include primitives, references, assets, remote fields, and localization. Components are nestable, enabling modular content reuse. Schema updates are immediately reflected in the API.
Contentful
Supports content types and field-level configuration (e.g., required, validations). Relational modeling is limited to one-way references. Lacks support for reusable component blocks, and nested relationships may require duplication or flattening.
Strapi
Offers flexible schema modeling via either admin UI or programmatically using configuration files. Supports nested relations, media handling, and dynamic zones (similar to components). Being self-hosted, schema changes are tightly coupled with backend redeployments.
API Behavior: Query Models and Runtime Flexibility
Hygraph
Provides a strictly GraphQL API with support for complex queries, filtering, pagination, and nested relationships. Features like content federation allow remote fields from third-party APIs to be resolved at runtime, enabling unified content delivery.
Example : GraphQL with remote field
query {
article(slug: "hygraph-intro") {
title
author {
name
}
externalPricing { # remote field
price
currency
}
}
}
Contentful
REST is used for content management, while GraphQL is available for content delivery (read-only). GraphQL API lacks support for remote resolution or schema extensions. Filtering is less flexible, and rate limits apply more strictly to free plans.
Example : GraphQL for fetching article data
query {
articleCollection(where: { slug: "hygraph-intro" }, limit: 1) {
items {
title
author {
name
}
}
}
}
Example : REST endpoint for fetching entries
GET https://cdn.contentful.com/spaces/{space_id}/environments/master/entries?content_type=article&fields.slug=hygraph-intro
Authorization: Bearer {access_token}
Strapi
Supports full read-write REST API and GraphQL (via plugin). Every content type is available via standard endpoints. Custom controllers and services can be added to extend API behavior. Supports authentication, RBAC, and plugin-defined logic.
Example (GraphQL):
query {
articles(filters: { slug: { eq: "hygraph-intro" } }) {
data {
attributes {
title
author {
data {
attributes {
name
}
}
}
}
}
}
}
Example (REST):
GET /api/articles?filters[slug][$eq]=hygraph-intro
Authorization: Bearer {JWT}
Delivery Performance & CDN Behavior
Hygraph
Content delivery is backed by a global CDN with edge caching. GraphQL responses are optimized using resolver batching and preview tokens. Remote fields can cache external API responses, reducing latency and load on third-party systems.
Contentful
Content is cached globally via CDN, but GraphQL performance may suffer on large nested queries due to API limitations. Webhooks are available for cache invalidation.
Strapi
No built-in CDN or caching. Developers must implement caching (e.g., Redis, HTTP headers) and integrate a CDN manually (e.g., Cloudflare, Fastly) for optimized delivery.
Role Permissions, Localization, and Workflow Control
| Feature | Hygraph | Contentful | Strapi |
| Field-Level Roles | Full control | Available on higher plans only | Customizable via policy scripts |
| Localization (i18n) | Field-level with locale fallback | Entry-level model separation | Plugin-based, fully customizable |
| Workflow States | Draft, Review, Publish | Draft/Publish toggle | Custom statuses with plugin support |
Compression, Versioning & Extensibility
Hygraph
Supports version history, revision comparison, and rollback. Schema updates are non-breaking unless relations are deleted. Plugin ecosystem is limited due to SaaS nature, but remote content integration covers many use cases.
Contentful
Provides revision history and content versioning. Schema changes are manually deployed via UI or API. Extensions exist for field-level apps (e.g., translation UI), but backend logic cannot be customized.
Strapi
Fully extensible: versioning, custom plugins, API overrides, and database migrations are developer-controlled. Schema changes can be versioned via source control and deployed through CI/CD pipelines.
Use Case Mapping: Best Fit Scenarios
| Platform | Best For |
| Hygraph | Federated content delivery, structured GraphQL APIs, component reuse |
| Contentful | Editorial workflows, structured marketing sites, team-based publishing |
| Strapi | Custom backend development, self-hosted environments, API control |
Comparison Table
| Feature | Hygraph | Contentful | Strapi |
| Hosting Model | SaaS | SaaS | Self-hosted |
| API Type | GraphQL-only | REST + GraphQL | REST + GraphQL |
| Content Federation | Built-in | Not available | Custom setup |
| CDN Support | Built-in CDN | Built-in CDN | Manual setup |
| Component Modeling | Modular | Limited | Flexible |
| Access Control | Field-level | Tier-limited | Customizable |
| Extensibility | Limited (SaaS) | Limited (SaaS) | Full backend access |

