27.06.2023

A brief history of three popular CMS

In the second half of the "nineties" the industry of "site building" was flourishing. Every company aspired to make itself known on the Internet, and every user dreamed of having a personal "home page". All kinds of programs like FrontPage and Dreamweaver came to the webmaster's aid, but most sites were still a set of static HTML pages, sometimes interspersed with CSS. A little later, the Server Side Includes technology appeared, which allowed to dynamically assemble a site on the server from standard blocks: "caps", menu bars, "basement" and, in fact, useful content. After that, there was only one step left before the introduction of databases and content management systems, which greatly simplified the lives of both developers and resource owners.

A look into the past

Some of us still found the times when any "interactive" like the notorious "guestbook" or chat was screwed to the site using CGI scripts (most often written in Perl), and to lay out a new publication or edit existing ones, we had to involve a webmaster. Moreover, the process itself often resembled a session of ritual magic with obligatory sacrifices. The appearance of the PHP language, which at first was deciphered as Personal Home Page Tools, greatly simplified the process of developing and maintaining websites: PHP scripts for administration and publication of content began to appear like mushrooms after the rain, some even supported primitive HTML templates. Since not all hosting providers offered access to the DBMS at free and cheap rates at that time, such scripts were often stored in plain text files embedded in web pages. At about the same time, Active Server Pages (ASP) technologies from Microsoft and JavaServer Pages (JSP) became widespread, but the second one did not catch on in the end.

However, the turning point in the birth of CMS was not the widespread introduction of interpreted scripting languages like PHP and JavaScript, but the appearance in 1998 of the Document Object Model (DOM). Simplifying, we can say that DOM is a kind of API that provides scripts with access to the content of HTML documents and allows you to dynamically change the content without reloading the web page. Actually, this principle formed the basis of web applications, now known as content management systems.

From the point of view of architecture, CMS solves several practical problems, and the dynamic generation of web pages is far from the main one. One of the main ones is access differentiation, that is, the division of users into administrators who have the ability to create and change content on the entire site or in certain sections, and simple "readers", as well as the management of user groups. The second is the layout of pages and the delivery of content according to the client's request. There are other functions: processing and storing service data, backup, and updating components — these backend modules are usually hidden from users, but no less important. Conventionally, we can say that modern CMS consist of two sets of web applications: content management programs (Content Management Application, CMA), and applications for delivering content to the user (Content Delivery Application, CDA). They work together as a single integrated system.

The first—ever content management system was brought to the market by the IBM holding company FileNet - this commercial product was based on the previously created electronic document management system and was only adapted for publishing web pages. In 1995-96, several more similar commercial programs appeared, but the real heyday of content management systems came with the advent of open source CMS. Communities quickly formed around such platforms, developing and maintaining the code of the systems themselves, as well as creating additional modules for them. And the first in this cohort was Drupal, which was released on January 15, 2001.

Drupal

The author of Drupal is Dries Baytart, a student of the Faculty of Computer Science at the University of Antwerp: the popular CMS grew out of a bulletin board written by him in PHP, using which graduate students could exchange messages. Later, Bytart posted his brainchild along with the source code on the Internet on a website registered by him Drop.org . In general, initially he planned to call this resource "Dorp", which means "village" in Dutch, but he made a mistake during the domain registration process, and then decided that "Drop" sounds even better. The name of the engine itself is an "Anglicized" word "Druppel", meaning "drop of water" in Dutch. And the CMS logo symbolizes this very drop.

The first version of the engine boasted a rather limited set of functions: it supported the registration of new users, the publication of messages on forums with the possibility of their administration, and the import of content in RSS format. Later, in 2002, other features were added that turned Drupal into a full-fledged CMS: publishing articles, configuring site display templates and plug-in support.

Until 2003, Drupal remained a little-known project until the headquarters of the US presidential candidate from the Democratic Party, Howard Dean, created a DeanSpace campaign website on it, as well as more than 50 satellite sites in support of the candidate. This spurred the popularity of Drupal — the election race showed that based on this CMS, it is possible to deploy websites with different design and content fairly quickly and without significant effort. When the election was over, former technical staff of Howard Dean's headquarters founded CivicSpace Labs, whose main business was the development of Drupal-based websites.

Since then, the popularity of this CMS has only grown: today Drupal is one of the three most common CMS, although it is inferior in this indicator to WordPress. As of March 2022, the Drupal community had more than 1.39 million members, and the modular architecture of the engine makes it suitable for sites of any size, from small blogs to enterprise-level applications. Drupal-managed resources are able to withstand high load due to the availability of caching mechanisms that optimize performance. And thanks to its built-in multilingual support, Drupal makes it easy to translate and localize websites, which makes it a suitable choice for companies targeting a global audience.

WordPress

Chronologically, WordPress has become the second open source CMS based on PHP and MySQL, which has gained even more popularity compared to competing projects. The development of this engine in 2001 was started by a self-taught programmer Michel Valdrihi: initially he called his project b2 / cafelog. Two years later, several thousand websites were operating on the basis of this platform, designed primarily for blogging. Then an American programmer and entrepreneur Matt Mullenweg became interested in her: he was just looking for a suitable script for a personal website on which he could post photos. Having created a blog based on b2/cafelog, on January 24, 2003, Matt published a post in it, where he expressed a number of ideas for further development of CMS functions. The first to comment on this post was programmer Mike Little, who expressed a desire to join the development, and Matt's girlfriend, Kristin Salleck, came up with a name for a new project — WordPress. So the platform was born, which is rightfully considered to be the most popular CMS in the world today. And the first beta version of WordPress 0.70 was released only four months later - on May 27, 2003.

The main driving force behind the popularity of WordPress is a huge community that creates design templates and modules for this engine. The range of these extensions is truly great: among them there are both commercial and free. The official WordPress catalog has hundreds of thousands of themes for websites of any subject (unofficial — even more), in addition, the creators of Internet projects based on WordPress can find plugins and modules with completely different functionality: from online libraries, online stores and collections of software, to online learning systems. There are many quite successful commercial companies whose main business is the development of paid templates and plugins for WordPress.

Since its inception in 2003, WordPress has evolved from a simple blogging platform into a reliable CMS that runs websites from personal pages to enterprise-level applications. According to data for 2021, more than 42% of sites on the Internet are operated by this CMS.

The main advantage of the system is the site management interface, which, according to the idea of the creators, is understandable and accessible to users even without a technical background. However, over the years, this interface has acquired a large number of elements, among which it is no wonder that even a person with experience gets confused and gets lost. You can argue with me, but personally it seems to me that there is no trace of the former convenience and lightness for a long time. Sometimes you have to Google for a long time to figure out how to disable a particular function or fix some small jamb in the template. In general, over the years, WordPress has mutated from a fairly convenient and simple engine for a website into a giant clumsy monster, which today is no longer a CMS, but an environment for developing and launching various web applications. At the same time, it is a rather slow environment: the more plugins are installed and enabled in the admin panel, the slower the site works (and enabling optimization, image compression and caching does not always help, and if it helps, then not for long).

However, a huge range of modules and plugins more than compensates for all the disadvantages of WordPress — a website on this engine can literally be turned into anything. And if one plugin is unable to solve the problem, nothing prevents you from installing several. In the end, you can write the missing functions yourself in PHP or hire a specialist for this — professional developers for WordPress, thanks to the popularity of the platform, quite a lot.

Joomla!

I have also actively used this CMS for many years in parallel with WordPress, and therefore I can compare them based on personal experience. If earlier the interfaces of the WordPress admin panel and Joomla (officially the name of the engine is written with an exclamation mark, but I will omit it, with your permission, in the future) were radically different, now they are like twin brothers, except that in the Joomla admin panel there is an upper menu in addition to the sidebar. Who knows, but personally I liked the old interface with icons like Windows more. At some point, the seemingly eternal confusion with "sections" and "categories" of materials disappeared in the Joomla architecture, after which it became even relatively convenient to work with it.

Joomla appeared in 2005 as a fork of the commercial CMS Mambo from Miro International, and the first versions of this engine even supported native extensions of Mambo — the so-called "mambots". But then the evolution of Joomla, as usual, went its own way. Project leader Andrew Eddy founded the company Open Source Matters, Inc. (OSM), which engaged in the further development of this CMS. The name for the engine was suggested by the community, which quickly migrated under the wing of OSM with Mambo — this is the word "jumla" adapted to the English pronunciation, which means "all together" in Swahili. The community also chose a logo by voting, which then became a registered trademark of OSM.

As with WordPress, Joomla is distributed for free, while commercial components — templates, plugins, modules and technical support - bring money. The number of Joomla community is more modest compared to WordPress, but the choice of extensions is quite large, and this assortment allows you to cover most of the needs of site creators. In addition, Joomla has the ability to integrate with other specialized CMS — various implementations of online stores, social networks, online education systems.

Now we can call Joomla the second most popular CMS on the Internet (after WordPress): thanks to the support of the community, a large assortment of plugins and multilingualism, this engine is actively used to create websites all over the world. This CMS has a team of adherents not only among users, but also among numerous developers, testers and designers who provide regular updates, bug fixes and expansion of capabilities.

What to choose?

In addition to this "magnificent trinity", there are many other CMS, both general-purpose and specialized, created for specific tasks. As they say, the taste and color of markers are different: all the engines listed in this note are written in PHP, all use MySQL DBMS (Drupal can also work with MariaDB, Percona Server, PosgreSQL, SQLite, WordPress — with MariaDB, and Joomla — with PostgreSQL). Virtual hosting services of almost any modern hosting provider meet similar requirements, and if you search, you can find a free site for hosting a site on one of these engines. Moreover: in the VPS/VDS control panel of many hosters, you can install WordPress, Joomla or Drupal by pressing one button ("quick installation of less popular CMS is also found, but less often).

It is almost impossible to give universal advice on which CMS to choose for your project — these engines are good in their own way. Personally, I use all three for different purposes: I have several online stores running on a bundle of WordPress + WooCommerce, and Joomla and Drupal are involved in simpler projects. Each CMS has its own advantages and disadvantages, but in general, we can say that using a ready-made engine, for which there are a bunch of plugins and adaptive templates that correctly display the site both on desktops and on mobile devices, saves a lot of time.

However, it seems to me that the time of monolithic CMS is gradually going away: more flexible frameworks and microservice web content delivery systems adapted to modern realities and devices are coming on their heels: smart watches, smart speakers with voice assistants, game consoles. The need to provide multi-channel content delivery is gradually coming onto the scene (what classic CMS cope with, frankly, is unimportant). The leading role in this, most likely, will be played by the so-called API-First CMS, combining a whole set of content management tools through APIs, often based on microservices. They will take root in the same way as the "classic" monolithic engines have taken root — time will tell.