When starting a new website or mobile app project, choosing the right content management system (CMS) is one of the core decisions necessary to move forward. The CMS is the foundational component that powers your website, and will affect several critical aspects of your project from developer experience, SEO performance, security, user experience for the content creators, and more. Here we will learn how to choose the best CMS for our projects now and in the future.
What is a content management system?
A content management system (a.k.a WYSIWYG a.k.a “what you see is what you get” editor) is a web platform that provides controls to create, edit, and organize digital content such as text, images, video, audio files, and other multimedia assets for a website or mobile app from a user-friendly interface.
Teams building digital products are typically composed of software developers and non-developers like designers, marketers, project managers, and copywriters. The problem a CMS solves is that it gives non-developers the ability to edit content displayed on a website or mobile app without needing to know how to code or help from developers.
Here are some common key features of a content management system: a rich text editor, image uploader, video uploader, blog management, e-commerce inventory management, content organization and hierarchy tools, visual layout editor, and permission management. Some of these features may or may not be included in the CMS you choose, and we will help you with that decision below.
Traditional CMS vs. Headless CMS
When choosing a content management system, you can segment them into two top-level categories: a traditional CMS and headless CMS. A traditional CMS manages the layout and content of a website. WordPress, Wix, and Shopify are examples of traditional content management systems. They allow the website owner to modify the layout and design of the website along with the content.
A headless CMS is only concerned with the content of a website or application, and not the layout. The philosophy behind a headless CMS is that content creators and other non-developers on the team should only be concerned with deciding what content should be displayed, and not how it is displayed. A headless CMS aims to decouple your project’s data away from the tech stack used to build the website or mobile application so your data can be easily accessible on all platforms you want to display your content.
Depending on the future of your project life-cycle, one system may be better suited for your use case than the other. Let’s find out how to make a choice.
Should I choose a traditional CMS or headless CMS?
Nowadays, more people are familiar with traditional content management systems due to longevity. However, there are functional differences between a traditional CMS and headless CMS where one may be a better choice than the other.
If your project will only involve a website, meaning the data and content that is displayed on the website will not also be shared on another platform like a mobile or desktop app, then a traditional CMS may be a safe choice. Data and content is tightly coupled with the client-side interface (website) when using a traditional CMS, and if your project is solely web based, then there might not be a need for headless CMS.
If your project involves building multiple client-side platforms: website, mobile app, or desktop app, and you want to share data and content across multiple platforms, then a headless CMS is the better choice.
Since traditional CMS systems have been on the market longer than headless CMS systems, they have a lot more third-party plugins, widgets, and features pre-made, so you have the luxury of not reinventing the wheel on your side. Depending on the features you need in your project, you could get all you want done much faster with a traditional CMS because you wouldn’t need to build them from scratch. If you are on a short timeline, building an MVP, or on a tight-budget, a traditional CMS may be the right choice now, but you may still want to switch to a headless CMS in the future.
Tech stack is another factor to consider. With a traditional CMS like WordPress, Wix, or Drupal, your content is locked behind a fixed tech stack: PHP, Apache, MySQL, etc. Your development team will be constrained to working in a tech stack compatible with your CMS, which will reduce flexibility in the future.
Since content and front-end tech stack is decoupled in a headless CMS environment, developers are free to switch and add new technologies to the project without affecting the data layer. In the long-run, this will allow your project to easily keep up with modern technology.
In summary, choose a traditional CMS if you know ahead of time that your project will only operate in the scope of a website and your development team is perfectly fine with PHP. Choose a headless CMS if you plan to share your content and data in a mobile app, desktop app, or other client-side platforms.
Top 10 things to consider when choosing a content management system
There are certain features your project may need that are available in some content management systems, but not others. Some features may be better in some platforms than others. Before choosing a CMS, plan out your project vision, list the features you will need, then read product reviews and check feature listings on the platforms’ website.
Rich Text Editor
The rich text editor (RTE) is a core feature of any content management system. Some CMS systems have basic RTEs with limited features, while others allow you to get more creative when creating documents. If you are writing code tutorials you may want to inject code snippets with syntax highlighting or you may want to embed audio players in your document if you are blogging about music. In those cases, a basic text editing RTE may not suffice.
For the sake of user experience, you may prefer to edit content and layout directly from the view of your website rather than editing from the context of a form where you’d need to refresh the browser to see your changes. Not all CMS systems include visual editors with a nice drag and drop experience, so be on the lookout.
Roles and Permissions
If you are working on a team, and plan to have multiple contributors responsible for creating and editing content, then setting user permissions and assigning roles is critical. For instance, if you want to create a major editorial, your team may be composed of guest bloggers, moderators, and administrators. You may want guest bloggers to only edit posts they created, but not posts from other authors. Some CMS systems may only include basic permission rules, but maybe you need the ability to create custom user roles and permission rules. Be sure to check on that before choosing a CMS.
Some CMS systems are easier to customize than others. You may want to create custom plugins, re-organize and re-design the admin dashboard, or may have unique conditions for how your content should be displayed. Some CMS systems purposely limit customization to maintain the integrity of their platform to their standard whereas others allow you to treat their platform like a lego set.
Some CMS systems are open source, some have a freemium model, and others come with a premium price tag. Most traditional CMS systems are either open source or have a lower price tag. Some of the more popular headless CMS systems come with a steep price tag for large teams. Due to the growing popularity of headless CMS systems, traditional CMS systems are starting to allow data access via an API, so you can treat them as a headless CMS as well. There are ways of getting around a high price tag, but do keep cost in mind.
Vendor-lock is something most people try to avoid because a platform may be great for your project today, but not in the future as your project begins to grow. Brainstorm your project life-cycle, and have a strategy in place if your current CMS platform will be able to keep up with the growth of your project. If you can see a potential cause of concern, make sure the platform you choose in the early stages of your project will allow you to easily transfer content and other data to another platform.
Support & Documentation
There is nothing worse than running into an issue, and there is no documentation or support available to solve your problem. If you are not a developer, then this may be very important for you. While open source is great because of free usage, you may not have the support you need to solve any unknown problems that may creep up in the future. Some proprietary platforms like Shopify and Webflow have customer support agents on staff that you can call, whereas other open source projects will require help from developers to sort through documentation.
We hit on this point a few times before, but considering your project’s future should be an important part of your decision making process. In the early stages of your project, funds may be low or you may just be doing some market validation on a prototype, so you may choose the cheapest, fastest, or easiest option. As your project grows, there are some obvious points-of-failure you could see coming, and you should have a plan in place to pivot.
If you want to go with the cheapest route first and plan to switch to a more optimal solution in the future, have a strategy in place. Maybe you want to set up the most optimal solution for your project starting out, so you won’t have to worry about switching CMS systems in the future. In either case, proper planning will save you a lot of headache as your project starting gaining steam.
As mentioned before, a lot of traditional CMS systems limit tech stack flexibility. The most popular traditional CMS systems are PHP based on the backend, so you may be restricted to technologies compatible with that environment.
Headless CMS systems grant much more flexibility as they are language agnostic solutions. You may want to use some of the hottest technologies to date like NodeJS, React, GraphQL, and MongoDB to build your project. With those newer technologies, you will need a headless CMS to grant your non-developer team members the ability to edit data. Otherwise you will need to build a custom CMS from scratch.
Choosing a hosting provider should also be considered. Most hosting providers have one-click setups for traditional CMS systems that make it easy for non-developers to get started, whereas setting up hosting for a headless CMS will require a developer to handle installation.
Top content management systems by category
WordPress is the most popular content management system on the market, and it’s showing no signs of slowing down. A lot of hosting providers have one-click installation solutions for easy setup. Wordpress is an open-source platform, so you can choose to self-host the platform on your server and host provider of choice.
WordPress is one of the oldest CMS systems, has the largest community, and largest repository of third-party plugins; giving you the highest ability of customization as a non-developer. You can build almost any kind of website using WordPress such as a dedicated blog, business marketing website, e-commerce store, membership website, and more.
With the immense amount of plugins, features, and configurations you can do with WordPress, some non-technical users may find it a bit challenging to grasp at first. We’ve built a course called WordPress for Beginners, which walks you step-by-step on how to setup a WordPress website and cover the most common features on the platform. We will also teach you how to build a business marketing website and blog from scratch.
For a fast introduction to WordPress, checkout this tutorial on how to get a free WordPress site setup in under 10 minutes.
Webflow is an excellent alternative to WordPress, and it’s popularity is gaining steam. It is considered a drag-and-drop website builder, and looks similar to image graphic editors like Photoshop or Illustrator. It has basic blogging and e-commerce features similar to WordPress, so if you only need simple blogging and e-commerce features, this may be a good choice.
Webflow is also good for developers as you can build more complex functionality to render your website’s layout compared to the other drag-and-drop website builders. With that being said, Webflow may be best suited for tech savvy individuals. You don’t need to be a developer as the platform is widely loved by designers; however, having some background in tech will help.
Wix has been around for a while and is one of the early drag-and-drop website builders. It’s a good alternative for non-developers who are somewhat tech savvy. I would say for most small businesses owners or people building marketing websites, Wix should probably be the default choice for a CMS.
You may choose Webflow over Wix if there is some complex condition to rendering your layout that is either hard or impossible to do with Wix. On the other hand, if Wix is still too complicated, or the website owner is not tech savvy at all, then Squarespace is probably the best choice. Wix sits comfortably between Webflow and Squarespace in terms of ease-of-use.
Squarespace is another drag-and-drop builder, and is probably the easiest CMS solution to use for non-technical people. Squarespace heavily promotes the minimalist design style, so their theme’s can be described as elegant and clean. With that being said, Squarespace is not a good choice for those building complex layouts with an eclectic UI design.
Contentful is the biggest player in the headless CMS space. It’s optimized for large scale projects, and is a great choice for large organizations. With that being said, it also comes with the highest price tag of all the other headless CMS systems. Contentful is a cloud based headless CMS without the option of self-hosting, so keep this in mind. Depending on your use case this may or may not be a deal breaker.
Prismic is a nice alternative to Contentful that offers more affordable plans. One of the key differentiators is the hosting option. Unlike Contentful, Prismic allows you to self-host your projects.
Storyblok is the only headless CMS with a visual editor that would allow you to edit content directly from the context of your website view. Their pricing model is much more affordable than Prismic and Contentful. This may be a great choice if you are working on a tight budget or if you prefer a visual editing experience.
Ghost is an open-source headless CMS targeted towards journalists and publishers. They offer a tiered cloud hosting plan with added features if you want, or you can self-host. From their documentation, if you choose to self-host, they recommend MySQL as your database.
Ghost is best used if you want to build an editorial website or blog. If you want to build an e-commerce platform, a marketing website, or something outside the purpose of journalism, then Ghost is not for you. However, if you are a hardcore blogger, then I think it would be work a checking-out.
Shopify might be the most popular e-commerce platform as a content management system, and it is my default recommendation for my consulting clients. It’s simple to use, comes with a customer support team, and with the Shopify Plus platform, can be used for enterprise scale stores.
Out-the-box, Shopify offers all the basic features most stores would need, but just in case you need more unique features, Shopify also has a large third-party plugin marketplace that you can use to add more functionality.
Since Shopify is a SaaS (software as a serivce) platform, one main drawback is that they only offer a cloud hosting solution, so you are not able to self-host. Therefore, you are required to pay transaction fees per sale. If you want to eliminate transaction fees, then you will need a self-hosting option like WooCommerce or Magento.
WooCommerce is a free alternative to Shopify and is built on WordPress. It’s an open sourced project and has a ton of community built plugins. If you are a developer that wants to avoid paying transaction fees to a third party like Shopify, then WooCommerce might be the easiest alternative if you choose to self-host.
WooCommerce.com also offers a paid hosting plan if you do not want to self-host or be responsible for web server maintenance.
Magento is an open-sourced PaaS (platform as a service) product, and is targeted towards developers who are able to build a custom retail store from scratch. Magento is one of the big players in the e-commerce space, and is traditionally meant for large-scale enterprise operations with big budgets.
Magento is great for established retailers and brands seeking the most customization; however, it might be overkill for small businesses working on a budget, and those without developers on their team.
Last but certainly not least, is BigCommerce. BigCommerce is a feature-rich e-commerce platform that offers more native features than Shopify. Unlike WooCommerce and Magento, BigCommerce is a cloud based platform, so you will need to pay transaction fees.
The key difference between BigCommerce and Magento is that BigCommerce is a SaaS (software as a service) whereas Magento is a PaaS. BigCommerce is known to be a more affordable solution because as a SaaS platform it offers a lot of ready-to-use functionality without the need for custom development.
For your next project, please consider some of the points we highlighted above. We wanted to cover the most common pain points and factors both developers and non-developer tech professionals debate about when choosing a content management system.
To summarize, first decide if you want a traditional CMS or headless CMS. Choose a traditional CMS if your project will only include a website, and you do not need your content and data available on a mobile app or other platform. Choose a headless CMS if your development team wants more control over the tech stack and may want to use modern technologies like NodeJS, React, VueJS, GraphQL, MongoDB, etc.
If you choose a headless CMS, then feature-wise, any of the options above will get you what you want. The main differentiating factor is price. Ghost is the exception since it is specifically meant to be a blogging platform.
If you choose a traditional CMS, choose one of the e-commerce platforms if your primary function is e-commerce. The three main factors that will affect your choice are whether or not you want to pay transaction fees, ease of setup, and functionality. If you are not building an e-commerce store, then the three differentiating factors between the other traditional CMS systems is ease-of-use, functionality, and preference.