What is a Content Management System (CMS)?

Content Management Systems (CMS, or Content Management System) are various applications that help in creating and modifying information in digital format.

Content management applications usually have a set of functions and facilities that allow the management of documents, digital content (images, audio, etc.), in a collaborative manner.

For example, several employees in a company or different departments can collaborate in certain styles and processes – creators or writers work first, then editors, other managers approve content, administrators configure the system, etc.

Sounds like gibberish, I know! Let’s keep it simple:

What we identify today as a content management system works largely on the web: a web application that allows various people to log in, add content, materials or resources, and eventually publish them to the web (public) or within a company, just to employees or collaborators (intranet).

In the past, there were internal systems, on large company networks or computers, that were not web-based to be accessed through a browser, but were Windows, Linux, etc. applications, but in modern times, almost all CMSs are web-based – they work in a browser, from a central server, and are accessible from anywhere.

One of the most popular content management systems is WordPress, which allows you to create websites, add blog posts, pages, texts and publish them on the web. If we’re just talking about the web, WordPress is arguably the most widespread (it’s estimated that almost 30% of websites on the internet are managed by WordPress) since it was launched in 2003. What’s more, WordPress is free and ‘open’, allowing anyone to modify and extend it as they wish.

Just behind WordPress are Joomla and Drupal, followed by many others with smaller audiences.

Structure of a CMS system

A content management system has two parts:

  1. The administration part is the application that allows users to create resources, articles, materials, pages, and so on. This interface is based on business rules, such as a permissions system, a hierarchy and certain processes for creating and editing resources.
  2. The presentation part is the interface that presents the resources in point 1 to the target audience. In the case of a CMS for managing websites (such as WordPress), the presentation part is the public website, which is accessed by visitors, the general public.

Functions of a CMS system

wordpress CMS

A content management system includes a minimum of functions that have to do with accessing users and assisting them in creating, modifying and publishing the information they work with.

Access functions

Login system: CMSs include a login system for users. The administration part must be protected to prevent unauthorised changes, so each user has an account with a username or password.

Permissions system: Not all users have the same access and permissions. In any organisation there are different hierarchies and types of employees and content creators. In WordPress, there are regular users, editors and administrators. Each type of user has a different set of permissions.

Regular users do not have the same privileges as administrators, who have access to the entire system for editing and configuration. It is important to look at a system through the lens of permissions, especially if you have a larger team of contributors.

Multiple language support: A respectable CMS allows use in multiple languages. If your team is international, this is essential. Users can change the language in which the admin interface is displayed to make collaboration easier.

Multiple languages can also be used for content creation: perhaps you have a team where some creators write articles in one language and others translate this content into another language. A good CMS allows you to manage content in multiple languages, simultaneously.

Content management functions

Content creation: CMSs have capabilities to add articles, pages, blog posts, news, images and more. They need to have an easy to use and understand interface, many hide source code editing functionality (such as HTML), and offer an editor similar to Microsoft Word or something more streamlined. Thus, users do not need to know HTML programming or formatting, but will focus on the content.

Indexing and searching: A good CMS has functions for indexing content, organising and re-discovering it through searching, filtering, etc. It is crucial, especially when you work in an organisation that produces a lot of content (large company, newspaper editorial office, news agency), to be able to organise and find content quickly and easily. Thus, the search engine is essential, as well as the ability to add additional information to each article and piece of content, such as meta tags, descriptions, keywords and additional properties (date added, date published, categories, author, etc.).

Revisions and change control: More advanced CMS systems include functions for recording changes to content. For each article or document, not only the most recent version is recorded, but also all previous versions and changes made. It also stores who made the change, what part of the document, when the change occurred and what the previous version was.

These capabilities, combined with the rules and privileges mentioned earlier, help to create an audit trail of everyone who has worked on a particular document, as well as roll back to a previous version if desired.

Document ingestion and archiving: Another common feature in content management systems is the scanning, importing and archiving of printed documents. Various document formats can be uploaded (images, Word documents, Excel, etc.), and organised for later retrieval. A historical database is very useful in helping a company save space but still have access to documents for audits, finance, etc.

Many times, the ingestion process also includes optical content recognition (OCR) and indexing that text against scanned files. So these documents are no longer just images, but can be searched, filtered, etc.

Publishing functions: When it comes time to publish articles, blog posts, etc., a content management system makes this very quick and easy through a forms-based interface.

On websites, it is not the responsibility of those creating the content to also publish it and format it nicely for publication. CMS systems have templates/templates, which they combine with the article at the time of publication, so that the web page is automatically composed from these, without code intervention.

WordPress includes themes, which can be installed or replaced on an entire website, so the design can be completely changed with a click and the content remains the same. Templates abstract the presentation part of the content and prevent errors, ensuring design consistency from page to page. Another advantage is that the people managing the content do not need any knowledge of programming or web design.

Optimisation functions (SEO): Most content management systems that aim to publish information on the internet have at least basic search engine optimisation functions. These may include: adding meta tags (keywords, descriptions, titles), ALT tags to images and modifying article URLs.

WordPress has these functions but also allows you to extend the functionality by installing plugins (modules) that can improve or even replace the functionality with an entire system taking over the responsibility. In the SEO area, for example, you can install the Yoast module, which completely replaces the SEO-related functions of WordPress, offering many more possibilities (content analysis, keyword density check, sitemap generation and more).

Specialised functions

Content management systems can also offer specialised functions, depending on your needs. If you use WordPress, the simple installation of the system does not offer these functions, but you have to install them by adding modules (plugins).

So you can almost completely transform your system by adding e-commerce, HR, image processing, event management, calendar and a myriad of other features – all you have to do is find the right plugin (or build it yourself).

Although WordPress wasn’t originally built for this, the plugin architecture allows anyone to extend the capabilities as they wish – right down to the possibility of installing certain “frameworks” (entire platforms) that incorporate not only themes/templates, but also modules to build pages visually (see Divi, Elementor, Gravity, etc.).

More specialized CMS systems include this functionality out of the box (if you plan to, or if a company wants to build their own CMS and have full control over features and how it works), or can grow over time as needed.

For example, my CMS system (CCIDESQ) started out quite simply in 2002 as a platform for managing a product database, stock control and customer records for a book distributor. I started developing it because at that time WordPress did not exist and the other systems available on the market were very limited. Being a person inclined to build the tools I needed myself, I set about learning and working. The site you are reading this article on runs CCIDESQ, not WordPress!

As the system was used and adopted, many ideas for expansion came up, and along the way I added many, many functions and modules with new capabilities: orders, customers, invoicing, shopping cart, HR management, suppliers, tax functions (VAT logs, management reports), integration with POS systems, postal services and many, many more!

In a few years, CCIDESQ has become much more than a content management system – it has become almost an entire ERP platform. Before long, it expanded into new areas: law firm management, document archiving, real estate, scheduling, events, social media, blogging and more.

Information transfer functions

A modern CMS platform cannot work in isolation. Whether you want to publish content on the web (one website or more), distribute content on aggregation platforms, or want the system to interact with other systems and applications, it doesn’t take long before you come to the conclusion that you need a way to “open up” the system.

The solution is to add APIs to the system.

In the case of my CCIDESQ system, after a few years of running in isolation, in one country, for one customer, the need arose for the system to work in multiple countries, and not only that, to communicate with other copies of it installed internationally.


When developing e-commerce sites for a client with international operations, it is quite normal to need to interchange information (product information, stock, prices, translations, articles and more) to reduce repetitive work and facilitate communication and streamline operations.

Thus, the need arose to develop an API (Application Programming Interface), allowing systems to “talk to each other”.

There was also a need for the API to support communication with mobile apps (iOS, Android, etc.) so that they could be used by agents or customers without access to a computer and to allow customers to make an account, purchase products, track order status, directly from their mobile phone. I will discuss more about CCIDESQ in a later article.

The API is part of the data interchange layer and provides advanced functionality to those who want to collaborate with your company. For example, if a company wants to build a stock sync system with a website or database that is managed by your CMS system, a standardized API allows that company to format the data in a standard way and transmit it, and the API will accept it, understand it, and store it in the system – all without changes to the CMS.

All distributed applications today use APIs to communicate. Modern apps are no longer monolithic (one giant app incorporating all functionality in one place), but are detached, distributed, modular and scalable. Communication between all these disparate components is done through APIs and REST protocols.

In this context, the functionality of a CMS has no limits! The new frontier is the headless CMS (no pre-defined interface) but only with a database and an API that allows adding, searching, modifying and retrieving data transparently. With a headless CMS, the team working with the data is no longer constrained to a single administration interface, but using the API, the protocols created in the headless CMS, they can build their own interface and consume the data in any way they want.