This blog post provides perspective on the term extension as it is used in content management systems, specifically the Contentstack SaaS headless CMS.
This post is a member of the following glossary:
An extension provides additional functionality to an existing solution, such as to integrate with other systems.
Many CMS vendors provide optional extensions to their own products, integrations with technology partners, and additional examples to demonstrate extension technologies.
Headless content management systems provide three main extension points:
- CMS APIs: Allow external applications to invoke content management, delivery, security, query, and additional functionality through JSON HTTPS services.
- CMS Webhooks: Allow CMS events to pass information to external systems as JSON over HTTPS.
- CMS User Interface Extension Points: Allow custom management and editorial experiences in the CMS UI.
Almost all solutions use content delivery APIs to render the published solution. More complex solutions may use content management APIs, such as to import or otherwise manipulate data in the CMS.
User interface extensions often display data and allow selection of data from external systems for storage in the CMS. Each CMS can allow extensions at zero or more locations in the user interface, most commonly:
- At a dashboard level, such as embedding analytics reporting visible immediately upon access to the CMS.
- At the entry level, such as embedding analytics visible while working with an individual entry.
- At the field level, like any other individual field defined by a content type, but potentially exposing a large user interface and storing multiple complex values as nested JSON or otherwise. //TODO: link to Content Type
- In rich text editors, such as the Contentstack JSON editor shown in the image.
Webhooks are often appropriate for back-end integration, such as updating search indexes during publication and clearing caches afterwards.
Many extensions depend on multiple extension points. For example, a CMS webhook may trigger listeners that call CMS APIs to retrieve additional data. A more complex search solution could use webhooks to trigger API calls that manage search indexes and caches, with an additional CMS UI extension allowing manual search index maintenance.