Choosing a Headless CMS that Grows With You
Five features to look for in a Headless CMS
There are many ingredients that make a successful web development company. You've drummed up a steady stream of clients who generate recurring revenue. You've assembled a smart and capable team that is tailored toward supporting those clients. Now, it's time to streamline and grow to the next level.
One pitfall in this common model however is wasted time re-inventing the wheel. As your developers build custom web solutions for your clients, similar system requirements will undoubtedly arise. Do your clients need access to a database with an ORM? Do they commonly request authentication/role-based authorizations for their web applications? Do they need robust e-marketing or email services? As you, your developers, and your clients navigate the "build vs buy" question for each, you can end up with a unique solution for each unique client. This situation will quickly eat up support dollars, and as your development staff turns over this can amount to a huge amount of unmaintainable code.
Headless Content Management Systems (CMSs) are becoming increasingly popular as a solution to this common problem. Headless CMSs can provide a framework for building customized end-user experiences from a repository of content. If your team needs a common API for accessing content for multiple channels, or develops dynamic web applications based on content in a repository, then using a Headless CMS can save you time and money by doing some of the heavy lifting for you and letting you concentrate on your unique value proposition to your customers.
First, What is a Headless CMS?
Content Management Systems grew out of the early days of systemized web development, creating software for handle creating, managing and publishing large amounts of digital content. Early CMSs closed the loop in providing an interface for creating and publishing content to static web pages. However, ways in which we consume content from the internet has changed, and the old model of CMS is too rigid for today's mobile-friendly and content-syndicated platforms. Furthermore, as HTML 5 and sophisticated JavaScript frameworks like AngularJS and React have become more popular, there is increasing demand for sites that function as web applications, which is a stretch for a traditional CMS.
Headless CMSs are where content creation and application development meets, providing a flexible means of creating content and consuming it dynamically for any purpose. Often available as a cloud-based Software as a Service model, Headless CMSs take an API-first approach, providing access to the content repository through a well-defined Application Programming Interface, and allowing developers to access and manipulate content in a variety of computer languages. A good Headless CMS will provide a simple web interface for your clients while enabling your developers to build sophisticated applications for their content.
A bird's-eye view of your custom projects, once you have a few under your belt, will likely reveal a number of similar feature requests across your clients. A good Headless CMS solution for your business will cover a number of these features automatically, and one proven solution will help drive down the costs of future proposals for new business, making you more competitive in the long run. Below are a few questions key decision makers should ask themselves before committing to a particular solution.
1. Database Schemas and Flexibility
Almost every web or mobile application will need access to a database, and even the simplest solutions will quickly grow out of control without an ORM or structured data source like GraphQL to rein in unruly queries. Custom database schemas should be quick to set up and easy to query programmatically from your custom business logic with as little coding as possible.
Beyond these common setup concerns, application developers will often use object-orientation and principles to add modularity to their backend logic. A strong Headless CMS solution will superimpose these principles onto the underlying database system, abstracting these details away and making the manual setup of an ORM unnecessary. Object-oriented features like type inheritance and reusing common runtime behaviors can yield more flexible and maintainable end-user solutions in the long run.
Clients operating in multi-lingual regions or internationally will quickly run into the need to provide alternative content depending on their audience. This may be driven by manual selection (i.e. a menu option on a site) or though IP detection and mapping to a geographic location. While translating content into multiple languages can seem trivial, the queries from your data sources for both published and dynamic content will become much more complex, and juggling these records can cause logic to balloon in complexity. Headless CMSs are emerging with several features to streamline this, allowing for languages/locales to be chosen that affect downstream queries.
2. API-First Content Access
A hallmark of Headless CMS design is to enable access to repository content through multiple channels and using different languages and front-end frameworks. API-first Headless CMSs are designed to make content as simple to access as possible, through well-defined interfaces that remain backward compatible as new releases of the platform are rolled out. Integration points should be well documented with many example use cases. API-first CMSs will put developer interests first and foremost, streamlining the on-boarding process for your team as they build their first tools using the product.
If your Headless CMS solution is cloud-hosted, or if content needs to be accessed from remote locations, then web service access should be another component of the API that the system provides. REST web services are the most popular type of remote integration, and these should implemented behind-the-scenes using standards-based approaches that make accessing them seamless, while not sacrificing the security of your client's content.
3. Content Access and Authorizations
The Headless CMS you choose will be as much a tool for your clients as it is for your developers, and choosing one with a simple and easy-to-use interface will minimize your support costs and allow your customers to self-service as much of their end solution as possible. Often accessible through a browser, users should be able to quickly create and manage content that will become available on their platforms.
A key component to this however is authorizations and access control. Many organizations will have a hierarchy within their teams for who can edit which content, and choosing a solution that will support this can make or break a deal. While a good Headless CMS will support the definition of roles for accessing and managing content, a great Headless CMS will expose these roles through the API, enabling your developers to quickly re-use the system's authentication and role-based access control features in front-end logic.
4. Automated Backend Features
Whether choosing a cloud-hosted or self-hosted solution, a system that can automate common backend tasks can save developers a lot of time. Does your content repository need to pull data or syndicate content to third party systems on a routine basis? Or schedule other tasks to refresh caches or perform routine checks? While an API-first Headless CMS can expose content management features to backend scripts, this requires access to the backend server which is not friendly for your front-end developers or your client end-users, and may be impossible in some hosted environments.
A wholistic CMS solution will expose repeatable tasks in a more friendly way and enable you to schedule and maintain visibility of recurring services in a controlled way, which can save time and money in troubleshooting these processes once client solutions are released into the wild. A tool that can also provide point-and-click access to other backend features for developers, like system logs and mail queues, can add up to a big time saver for your business.
5. Plugins and Customizability
Aside from these API-level and backend features, a Headless CMS that fosters re-usability of common business logic for web and mobile applications can provide a big productivity boost. For example, many of your customers communicate with their own clients via email, and will want these daily tasks integrated with or automated by your custom solutions for them. Emailing large numbers of people presents its own challenges in ensuring timely delivery, avoiding spam blacklisting, and maintaining large and rapidly changing lists of recipients. Another common example is a re-usable e-commerce component. This feature always involves a lot of moving parts that can lead to complexity for your developers, including managing client inventory and variants (like sizes and colors), shipping and handling costs, applicable sales tax according to shipping address, integration with payment services, and security concerns.
While a good Headless CMS will enable you to easily recycle types, content and logic for different clients, larger open-source projects will facilitate an ecosystem of reusable and pluggable components for common problems such as these. Headless CMS solutions with an accompanying marketplace of plugins can provide a powerful toolkit for your company and is a must for keeping down costs for your clients.
In Summary
This list goes on depending on the types of clients you service. Choosing the best Headless CMS for your business will revolve around what common features you provide to your own client base and how much of this can be automated to keep your development and maintenance costs down over the long term. Frameworks that offer a wide variety of pluggable feature sets while enabling your to integrate with or inject your own logic can provide the most flexible long-term solution for your business.
Photo by Christian Bisbo Johnsen on Unsplash