HomeDev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunitySubmit a ticketLog In
GitHubNuGetDev CommunitySubmit a ticket

What is a CMS?

Describes the concepts of Optimizely Content Management System (CMS).

Initially, you built a website by creating a single HTML page with some introduction text and maybe some images. You would then create, for example, two more pages with product and contact info. You now had three static pages and had to add navigation links so visitors could browse between them.

Static HTML pages may work fine when you have only three pages, but it soon becomes labor-intensive when you want to add more pages to your website. Each time you add a page, you must update previous pages with navigation links to the new one, for example. Furthermore, you must upload all files to a web server using FTP each time they are updated.

Web application frameworks provided more advanced server-side functionality.

Web application frameworks

A web application framework acts as a plug-in to the web server and handles requests. Previously, when the web server got a request, it would try to find the file on its hard drive, but by using an application framework, the web application framework handled the request processing. The framework interprets the request, writes the output to the response, and returns it to the client who sent the request. The web application framework adds logic to handling requests and can break up information into smaller pieces you can reuse. Navigation links are one example of an information piece you can reuse in multiple locations.

The framework executes the source code but also provides the environment where it is executed. It means the operating system, web server, file system, databases, caching, and so on, depending on the selected framework.

Content management systems

A Content Management System (CMS) is built on top of web application frameworks to allow the changing of web content without changing the website code or files. Different content management systems use different web application frameworks. Optimizely CMS is built upon ASP.NET Core.

The purpose of a CMS is to allow multiple editors to create and update website content (including media such as images) without having to touch any HTML code or upload files to a web server. With a CMS, you can also control access to content for both editors and website visitors and the publishing process. You can also manage multiple content versions, for example, for multi-language websites.

In a traditional CMS, you have four cornerstones: the database, the API, the user interface, and the views.

The database is where the data is stored, and the user interface is used by editors and administrators to access and manage the data in the database. The user interface is often a WYSIWYG (What You See Is What You Get) interface.

The API is the interface between the user interface and the database. In Optimizely, some parts of the API are internal, and some are external. The CMS uses the internal parts, and external partners should not touch them. Partners and developers can use the external API to customize and extend their Optimizely solutions.

The views are the templates that determine the display and layout of the published data.

CMS functionality

Today's CMSs are often much more than just publishing web pages. They often contain collaboration features for editors, document and asset management, and process and records management. The CMS also provides access control, personalization features, data versioning, and multi-language support.

A CMS often has specific roles defined, each with its own access rights, areas, and tasks. For example:

  • Editor – Works in the CMS user interface and creates content. Different editors can be responsible for different languages and areas of the website.
  • Publisher – Publishes the content to become publicly available on the front-end site.
  • Administrator – Manages access rights for the website content and the CMS user interface. CMS bases access on users and group membership. In Optimizely, CMS includes the default ASP.NET identity user and role system in the default templates, but you can use federated authentication and user management instead.
  • Visitor – A person who accesses the published website content.

Related topics