So, this article is really about how we went about selecting a Content Management System for The Hire Street. Spoiler alert: we chose CrafterCMS. But wait! This article is more about how to make a selection that is right for your business. The choice of CMS you go for may or may not be the same but hopefully the process we went through to make the selection could really help you go about selecting a CMS for your particular application.
I'm not normally one to harp on about myself but I think it’s worth saying a few words about me (Syed) so you can understand how my background would have affected the way we made this decision. I have a strong background of around 20 years in enterprise software development and product management. This has included large scale CMS systems as well as custom software development. So now you know!
Why is it So Difficult to Select a CMS?
Well there are two main reasons:
- There are so many to choose from!
“CMSs are a bit like mattress stores. There are so many of them!” There doesn’t appear to be a single definitive list however this Quora Q/A suggests there could be thousands . Even if you look at he more prominent ones on Wikipedias CMS List there are well over a 100.
- It’s a very important decision.
“Like buying a house, picking the wrong CMS can be costly and difficult to correct” If you build your business around a CMS and it doesn’t scale or support your business as it evolves, or becomes unsupported or no longer the favoured technology of choice, yet you have all of your assets, content structures, templates and hierarchies in a content management system that is very difficult to move away from. it can become a very expensive exercise to get your content our and migrated to another platform and int eh worst case scenario even risk the failure of a business.
What Can We Do About It?
Well, all is not lost. We already spoke about the sheer number of CMSs on the market. Thankfully we can use a process of elimination to remove most of them from the list. Ending up with a much more manageable list of CMSs to choose from. Again, with reference to the risks posed by making the wrong choice again we will consider some of the risk factors and how we can mitigate those.
Know Yourself First
Or more precisely know your system. So, before selecting a content management system it’s important to identify the nature of your company and systems. Are you a small or large company? Do you have a lot of budget or looking for a low-cost solution? Do you have access to developers or looking for an out of the box/sass solution that requires little or no development? Here’s how some of the questions and answers looked for us:
Question: Are you a small or large company?
Our answer: Small company
Question: Do you have a lot of budget or looking for a low-cost solution?
Our answer: Looking for a low-cost solution
Question: Do you have access to developers or looking for an out of the box/sass solution that requires little or no development?
Our answer: We have development resource
Do you have special requirements from your CMS?
Our answer: Possibly, where the workflow differs from standard e-commerce for rental rather than retail.
If you are a very small company with limited resources, technical and financial then it may be prudent to consider a solution like WordPress, Wix etc. WordPress should be considered for its ease of use and simplicity of setup. It is so heavily used that there is plenty of discussion and resources on the internet and can be an easy way to get started.
About Your System
Another set of questions relate to the type of business you are in. Are you in a developed industry or one that is less developed? As an example, I would say that retail is a developed industry as in there are large numbers of ecommerce and retail suppliers so existing CMS systems will have lots of plugins and add ons that facilitate such systems.
On the other hand, we are in the event hire and marketplace business and this is somewhat less developed. In other words, our core system is bespoke therefore our needs may be a little less standard.
So, the main purpose of asking these questions is to understand more about your own requirements and to help eliminate the endless list of CMS systems on the market. Essentially with such a long list of possible options, the process of elimination can really help narrow your focus.
High Level Options
If you have a very small site, which you maintain yourself and you are technical then this might just be a viable option. If any of these factors are not true then almost certainly this is not the best option.
Build Your Own CMS
If you're needs are truly unique then this may be a possibility. I believe that your needs will almost never be unique enough to build your own CMS. This is because there are just so many CMSs out there and some of the features CMSs provide are complex to develop so why reinvent the wheel!
Use an Existing CMS
In almost all cases this is likely to be the best option given that there are just so many options out there: decoupled, managed, SaaS, open/closed source etc. You should be able to find a CMS out there that meets your criteria.
The CMS industry is vast as we’ve already touched on. Whilst this doesn’t make selecting a CMS easy it is useful for seeing trends in the industry and just to be aware of what the market looks like. It is also generally not advisable to be caught on the backfoot whilst the industry moves in a different direction. Generally, in my experience when the whole industry moves in a particular direction e.g. the migration to cloud, it is usually a good idea at the time given the consensus required to move in that direction. To know more about the industry landscape and before we delve deeper into some of the feature sets see this chart which shows that WordPress is the overwhelming leader but that doesn’t mean it’s the right choice for you.
Diagram source: https://trends.builtwith.com/cms. For a more detailed breakdown of the state of the CMS industry see this blog post. So as you can see the industry is huge and a few players dominate massively. We know that just because a few players dominate, this doesn’t mean those providers are the best option for your particular needs.
CMS Types and Key Features
Now we come to the different types of architecture for CMSs. CMSs come in many flavours and architectures. We try to break down a few of the key concepts that can help narrow down a system if these things are important to you mainly so you can eliminate any CMSs that don’t provide those features. So here will not go into extensive technical details but discuss these concepts at a high level.
Headless vs Non-Headless
A headless CMS is one from which you can fetch content without serving the entire application serviced from the CMS. This can be useful if you want to serve content to multiple platforms e.g. apps, websites etc. Non headless CMSs are those where the entire content is served from the CMS such as a typical WordPress site. Headless CMSs have grown in popularity recently because of how they can be leveraged across multiple channels.
Content Stored in GIT vs DB vs FileSystem
Where is the content stored? This may not seem like a big deal, but it can be. Before we discuss any further let’s just explain what GIT is for those that may not be aware. GIT is a source control management system. In simple terms it is a system very adept at versioning content or text documents. It has had massive industry adoption because it’s very powerful and efficient. Content stored in GIT is easy to move, inspect and track. Alternatively, where CMSs store content in Databases it firstly requires the installation of a database which can vary in complexity, have issues with scalability and also has all the complexity associated with databases. Unless stored in an unstructured database you also have to deal with a propriety data structure which could make migration difficult. Filesystems on the other hand can be simple but the versioning must then be implemented in the CMS. We believe this is better handled by a system dedicated to version management i.e. GIT. Therefore, for us a system such as CrafterCMS which stores content in GIT was preferable. This was one of the major factors in making our decision to go with CrafterCMS but more about that later.
Can you get help when you need it? If you go for a proprietary system, what level of support does the provider provide? Do have a quick turnaround for support? A phone number? Live chat? If you opt for open source, then does the product have a strong community of developers who regularly answer comments and contribute? Again, for us this was important. CrafterCMS has a lively community of contributors. The most useful thing is the CrafterCMS slack channel which seems to get replies very quickly from people who know the product inside out. This is pretty incredible for an open source product. We’ve been able to get answers to complex questions very quickly. As well as Slack, they also have communities on StoackOverflow and Google Forums. It is monitored and we typically had very quick responses to queries.
Extensible/Open Source vs Proprietary
CrafterCMS has an open source offering with regular fixes pushed from the community. This not only means that the application has contributions coming from wider than the company itself. Furthermore, if there is an issue you have access to the source code and can submit an improvement yourself.
Frameworks and Languages
If the CMS, you are looking at is Open Source you have the option to inspect the source to better understand it or even extending it. In order to do that it needs to be in a framework/language you understand. Again, for us CrafterCMS is built in Java/Spring both well understood language and framework.
In Context Editing
Does the CMS system provide In Context Editing? This refers to the ability to see a page, and edit parts of it by selecting those sections as opposed to editing a separate form, not in the form the page if presented in. It’s much easier to visualize things when you can do in context editing. A much nicer experience for content editors.
Is the system decoupled. In other words, is the component that delivers content separate from the component that allows content to be created and edited. This is significant because decoupling these components means that components can be separately scaled. If you need to have a large number of authors, then this component can be individually scaled without impacting the delivery component.
Why we Settled on CrafterCMS
As you can see based on the criteria discussed above CrafterCMS scores very well. It ticks all the boxes we described and more.
How Was Our Experience Setting Up and Using It
Setting it up was a technical exercise but fairly quick (providing you have technical/DevOps resource). It has been stable, and we have not faced any issues to date. Its early days but so far, we feel very happy with the decision we made so far. The UI is excellent and works well. In context editing, discussed above, provides a really great experience for authors.
Hopefully this blog post has shown that whilst the decision to select a CMS for your business or organisation is dificult and critical, it can be greatly simplified. The key things are to know yourself, know the landscape of the CMS world, and the broad types of CMS and the features that you care about. For us, CrafterCMS met our criteria, has an architecture inline with our vision, and robust support. The right CMS for you will depend on the factors we have already discussed. Some key points to remember:
- Selecting a CMS is daunting only at first but through a process of elimination it becomes much simpler
- Make sure you know yourself so you can make a decision that best suits your organisation. There is no such thing as 'The Best CMS', only what is best for you.
- Understand the different types of broad categories of CMS
- Look into other factors, like users, growth, support for the CMSs you have shortlisted
- Consider selecting a CMS which is not impossible to migrate away from
Finally, don't agonise longer than you need to. If you do get it wrong, and you selected a CMS you can migrate away from, then you move to another CMS.
I hope your CMS selection goes well and your experience is as positive as ours!