Back in 2013, I published Why you should not use Drupal or Wordpress for your company website (Czech version only, available in the archive). The article has gained popularity amongst our local visitors. Many changes happened in website development since its publication, therefore it's a good idea to revisit the article.
To make sure that we understand the topic, let me explain the commonly used shortcut. CMS means Content Management System and it is a solution that:
will allow you to create, edit and organize content on your website (most often online, via some administrative interface),
composes the website itself from the content you provided.
The world has changed a lot since 2013 and as such has had the web ecosystems. This led me to revisit the topic, taking the perspective of a company manager whose task it is to create a new website for his company.
Let's start with some questions.
What should you ask before choosing
How much money should I invest in the website?
Money. That factor is the ultimate and decisive argument when thinking about any development. You can't have a top-level website if you can't afford it. So you should start by writing down a possible budget.
What I learned is that by far many people think website costs are only about the technical part - preparing and powering it up. But this is hazardous. The golden rule of the best value for the money should be:
Choose the minimum viable CMS solution and invest the rest of your money into promotion and content.
This is the most important part. It does not matter how technically good your website is if nobody can't find it. It's critical to make sure you have enough visitors to start with, and that they don't leave because your website content sucks. Always select a viable goal such as the number of conversions / purchases and do everything in your power to achieve this goal.
The rest of this article should help you choose your minimally viable solution from what is available today. For that to succeed, start by writing down some points:
What functionality do I require?
Do you have any specific tasks in mind for the website apart from presenting just content like text, images and videos?
Should it contain purchasing options, and into what depth? Are you selling one product with 4 options or 400 products? Would you need to handle inventory, accounting and other features of e-commerce as well?
Is your website supposed to be connected to some other systems of yours or a third-party provider?
Do you have some interactive parts for your visitors, such as quizzes, games, seminars, anything unusual?
And for each of the points you come up with, you should ask:
What is the motivation for this? How important is it for me? Is there any other way to do it other than including it on the website?
The reason is that any of these parts might require additional development. Or worse, it might need a more complex CMS. Both ways, if it's not thought out well before the start, your costs might skyrocket.
What is my expected traffic?
Another important point. Do you expect to start small, with just a few unique visits daily, or do you immediately foresee to be attracting thousands of visitors?
People often expect their website to handle any amount of traffic at any given time, but that is, in fact, a complex technical issue. Choosing a bad CMS and hosting combination with a very large visitor influx might bring your whole website down very quickly, and your reputation is damaged from the start. Performance, meaning how quickly your site loads and renders content, is the key here.
How quickly do I need it?
This is also an important factor. It translates into a simple law:
The quality of a product is tightly related to the time required to develop it.
The more time you can invest before you launch the website, the more options are there to choose from. And of course, nobody is working longer hours for less money, so...
Time equals money.
This looks very dull and obvious, but it actually leads to a very important decision you need to ask at the start of your website development cycle:
Custom design or ready-to-use template?
Do you know the difference and benefits? Once you have agreed on the time & cost you should take your time to consider them and make your decision.
Ready-to-use templates or themes are properties of some CMS to lower the initial cost a lot. Requiring typically just a small purchase and some time spent on populating the content, it has its merits for some scenarios. You cannot depend on them too heavily, though.
One disadvantage is that modification of themes is possible only to some extent. Demo sites usually show all of the features and if you need something outside of this realm, you might need expensive and complicated developer intrusions.
There will also be performance issues. Themes try to accommodate as many options as possible and that often leads to bloated designs with poor page load speeds.
And lastly, forget about any uniqueness. Thousands of websites might reuse the same theme as you do. And the best selling themes are the most generic ones, to appease the largest crowd.
Custom design is always the more expensive option. It usually has two steps: Graphics design, where your website layout is designed by a professional, and coding phase, which is the conversion of the design into the CMS of choice. And that also requires a professional, the one titled front-end developer (sometimes web coder).
The main disadvantage is thus cost and time. Advantages, on the other hand, are serious to make this option considerable:
It is possible to design whatever you want, meaning some unique parts of your site can be accommodated.
With a good front-end developer you are able to obtain unmatched results in site performance, cross-browser and cross-device compatibility.
Provided you have a good choice of the designer, your website will be more appealing and uniquely branded to fit your visual identity.
With questions asked and answers written down, let's dive deep into the selection that is on the market today.
First option: Classic Open-Source CMS
First, we will explore CMS that can be downloaded and installed on your web server. Let's call them "classic". There are a few notes that you should be aware of.
At first, you need some hosting with an appropriate web server to set up your site. This is different for the various systems. Currently, it is possible to find optimized hosting plans for every major CMS. That usually trades higher cost for additional benefits, such as faster setup time, better CMS performance and fewer security issues.
Secondly, this type of CMS usually requires some developer or specialist to set up the website as you require. More peculiar systems will – in general – demand more skilled labour.
Thirdly, all these systems offer an administration interface directly via the website you will be creating. Which makes editorial work simple, but can be a security problem if not treated professionally.
Important Note: Open-Source or Proprietary?
Originally in 2013, I leaned towards a tailor-made CMS solution, pointing to our own 3OS system as a good candidate for the company website. Today, after gaining additional knowledge and experience, my stance is very different and I prefer Open-source systems.
You might ask, why? Is it about the cost of the license?
Actually, no. The argument is simple: Open-source CMS have matured, the selection is huge and the advantages of using them seriously outweigh the commercial/custom/proprietary bunch:
- their real-world usage is different orders of magnitude higher,
- this results in the large development community and frequent updates,
- they also have a whole ecosystem of ready-to-use themes and various plugins,
- they are popular amongst developers, hence the risk of vendor lock-in is lower.
That is also what happened to us since 2013: although the 3OS system we developed at Kurzor was a good choice for clients considering cost, quality and ease of use, it was simply unsustainable to continue its further development and keep the pace with other evolving Open-source solutions. So we now prefer Open-source CMS solutions for new projects, most usual choices being Wordpress, Pimcore or Gatsby.
That explained, let's move further and inspect the market as of today.
There is one system which we cannot afford to not list in there. Guess which one.
Wordpress: The big name in the game
Any serious conversation about CMS for a company website must start with Wordpress. Its coverage is by far the largest and there is nothing that can be done about it in the near future.
Wordpress is a great example of a matured system. It is reliable and has many great features you can directly use, such as an excellent visual-based editor, an understandable system for posts and articles, media management and many more.
While perfectly suitable for sites with all degrees of complexity, there are some specifics of using Wordpress as your CMS of choice.
First of all, Wordpress is primarily a "blogging" solution. It might need the help of a few plugins to enhance it to expected levels of a typical company website. Some of them require a commercial license, making it harder to perform upgrades in the long run.
For example, you need an external plugin like to handle multilingual content the excellent WPML,
or you want the power of a tool like Advanced Custom Fields to define content entities and their relations.
With Wordpress, you can do both design options, with ready-to-use themes being in the large and affordable spectrum, and custom design having no objective barriers to be implemented.
Security is a serious problem of any website running on Wordpress. Being the most famous system in the world, there are tons of tools to help hackers exploit any vulnerability. Staying up-to-date with system and plugin versions is a real must.
In terms of performance of page load speed and hosting requirements, Wordpress might quickly run into problems. Optimization is needed and on large-scale projects with a lot of visitors, it can be a tricky one. There are hosting services tailored for Wordpress which you can use to great benefit.
Depending on the size of your project, I would definitely recommend hiring a professional when you consider building mid-size and larger sites with additional functionalities in Wordpress.
Now for the rest of contenders. To understand why they fall into a different category than Wordpress, you need to see the numbers. According to W3tech the majority of identifiable CMS solutions are based on Wordpress (60+ % of market share). Rest of contenders do not exceed more than 5 %, usually dancing around the 1 % share. Bear this in mind, because for the CMS below you will need some developer support and it can be harder to find it.
Joomla is still popular, but there are complaints mainly of its complexity. High complexity easily leads to performance issues and security problems. Your content editors also will probably not be thrilled to use the administration interface of Joomla. Typically, you use Joomla today because you must, as is the case with some legacy solutions and previously tailor-made extensions. And if people are used to it, you don't change the horse in the middle of a race.
Drupal has the greatest merit in implementing complex content structure with relations and dependencies. But its best years are gone. Still in horrifying memory are the days of early 2018 with Drupalgeddon security vulnerabilities. Performance, too, is not exactly thrilling compared to today's standard, especially when working in the administrative interface.
Typo3 is still quite popular in some markets. It has a broad range of features, long history and large community. Installation and customization, however, requires some expertise and is not suited for small projects.
There are also 3 important platforms I did not mention yet: Magento, PrestaShop and OpenCart. Their biggest advantage is that they are mostly aimed towards e-commerce and offer an out-of-the-box shopping experience with many additional tools. All of these systems are not aimed at beginners and will require some development support to be set up properly.
There is also one serious contender I did not mention yet, Pimcore. As we explained in the article, it is a very good choice if you consider a professional website with all the good traits, such as security, performance and features range. Based on the Symfony framework, it will be easy to learn for PHP developers with some experience. Its integration with PIM (product information management) makes it a good choice not only for the e-commerce market.
Second option: CMS as a service
A very popular option today is to use CMS as a service. In which scenario you only pay the service provider and the website and administration are offered to you as part of an ongoing online service.
This idea is not recent, as blogging systems with this kind of operation were available already after the year 2000. Advances in technology however only now allows online manipulation with your content into great detail, with the WYSIWYG (What You See Is What You Get) principle usually being applied. Hence the shift from primarily blogging platforms to full-blown website presenters.
This kind of CMS service has its own traits and I am going to describe them in detail.
First, the payment. Regular service fees usually look appealing by low cost, but when you spread the cost over a longer period of time, you will find a point (like 2+ years of operation) where it makes more sense to invest into a traditional CMS.
How about typical use cases? This kind of CMS is best used for quick prototyping work, where you need a website fast and you are expected to change or replace it on an accelerated schedule.
No technical knowledge is usually required in order to edit the content, at least in theory the site can be created and managed by almost anybody. The amount of modification possibilities however, while richer than was possible in the past, is not as exhausting as you would have when using a traditional CMS.
Please be aware that these sites might suffer from imperfections - performance issues, visual problems such as cross-browser compatibility or responsive errors. While they are usually resolved with a new version of the service, this can mean additional problem solving for you.
With this in mind, let's explore the major contenders:
Wordpress.com is just a service model of the popular Wordpress CMS. Because the providers have absolute control over the code, they can sell it to you with some really nice benefits, such as offering a limited set of tested plugins and chosen themes. This bears the effect of better performance and security. Options are however limited when compared to classic Wordpress. So the use case here is - you want a simple website, highly performant and easy to maintain, with ease of use, and the limitations are not an issue.
Wordpress.com is again the most popular among CMS as a service, absolutely unmatched by the other contenders, which are:
Squarespace, Wix - complete online website builders, offering great levels of detail when editing content and visual side of your website. The resulting quality doesn't match the results of a custom-coded webpage, though, so be warned this is most effective as a prototyping/quick measure, not a final production website.
Blogger - Google's CMS service, mostly aimed at blogging.
A different story altogether are e-commerce specialized flavours of CMS services. Here, their biggest benefit is directly allowing you to use quite complex e-commerce models once you sign up, without the need of setting them up yourself. And because purchasing items is not an easy task to implement, they can be a cost-effective solution.
A major contender in this area is Shopify - having significant coverage as a CMS, this system is a great tool to jumpstart your e-commerce solution. Of course, your demands and requirements need to be fairly standard when it comes to online shopping.
Content Administration only
A special place in "CMS as a service" models is when you only use the administration for your content from the service, leaving your website completely on you to build separately.
This is useful in these scenarios:
- You already have some system to build your website, but it's content editing or authoring possibilities are poor or lacking,
- you want the content authoring part to be easy to use and accessible to most users,
- you need a commonplace to edit and manage all your content, to distribute it later to specific places - like multiple websites, preferably via some form of API.
- Design of a custom content model, with multiple entities and possible relations,
- Simple editing of content in this model,
- media uploading and CDN hosting,
- previews, with supporting code needed on your website,
- hooks - actions which are called once something is changed.
Comparing the two, Contentful seems more enterprise-oriented, while Prismic has a Slices feature, which allows more complex content compositions to be achieved by the editor.
A Special approach: The advent of static website generators
There is one special category of CMS which is gaining momentum in the past few years. Its sole motive is: if you need a website with unmatched performance, it should not rely on some CMS to load and initialize before you serve your visitors any content.
What if you only use some system to generate the website, then take this static code, and put it on the simplest form of website hosting? This is an idea described as Jamstack. There are pros and cons of such an approach:
- Statically built websites can have unmatched loading times,
- they don't need a complex webserver to be hosted,
- they are inherently safe - your CMS can be hidden to attackers completely,
- the generator can automatically insert further optimization into the site, such as preloading of pages in the background.
- You need to regenerate your static website on every change - usually quick, but not instant operation,
- these generators mostly lack the content administration part of a CMS,
- you need to have some sort of infrastructure setup for admin, previews and deployment,
- most of these generators are not simple tools and require significant developer understanding to be used properly.
As for examples, I will talk more about Gatsby, which we use in our portfolio. It is a static website generator based on React and GraphQL. It works in several steps:
- You simply combine together your content from various sources using GraphQL and node.js backend. Gatsby already offers plugins for most-used sources such as existing CMS APIs, files in your repository, etc. You can, of course, extend it by writing your own.
- You build your site from a set of React components and fill them with fetched data, testing it locally.
- When you are happy an optimized production build is generated, which is essentially a static version of the site.
- You then deploy this site to the final hosting and domain.
- In case of content update, you just go back to step 3 to rebuild the site (which can be automated via infrastructure setup).
There are a couple of other static site generators. A lot of them are mostly automated documentation builders, so I named only a few, based on the language they are interpreted in:
- Go - Hugo,
- Ruby - Jekyll,
- PHP - Jigsaw
There is even a Wordpress plugin which works on the same principle - this has the advantage of already existing and established CMS in place.
|Open-source CMS||CMS as a service||Static website generators|
|System Purchase Cost (Licenses)||Commercial components only, usually low||Monthly/Yearly fee, usually noticeable after 2 years||CMS administration service cost, if used|
|Development Cost - typical features||Low to Mid-size||N/A||Mid-size to High|
|Development Cost - specific features||High||N/A||Mid-size to High|
|Developer Level Usual Requirements||Junior to Mid-level||Junior or no experience at all||Mid-level to Senior|
|Runtime requirements||Standard to high-maintenance web server||Provided in the service||Simple static file hosting (website), separate CMS/infrastructure (depends)|
|Typical Maintenance Scenarios||Plugin or system updates, mostly for security||Replacing an obsolete online feature||CMS part connection issues, API problems|
|Site Performance||Depends on the CMS - Troubling to very good||Usually troubling as content grows||Static website = Inherently fast|
|Security Issues||Depends on the CMS - more popular will be attractive to hackers.||Requires hacking of your account||Static website = Inherently safe|
|Getting Help||Community only (although commercial components do have support)||Support usually part of the service||Community only|
|We recommend using for||Your every day, content-rich company website with all features||Only prototyping / testing / quick marketing uses||Content-only website with a focus on fast loading|
I hope this helped you to understand the choices in the CMS spectrum. It was aimed to be a relatively shallow, big-picture overview, without going too much into the details and particulars of different CMS.
Building a company website usually has phases, each of them fitting well with a different CMS solution. It is up to you to decide, and I have summarized the main contenders and choices above.
In Kurzor, we mostly specialize in Wordpress and Pimcore Open-Source CMS development, as the most common use cases with our clients. We have also mastered Gatsby as an excellent alternative solution where performance and relative simplicity is needed.
We will be happy to consult your company website!