This blog post attempts to provide an overview of some fundamental concepts for working with SaaS headless content management systems.
Content Management System (CMS)
A content management system separates text and media content from presentation and logic, allowing re-use of content managed by non-technical subject matter experts. Developers write code that retrieves data from the CMS and render that content as HTML or otherwise.
While each product has different features, consider all CMS from a single high-level architectural perspective. Each vendor should allow you to configure webhooks to signal external systems, provide HTTPS APIs for accessing content, and support customizations to the CMS user interface.
Using various technical architectures, content delivery systems retrieve data from the CMS and render it elsewhere, such as on a website, digital display, print, or otherwise. Where only authorized users can access content management, content delivery is generally accessible to anonymous visitors.
Headless Content Management
In the headless CMS metaphor, the body is the content management system that supports editorial activity, and the head is the content delivery system that services the visiting public. Headless content management systems are headless to the SaaS CMS vendor, who has no responsibility for content delivery, but bodiless to the customer, who has no responsibility for content management.
Headless content management systems do not include an engine for generating HTML. Customers choose from a range of available technologies that access CMS services to retrieve data as JSON over HTTPS.
Jamstack and Headless CMS
SaaS, for Software-as-a-Service, means that instead of selling the software to the customer to install, administer, upgrade, and otherwise maintain, the vendor hosts its own software for its customers, exposing all features as HTTPS endpoints. Compared to on-premises, Infrastructure-as-a-Service, Platform-as-a-Service, and even managed PaaS, SaaS places greater responsibility on the software vendor and reduces cost of ownership for the customer, such as the need for expertise in system internals.
Other than the fact that you are not responsible for managing it, you don’t need to know anything about SaaS to work with a SaaS headless CMS. The vendor provisions a CMS environment for you, and then you log in through a browser and start modifying data, or invoke APIs from your code, without ever considering the CMS installation and upgrade process.
HTTPS APIs and SDKs
Historically, an API meant a native application programming interface such as those available in C and Java that interact directly with local machine resources. In distributed, service-oriented architectures, an API is an HTTP endpoint with a contract for passing and returning data. Headless CMS vendors provide SDKs that abstract their HTTPS APIs as local application programming interfaces.
If you have not used services extensively in the past, the architectural shift from native to network APIs may be the most significant in the headless CMS learning process.
Where HTTPS service APIs allow external applications to call into the CMS, webhooks allow the CMS to call out to external applications over HTTPS. A webhook simply passes system event data to the URL configured to receive it.
While you should have a general understanding of JSON, data structures generally vary by CMS vendor and customer project, so you will have to learn them as you progress.
CDNs and Serverless
For performance and scalability, Jamstack solutions typically deploy static files to a CDN rather than to a specific farm of web servers or collection of application servers.
For server-side logic, serverless models, in which cloud infrastructure manages applications implemented by smaller independent services, minimize administrative costs and optimize scalability, Serverless really means less server, as there must still be an application server, even if the organization does not manage it directly.
Some independent vendors provide end-to-end content delivery hosting services. Customers check builds into source control for the vendor to deploy to their hosting infrastructure.
CMS implementations require data modeling, which is the definition of content structures to meet requirements for the solution. Data modeling includes the types of entries (records) and their fields, data validation requirements, relationships between entries, and the information architecture of the website as a collection of entries. Data modeling is a critical factor that can affect the usability, efficiency, and even success of a CMS implementation. A good data model simplifies initial and ongoing development.
Although SaaS systems are more agnostic about technology and customers are unrestricted in their choice of technologies, there are benefits to an alignment between technologies used by vendors and the organization. When choosing CMS, service and content delivery hosting, search, and other vendors, consider their expertise in technologies preferred by the organization.