Integration Agility CMS into a Traditional Website

While we recommend building new websites in a JAMStack (Javascript-API-Markup) architecture and utilizing modern javascript frameworks, there may be some cases where you need to take an existing, traditional server-rendered (PHP, Java, etc) website and integrate it with Agility CMS. 

Looking for support for ASP.NET/Core? Agility CMS provides an SDK that handles content sync, page routing, and page rendering. Please check out our .NET documentation section for details.

There are various levels at which you can integrate Agility CMS into your website. You may decide that you want Agility CMS to power only a subset of your site, such as Blog Posts. Or you want Agility CMS to power the entire sitemap and page rendering of your entire website. The extent to which you integrate Agility CMS will directly impact what editors can and can't do in Agility CMS in regards to your website.

How to Retrieve Content?

Agility CMS provides a REST API to access all Content, Pages, and Sitemaps for your instance.

Features

The following table illustrates the features you should consider when designing your Agility CMS integration:

Content Management

Allow editors to manage the structured content for one or many specific types of content on the website. e.g. Blog Posts, Products, Header, Footer, etc.

Requirement: Get Content Item/List API Method

Integration Level: Minimum

Preview

The ability for editors to preview content changes in the website, prior to publishing.

Requirement: Setup an environment using the Preview access token for the API

Integration Level: Minimum

Page Management

Allow editors to set page-level content such as SEO and control the individual functional components of a page (i.e Modules).Editors can control all aspects of what is on each page.

Requirement: Get Page API Method

Integration Level: Recommended

Page Routing

Allow editors to manage their page tree, and adding and deleting pages will reflect the actual pages on the website.

Requirement: Get Sitemap API Method

Integration Level: Recommended

API Caching

Cache all content retrieved via the Content Fetch API, and store in a local cache for higher performance. e.g. Cache content in the local file system after you've retrieved it, and clear the cache when content has changed (via a Webhook).

Requirement: Custom Cache

Integration Level: Recommended

Minimum Integration

At a minimum, an integration with Agility CMS will provide editors the ability to manage one or many specific lists or items in the CMS (Content Management). 

Editors should be able to preview their content changes prior to publishing. This can be enabled by setting up another website environment that specifically uses the Preview access token for the API.

While this will allow editors to manage specific content, it does not provide any page management, so only content that has been specifically designed to be managed in Agility CMS can be managed by editors.

At this level, editors are not able to manage page-specific content, nor add or remove pages. Typically, the website code itself determines what pages exist.