Choosing a CMS
Choosing a CMS — the system that will manage your site’s content — is a decision with consequences. It determines what the site costs to build, what it costs to keep running, and how far it can be developed later.
On the strength of nearly twenty years of working with different content management systems and shop engines, we can offer a few conclusions that should keep you from getting this wrong.
Rule one. The cast-iron one.
Do not write a site from scratch. Use one of the established, widely used systems. In most cases WordPress or Drupal will do.
There is an enormous number of content management systems in the world. There is even a joke among web developers that every studio is obliged to write its own. The second half of the joke is implied rather than said: that in the overwhelming majority of cases the home-grown CMS gets abandoned. Often along with the clients’ sites.
Why do developers write new ones? The reasons are simple and human: they do not like how somebody else did it, and they want to try doing it better themselves.
And why do those home-grown systems get abandoned? Because the size and difficulty of the job was misjudged.
Look at how the code of the world’s most popular systems has grown as they matured.
We downloaded the earliest and latest releases of WordPress and Drupal from their official sites. As a yardstick for the size of a text we took the four volumes of Leo Tolstoy’s War and Peace as a
.txtfile.
One page of War and Peace is 2.3548 kilobytes. So let us work out how many pages the code of these systems would fill if you printed it as a book.
| Work | Size in MB | Size in pages |
|---|---|---|
| Leo Tolstoy, War and Peace | 3 MB | 1,274 pp. |
| WordPress 0.71 earliest1 release |
0.7 MB | 282 pp. |
| WordPress 4.7.5 latest2 release |
24.1 MB | 10,252 pp. |
| Drupal 4.0.0 earliest1 release |
0.9 MB | 385 pp. |
| Drupal 7.54 most widely used2 release |
13 MB | 5,638 pp. |
| Drupal 8.3.2 latest2 release |
70.7 MB | 30,052 pp. |
1 — of those available on the official site
2 — at the time of writing
WordPress grew 34 times over and ended up eight times fatter than Tolstoy’s four volumes.
Drupal grew 78 times over and now weighs as much as 23 copies of War and Peace.
That is roughly the scale of the misjudgement made by anyone who sets out, in high spirits, to build a serious modern CMS from nothing.
We made that misjudgement too.
For a developer or a studio it is not so much a mistake as an interesting and useful experience. For the client paying for the site, it means somebody is practising on them and learning at their expense.
There is one more consideration, and it may be the most important. Using a widespread system guarantees that if you ever need to, you will be able to find other developers able to take the project on. Choose a home-made CMS and you have handcuffed yourself to its authors with your own hands.
Rule two: avoid Joomla and Bitrix
The reason has less to do with the quality of their code — a difficult and largely subjective question — than with the communities around them.
Joomla is the second most widespread CMS in the world, after WordPress and ahead of Drupal. Bitrix is the most popular in Russia. (In principle that alone should be enough for any Ukrainian company or institution to have nothing to do with Bitrix, but we have pragmatic arguments as well.)
So why do we not recommend these popular systems?
Joomla
Joomla looks appealing, with big colourful buttons in the admin area. There are plenty of capabilities, plenty of extensions, and localisations into many languages. You can build both ordinary sites and online shops.
Those are the reasons Joomla gets picked by developers who are starting out.
But compare it with WordPress and it turns out to be more complicated, with an admin interface that is worse — less obvious and less comfortable for the site owner or the content editor. And compare it with Drupal and it turns out to do far less, because Drupal is a platform that combines the capabilities of an out-of-the-box CMS with the flexibility of a programmer's framework.
Choose Joomla and you choose a compromise between simple, light, comprehensible WordPress and complicated but powerful and flexible Drupal. A compromise is the arrangement where nobody wins.
Bitrix
Bitrix appears in this article only because it is popular on the Russian-language internet. And it is popular there because it is aggressively pushed by 1C, the company that owns both 1C-Accounting and Bitrix.
What sets Bitrix apart from the other systems is that you pay for it. That buys you no particular advantage, because configuring a Bitrix site still means going to outside developers, who will quote you by the hour exactly as they would for any other system.
The same goes for the modules that extend what the system can do. For Drupal almost all of them are free. For Bitrix it is roughly half and half, and the better ones cost money — sometimes a noticeable amount of it.
In sum: choose Bitrix and you choose a more expensive project and a dependency on Russia.
Rule three: work out how unusual your site really is
By unusual we do not, of course, mean how it looks. An interesting, original design that resembles nothing else can be built on any CMS at all. That is a question of the frontend and has nothing to do with how the CMS is constructed.
By unusual we mean how your site will work. What it will let its visitors do.
WordPress, for example, is first and foremost a CMS for personal blogs. That was its original niche, and it is the sheer number of small personal blogs that made it as popular as it is.
So WordPress is excellent at running sites made of simple pages — blog posts, comments, photo galleries, a few extra pages such as “About me”, and a handful of specific functional blocks such as an archive or a tag cloud.
You can even build an online shop on that foundation, simply because it is not so hard to add extra fields such as “price” and extra blocks such as a shopping basket.
Well — “not so hard”. Look again at the growth of the WordPress codebase above and it is plainly quite hard indeed. But it is possible.
If what you want is a site that departs substantially from a set of simple pages, then you should be thinking either about a more flexible CMS such as Drupal, or about building on a bare framework such as Django.
And that will raise the cost of development sharply.
Rule four: use purpose-built solutions
If you need an online shop, for instance, there are several routes open to you:
- For a small personal shop — handmade goods, say — it makes sense to present it personally, starting from the blog format. Either WordPress or Drupal will serve you well.
- For a large shop, where the number of products runs to hundreds or thousands rather than tens, you are really talking about serious automation: importing product descriptions and prices from spreadsheets, and configurable events on which the shop acts by itself (when a product’s status changes to “in stock”, for example, emailing everyone who asked about it). At that point the choice is between Drupal Commerce, with its rich configuration options, and a dedicated e-commerce platform such as Magento.
- If you harbour Amazon-scale or AliExpress-scale ambitions (and have a budget to match them), write the specification out carefully — a set of use cases is enough to begin with — and see what developers propose. Then pick the proposal with a sensible balance between new code and existing solutions. AliExpress itself, after all, uses the free and universally available Bootstrap for its frontend, and saves handsomely on both development and testing.
In summary
At Zina Design Studio we do not build sites on WordPress, although we consider it an entirely reasonable choice for small ones.
We build on Drupal and on Python/Django. For medium and large sites Drupal is ideal; for unconventional projects Django is unmatched.
All of them are free. The only thing that costs money is the work of the specialists. And for both Drupal and Django, finding developers is no trouble, because these are solid, long-established, well-documented and popular projects.
Our warmest recommendation :)
See also this comparison on WebSiteSetup.org: WordPress vs. Joomla vs. Drupal (Full Comparison)