Content management systems

A CMS (Content Management System) is a site that has a database at its core, and is controlled by a programming language in the web server (commonly called the backend).

The most popular CMS in the world is Wordpress, which uses PHP (PHP Hypertext Preprocessor) as its programming language and MySQL as its database management system.
Most of the really popular CMS are powered by this combination. Some big advantages of PHP and MySQL is that they're open source and free of charge.

CMS are intended to make updating your site easy without any knowledge of HTML, CSS or JS and to make the site scalable. In reality, it is almost impossible to properly set up any site without this knowledge, and it's impossible to create a theme without it.
To deliver every page to the requesting browser, the browser send the request (someone clicks on the link to a page). The CMS web server has to interpret what's needed for the request, then uses PHP to make a connection to the database, retrieves the data, does any filtering of the data required to create the page to be displayed, then delivers that HTML to the browser.
If you compare this with a static site, the web server receives a page request, and fetches then and sends it back. Static sites are a lot easier on resources because the server only needs to do one thing. It doesn't need to interpret any programing codes, connect to a database (and CMS databases are usually hosted in a different server). My advice is to only use a CMS if you really need one. A static site is a lot cheaper to host and a lot faster.

Do I really need a CMS?

This is an important question because of (at least) the following reasons:

  1. You will need a database and a server that includes the programming language for the CMS, which costs a lot more money than a static web server.
  2. A CMS has many more security vulnerabilities than a static site because it is dealing with connections to three times as many applications (web server, programming language and database management system.
  3. A CMS is a lot slower because of both the server programming (which links a lot of files for every request) and the database connections.
  4. If you're using a theme developed by someone for the CMS, you're relying on them to keep the theme compatible and secure.
There are some situations where you have little choice. If you want an e-commerce site, for example, you need a CMS. It's possible to have one with a static site but not easy to set up.
If you're going to be using lists or simple data, the programmed static site is a good option. The programming is done on your own workstation and a static site is created.

If you need a CMS, I am very experienced with three of them.