June 01, 2017

Best CMS for your website in 2017

Ready to build your next website or web app, but not quite sure which CMS to use?  You came to the right place!

Before we begin, it goes without saying that there is no “best” CMS and that the right CMS comes down to the individual project.  For some projects, one CMS is the best decision and for another is could spell catastrophe.

Rating system

We’ll rate each CMS based on ease of use, extensibility, performance, and versioning capability for a total of 20 points (5 points for each category).

Ease of use – Is this CMS easy for the average user (non-developer)?  After all, CMSs are primarily intended for non-developers to interact and control their site.

Extensibility – How easy it is to add new functionality and future planned features into your website or app.  If you need to add a new module next year, does that mean switching to a new CMS that supports it?

Performance – The speed and ability of the CMS to load under heavy traffic.  Because website speed is more important than you think.  If a website is taking over 4 seconds to load with a couple users on it, do you think it’s going to perform when you get hit with a ton of traffic?

Developer Friendliness – Can developers easily modify, add, and version control various plugins or CMS core?  This doesn’t apply to static websites, but once you have so much as an e-commerce store, you’ll understand that plugins occasionally conflict and accidents happen.  What

Basic Requirements

As you can see, our scoring metrics don’t include things like “drag-and-drop” editors, WYSIWYG features, or the ability to copy and paste from Word.  Because while these are cool shiny features, they don’t make a CMS.  If anything, these may fall under our categories, but they are secondary to them.  On that same note, we’ve only included CMSs that qualify with the basic features of a CMS:

  • Wysiwyg editor
  • Users, roles, and permissions
  • Page and post publication
  • Asset management for images

WordPress (12)

It’s impossible to talk about content management systems without talking about the most popular.  With both the largest marketplace and community, WordPress isn’t going away anytime soon.

This is also the most budget friendly option, making it a great starter site for many small businesses.

Ease of Use – 5

WordPress is dead simple to use and if you can’t use it, you’re either too used to something else, not very tech-savvy, or in denial.  This is the 2nd most common reason we’d recommend this as an option to a client.  Between the various drag-and-drop editors and an intuitive admin panel, WordPress can be learned in a day even for new website owners.

Extensibility – 3

WordPress comes in the middle of the road in terms of extensibility.  Adding new plugins is a breeze and because of a gigantic marketplace, you can find just about anything you need.  However, if you do need to extend something complex that you can’t find, it’s going to be painful.  Even with the implementations that exist, the code and database schema used is painful to look at and certainly doesn’t do anything for performance.

Performance – 2

My biggest gripe with WordPress has always been performance.  It’s just not a quick platform and innately cannot be with its database schema if you’re going for a web app.

Caching and a faster server will remedy some of the smaller issues here, but tweaking WordPress to handle larger amounts of traffic is a full-time job and should be considered if choosing this route.

Developer Friendliness – 2

The only reason this isn’t a 1 is because of awesome new tools coming out like Bedrock and Roots.  Having said that, Bedrock is not compatible with all plugins and Roots goes against official WordPress practices- meaning an official theme or premium theme on ThemeForest can never use it.  WordPress is not enjoyable to code in and doesn’t offer much of any advantage in implementation.  In fact, it puts more constraints on the developer than anything.

Version control is also a huge PITA in WordPress.  While it’s gotten better in recent years, there’s still no official recommendation on the best method.  Should you version control the core?  Just the plugins?  Do you allow end-users to update plugins at their own risk?

Grav (14)

Grav is a lightweight and flat-file CMS written in PHP.  It’s a great tool for static sites and has to be the easiest CMS around to setup.

Grav CMS admin panel

Ease of Use – 2

The admin panel has all the features you could want in a basic CMS and feels very intuitive.  However, by default there’s only a markdown editor available with Grav and no actual Wysiwyg editor.  This means if you’re moderately tech-savvy and are willing for a (potential) challenge, you may enjoy this.

For traditional users, this creates an issue.  It also doesn’t solve issues with dynamic content.

Extensibility – 3

Creating new plugins and themes is not terribly difficult in Grav.  It also uses composer for dependency management, which is a huge plus.  While it does come with a few tools to help you get started, this pales in comparison to a full language framework like Laravel.

Performance – 5

Because it uses a flat-file system and has caching out-of-the-box, Grav is one of the faster options available by default as a CMS.

Developer Friendliness – 4

Documentation for Grav is great and putting it under version control is a breeze.  While it won’t provide you the raw power a framework like Laravel, Django, or Rails would give you, that’s not how this CMS was intended to be used.

October CMS (12)

October is written on top of Laravel, which is by far our favorite PHP framework at Echo 5.  While I want to love it, I’m still not sure who it’s really being marketed to- developers or end-users?

I think it was meant to be the best of both worlds, but in reality if it’s for developers it’s too confining and I need more control, while if it’s for clients it’s far too advanced.

Ease of Use – 2

While the UI of October’s admin panel looks great, it’s confusing.  Every time I fire up the admin panel, it takes a me a minute to get my bearings.  This means that end-users are probably having a harder time.

What’s weird is the CMS allowing you to edit code.  At first I loved it for this feature, but then it sunk in that this meant massive confusion for clients.  They’ve since released a plugin to alleviate some of the issues with client use (Static Pages), but in my humble opinion, there’s still a lot left to be desired.

October CMS file management

Extensibility – 3

Written in Laravel means you get access to all the goodies and packages in Laravel, which is awesome!  But I really wish that this was written as a package you could install under your Laravel project and not the other way around.

Being a standalone CMS is great for beginners, but it takes on a very CMS-centric approach when it seems to be marketed towards Laravel developers who would want something more centered around the actual development project.

Performance – 4

October is a pretty fast CMS and is still mostly limited by the theme chosen if you’re going with a premade solution.  There are a few more queries than I’d like to see by default on every page, but that comes with the territory of multiple page templates and advanced user roles.

Developer Friendliness – 3

While I’m a sucker for Laravel and the docs are decent for October CMS, there are some fundamental issues with how the CMS works (noted above under extensibility) and version control.

There was a debate on the October forum as the best practice for version control and it doesn’t look ideal.  It seems difficult (if at all possible) to control the October version and avoiding breaking changes.  Even if you do put most of your files under version control, you may have to lock your clients out of areas in your admin panel to prevent issues.  Furthermore, there seems to be more and more unresolved solutions to similar threads which leaves me a little worried for the lifetime of this product.

Wagtail (18)

Wagtail CMS is built on Django in Python.  This means scalability and performance is a non-issue for the most part.  This is by far one of the most impressive CMS builds I have seen to date.

Ease of Use – 3

Overall the UI here is pretty solid and the editing is a huge win for Wagtail.  The page trees I feel are a bit confusing at first, but they help from an organizational standpoint.  As far as content editing, Wagtail uses Streamfields and they’re pretty good for static content, but don’t yet address issues with dynamic fields or content.

Extensibility – 5

Since it’s built on Django, you have access to a ton of great packages.  Furthermore, it’s built in somewhat of an encapsulated package so it doesn’t feel like you’re constantly trying to hack around the CMS to implement new features.

Performance – 5

Python is a great language to use and handles well under pressure.  You may have heard of a few of the sites using Python- Youtube, Dropbox, Google.  Front-end theming is non-opinionated and will come down to your own package choices.

Developer Friendliness – 5

Everything about this CMS is easy to use.  Creating a new module and adding fields can be done very quickly and doesn’t feel like an afterthought.  The docs are also great for beginners, even if you are fairly new to Python.

Custom Made CMS (19)

Building your own company CMS is not super hard and sometimes an overlooked option, thinking that sticking to one of the major CMSs is a “smarter” move.  If you have a very specific function in mind for your site, this is the by far the best option if you can find the right developer.

What’s the catch?  It’s not cheap and it takes longer than the others to impelment.  Picking the right language or framework can also be daunting.  In my experience, I find that both Django and Ruby on Rails have a decent amount of stable packages/gems floating around to quickly build out a custom CMS.  We’ve built custom solutions in PHP, but the package community to me always seems to be in more disarray.  This could mean revisions and conflicts a year down the road which is going to cost more development time to fix.

Custom CMS Login

Ease of Use – 4

This solution means you control which variables are available for editing and make it as limited or open as the project requires.  This still doesn’t quite get the 5 stars that WordPress does because it’s not as simple as a drag-and-drop editor to clients, but being able to implement your own drag-and-drop solutions in addition to your own field types makes up for it.

Extensibility – 5

This type of project can be completely modeled around the project needs, which means the sky is the limit.  It also means that if you need to modify a piece of the core CMS, that’s not a problem.

Performance – 5

The only limitation in performance here is what you add in.  Since you’re starting with little to no overhead weight, this is always going to be the fastest option- hands down.

Developer Friendliness – 5

Being the language and framework of choice for your developer means it will be something they’re most comfortable working in.  We try to stick to the most relevant and modern MVC frameworks to avoid locking clients in to our services.  The thing to avoid here is an obscure or dying framework as this will mean you’re stuck with a smaller pool of developers.

Recommendation

Even though a Custom Made CMS clearly got the most points, this does not mean it’s the right solution for everyone!

Have very specific goals in mind and time to throw at a project?  Go for a custom built solution.  If you’re on a budget and don’t need a full web app, go for WordPress.  It’s easy to get started and you can get a site up and launched relatively quickly.

Budget website: WordPress

Static website for tech-savvy users: Grav

Web app or custom website: Custom CMS or Wagtail

 

What do you think?  Did we leave your favorite CMS out?  Let us know what we missed in the comments below!