Partners

DatoCMS Academy

Headless CMS Selection Criteria

Learn the concepts, applications, and criteria that go into making the move towards headless content management

TLDR

  • Each Headless CMS is slightly different, but there's 6 areas to consider when evaluating them in order to make the right choice.

  • Core capabilites: Amongst many other features, the CMS should support the basics for modern content management such as projects, environments, localization, flexible content modelling, and asset management.

  • Developer Experience: A strong Headless CMS places a good DX at the center of it's focus, and provides features around CLIs, robust APIs, up-to-date libraries, API playgrounds, migration tools, and granular tokens.

  • Editor Experience: Similarly, editors should look out for a good UX around features like text and image management, SEO, live previews, scheduled publishing, versioning, collaboration, and custom workflows.

  • Extensibility and Integrations: Since modern digital experiences use multiple tools and APIs to build unique customer experiences, the CMS should be able to easily integrate with other 3rd party Martech tools, APIs, and other services.

  • Security, Governance, and Permissions: To ensure the integrity of the project, the CMS should allow for custom and granular access control, tokens, and have the relevant compliance checks in place for it's architecture.

  • Support, Community, and Documentation: The vendor should have an active community of users, well documented APIs, and an active combination of assisted and self-serve support.

Now that we've gone over the high-level understanding required when deciding to opt for a Headless CMS, let's cover some specific capabilities you should keep an eye out for to make the right decision.

Core Capabilities

A robust CMS should bring out key features out-of-the-box to set you up with a good foundation. Normally, Headless CMS should allow for multiple teams to work on multiple projects, and provide certain features enabling this to happen smoothly:

  • Projects: The ability to have more than just one project for a variety of reasons, whether for websites, apps, or other digital entities.

  • Environments: More than just one `main` environment, allowing for developers to create sandbox environments for testing schema changes, or other big experiments.

  • Locales: The ability to create content serving different markets, ideally not only via different languages, but via locale-specific configurations (i.e., the ability to serve different Spanish content to es-ES and es-MX, rather than just ES).

  • Powerful content modeling: The flexibility to create and define your schema as you see fit, with a variety of model and field types including model collections, single-instance models, tree-like models, and blocks.

  • Field types: Schemas should reflect exactly what you’re trying to accomplish without messy hacks or workarounds. A rich variety of field types (like text, image, JSON, location, boolean, etc.) empowers you to define the ideal schema for your project(s).

  • Asset Management: Your CMS should come with robust DAM capabilities out of the box (as well as the ability to integrate to others). This should not only facilitate the CRUD operations of images, videos, and documents, but also provide optimization features for better bandwidth management, performance, and SEO.

Developer Experience

The DX is among the most critical aspects of selecting a Headless CMS – it should empower the devs to build better and faster rather than getting them stuck with inflexible technologies and ancient workflows. Here’s some of our considerations on what goes into a good DX for Headless CMS:

  • Starter Projects: Fully-fledged starter projects help developers get up to speed with new systems. Typically, having a ready to use CMS project for common use cases like websites and portfolios help get up to speed with the APIs, UIs, and other tools, making migrations and new projects go smoother.

  • CLIs: Command Line Interface (CLIs) functionalities allow developers to rapidly execute and automate CMS tasks from the command line.

  • Popular integration libraries: Given most modern development is within the JS ecosystem, having a CMS that comes with ready to use libraries for popular frameworks like React, Next, Remix, and Svelte can speed up development time considerably.

  • Plugin SDK and UI ecosystems: Devs can develop custom plugins with ease using Software Development Kits (SDKs) and UI system, extending the CMS functionality to suit your specific requirements around specific 3rd party tools, workflows, or processes.

  • API Playgrounds: An inbuilt API playground lets developers test, iterate, and experiment on the overall content query performance and complexity in a safe environment before implementing anything in the code base.

  • Migration tools and scripts: It’s never easy to migrate years of content and digital projects from one CMS to another considering how much of a cornerstone the CMS is in one’s digital stack. A good CMS should have multiple import and export options, migration tools, and easy to reference scripts (preferably in open file formats that aren’t proprietary) to make the transition smoother.

  • API Tokens with granular permissions: Security and content access are critical to larger projects. CMSs should allow the generation of API tokens with precise permissions, granting secure access to specific data and actions, enhancing data security.

  • Content Delivery APIs: A no-brainer, but it’s critical that the CMS should provide well-documented and robust APIs to easily query all the content needed from the CMS into the end projects.

  • Content Management APIs: As an additional functionality, a CMS should also have a strong content management API to allow for the programmatic creation, modification, and removal of content via API, for cases where manually created content via a UI isn’t the right approach.

  • Content Preview APIs: For better project management and content validation, having a content preview API to see and experience changes in real-time before making alterations to the repo makes a big difference.

  • Real Time Update APIs: For advanced use-cases where end-users need to consume data in real time as changes happen (think stock prices, live news, or sports updates), a CMS should provide a subscriptions API for the frontend to subscribe to changes, without needing to push a new build every time content is added or updated.

  • Images APIs: A good Images API to efficiently handle and deliver images, optimize website performance, and ensure a smooth user experience is a great feature to ensure you have access to. Image manipulation, optimization and format conversions via URL params are typical enrichments you should look out for.

  • Video Streaming APIs: If your use-case requires you to deliver high-quality video streaming with adaptive bitrate, adjusting video quality based on users' network conditions for optimal viewing, then your CMS should either provide a video streaming API, or have well documented alternatives for you to integrate.

  • User Management APIs: Aside from the content itself, a CMS should allow for programmatic user management, enabling efficient user administration and project management.

  • CDNs: And lastly, all these capabilities should be scalable for you depending on where your customers are. Ensure fast and reliable content delivery worldwide by  reducing latency and improving user experience by using a CMS with a strong CDN network and caching policy in place.

Editor Experience and Workflows

Similarly, the editorial experience is as important to the successful implementation of a new CMS as is the DX. For editors, there’s a much wider range of considerations when selecting a system.

  • Structured rich-text editing: A strong rich-text editor is both intuitive and powerful, letting your content editors easily write and format text, add images, links, custom blocks, and more. If they're coming from Wordpress, Wix, SquareSpace, or similar, they'll need a structured text editor that gives them all the capabilities they're used to out-of-the-box.

  • Image editing: Since most CMSs would come with inbuilt Digital Asset Management (DAM) solutions, it's important to see how they differentiate between one another. A solid approach should be to choose one that let's you edit and optimize images directly within the CMS, saving time and ensuring visual consistency across your website or app.

  • SEO and Social metadata management: Even though Headless CMSs can do more than websites, a website is very much the most common use-case, whether for publications, eCommerce, or something else. Either natively or via plugins, a good CMS should let you customize SEO metadata and social media sharing settings for each piece of content, improving your website's discoverability and user engagement.

  • Live previews and page building: Similar to the previous point, a CMS focused on making better websites should integrate with popular frontend deployment services natively or offer the ability to build custom previews, giving editors an opportunity to see their content before it goes live. As an added bonus, having options to build pages via modular content blocks make it much easier for editors to build, edit, and preview pages.

  • Scheduled publishing: Plan and automating content publication (and unpublishing) with scheduled publishing helps ensure timely updates and saves effort in manually pushing content live. Scheduled publishing should be available for single pieces of content, or collections scheduled together.

  • Content validations: Enforce content consistency and quality with content validation rules via the CMS, ensuring that content meets specified criteria before publication.

  • Localizations and translations: A strong Headless CMS should allow for granular locale-based publishing, where translations can be easily entered in (manually or programmatically) for any number of locales. A good way to ensure this is to check whether your vendor would only support, for example, creating content in English and French. Or whether they'd allow you to go even more granular and extend that to English (US), English (Australia), French (France), and French (Switzerland), for instance.

  • Content versioning: Versions let you track and review content changes over time with a comprehensive content history log, facilitating version control and content auditing. Typically a CMS should allow you to "rollback" or revert back to previous versions of a record should you decide that an earlier version was more relevant or accurate.

  • References and Links: CMSs should let you establish relationships between content items using links/reference fields, fostering a structured content architecture and cross-referencing, rather than having to manually enter related data for each entry. For example, rather than each blog post having to fill out the author information with each entry, a post should simply be linked to an author.

  • Real-time collaboration: Collaboration means different things to different teams. At the basic level, a CMS should allow for you to know who's interacting with content in real-time, with multiplayer presence showing who's active and contributing to the editorial process.

  • Custom workflows: Streamline content approval and publication processes with customizable editorial workflows, ensuring a smooth content lifecycle management.

Extensibility and Integrations

Especially when building connected digital experiences using multiple tools and services, assessing a CMS’s extensibility and integration capabilities is crucial. These factors determine how well the CMS can adapt to your evolving digital ecosystem and seamlessly connect with other tools and systems.

Your CMS should offer a strong plugin ecosystem, or the ability to create and host your own. These can range from simpler in-UI enhancements like SEO metadata previews, to something more advanced like selecting a product from an eCommerce catalog API via your PIM.

Check for a range of pre-built integrations with popular tools like marketing automation platforms, CRMs, e-commerce APIs, and analytics tools. For integrations that aren’t “out of the box”, the CMS should offer robust APIs for connecting with external systems.

Security, Governance, and Permissions

We’ve established that your CMS is a critical component of your digital stack, and as such, should ensure that all security and compliance measures are appropriate to your use-case. A secure CMS safeguards content, information, and access, mitigating potential risks and breaches. Commonly, it’s worth looking into making sure that your CMS vendor has a comprehensive process in place for backups, scaling, audit logs, and encryption. 

While it’s good to ensure they’re compliant with global security standards like ISO and GDPR, it’s equally worth exploring their in-product capabilities for granular access control for both, users, and APIs.

Support, Community, and Documentation

Lastly, always look for signs of an active product community! If there’s a strong user community, the chances you’re going to get a better experience are much higher. Good CMSs should have up-to-date information on their API docs, regularly updated changelogs, engaged support communities, and a range of guides to help users get up to speed with the system.

To get a complete overview of a Headless CMS like DatoCMS checks these boxes, explore a full list of our features.