We need to review the CMS’ we’re using to make sure we’re using current technology, and making use of latest developments to make sure we’re able to build websites quickly, and with all the features the client expects in 2016.
It’s my personal opinion that all CMS’ are terrible. So I’m trying to find the LEAST terrible 😛
Qualities I’ve been looking for:
- A wealth of features – Some CMS’ have more than others, and built-in features that we commonly use will make development quick and easy.
- Customisability – Whatever out of the box functionality is provided, we need to be able to extend this for whatever design or functionality a client may want.
- Community – A CMS with a strong community is a big benefit because it means you can google for errors, ask for help, and pick from many existing plugins which massively saves project time. Also, dedicated conferences show the firmness of a CMS in the marketplace.
- Documentation – I don’t like reading documentation. Especially when it’s long-winded and hard to find what you need. So concise documentation is a massive plus.
- A decent way for creating a hierarchical menu – As we mostly make brochure websites, a good way of creating a hierarchy is a benefit. The reason I’m mentioning this is that it’s actually quite rare! In EE, hierarchy isn’t actually built in and we have to use a 3rd party plugin, which might stop being supported.
- Speed of installation – Unnecessarily complicated installation processes annoy me, and add to project time. IMO a well-built CMS will have a speedy installation process.
- A good experience for clients – Clients need to be able to login and use the site with confidence or they’ll bother us with support calls. If the experience for a client is good, they’ll be happy with their service.
I’ve only been looking at CMS’ that use the LAMP stack, as that’s what I’m familiar with.
Bear in mind that the below information is based on research about the CMS’, the only ones I’ve have firsthand experience with are WordPress and EE. Better research can be done by experimenting with them, and actually using it to build a website!
CMS’ I’ve been looking at:
- Concrete 5
- ExpressionEngine (what we use right now, included to show comparison)
Twitter followers: 380,000+
Questions on Stackoverflow: 88,873 (has it’s own Stackexchange site at http://wordpress.stackexchange.com with 66,901 questions)
Built in features: Create a blog, with posts organised by date. Static pages can be created and added to static menus (meaning a new page is not automatically added to a menu). That’s about it, everything else is achieved by a plugin – of which there are MANY.
Pricing: Completely free.
Plugins: Many thousands, WordPress has a very active developer community and it’s difficult to find functionality that isn’t already covered by a plugin. Plugins are easily added through a marketplace/directory, with a few clicks – currently in EE we have to download files, place the files, and upload the files, which is time-consuming. Plugins also seem very well supported and maintained between versions of WordPress.
Customisability: The problem with WordPress, is that although there’s thousands of plugins changing its functionality, it all feels like a hack. It’s a simple platform (which I assume is why it’s popular) but I know many backend developers who say it’s terrible to work on.
Documentation: There’s a “codex” which is pretty extensive.
Community: WordPress is massively popular so it’s easy to find people who know it, which is great for support. There are multiple WordPress-specific conferences all over the world each year.
Templating: WordPress uses pretty basic HTML with PHP, which means you can do pretty much anything, but it’s not very sophisticated, and end up with files which are a mixture of HTML & logic which might make any seasoned developer cry.
Client experience – Clients seem to love WordPress probably because it’s popular and they know they can host it elsewhere. The basic experience is good, but WordPress can spiral out of control if many plugins are added which abstract it’s functionality, causing the clients experience to be muddled, especially if they have to move between different plugin interfaces. However, it’s so popular, that they’ll likely be able to find a solution by googling rather than calling us.
By Pixel & tonic, the creators of many plugins for EE that we already use.
Pixel & tonic twitter account followers: 2,996
Craft twitter account followers: 3,881
Qustions on Stackoverflow: 0 (has it’s own Stackexchange site at http://craftcms.stackexchange.com with 4,733 questions)
Built-in features: Has content elements by default, which is what we use all the time in EE (although always seems like a hack). Their solution *looks* pretty elegant, and seems easy for a client to edit, and give them a lot of control.
Pricing: Their “client” package (building sites for clients) is $199 per site which only has 2 users (which might be ok for us), or $299 for pro which allows more users and built-in translation functionality.
Community: There’s an active slack channel, which is nice to chat to other developers, but I don’t find all that useful for support because it’s a single linear thread. It’d be more useful using something that allowed multiple comments on a subject. It has 2000+ users in the #general channel.
There is a yearly online “summit” about Craft.
Documentation: There’s a decent guide for getting started (although I haven’t followed this, so don’t know how accurate or useful it is).
There’s also a searchable knowledgebase with tips and useful snippets.
Templating: Uses Twig, a third-party templating engine.
Client experience – I haven’t used this so can’t comment on the experience of a client. Videos show the CMS being easy to use, especially the way content elements are moved around. But the way the pages are abstracted into entries (an entry might or might not be a page) means it could be confusing for them.
Craft CMS seems (from a first look) to match the way that we currently build sites in Expression Engine, with entries and custom blocks (we call them “content elements”). It gives the client a lot of control – although I’m not sure how much we can lock them down, as it might give the client *too* much control that they might create a combination of blocks that doesn’t work.
Twitter followers: 5,989
Questions on Stackoverflow: 409
Built-in features: Has content elements by default, which allows users to add predefined “blocks” to an area of the page (main or sidecol etc), which allows a lot of custimisability without needing a massive amount of templates, and is much easier than how we currently do content elements in EE (which feels like a hack).
It also has a page hierarchy by default, without having to add any plugins.
Pricing: Completely free to build and host a website. Some add-ons are paid for, which start at $15.
Open Source, source code is available on GitHub, which shows active development. Changes being made daily by multiple people.
Community: There’s a member forum, with multiple new threads created each day, and most questions asked get responses.
Documentation: There’s a docs area, with tutorials submitted by users.
Add-ons: There seems like plenty, some paid, some free. You can also buy themes, which provide a frontend for a site, which might be a good way of making a project cheaper and faster by choosing a theme similar to what needs to be achieved.
A lot of “blocks” can be downloaded as add-ons, which might also make development faster.
Client experience – I find the page editor interface a little confusing (I’ve only tried it a bit), so the client might also be confused.
I want to tell you that Concrete 5 is great because you can drop all sorts of pre-defined blocks, but it’s hard to find a list of all blocks. I assume we can create and reuse these between projects.
Concrete 5 certainly doesn’t seem a very popular option (look at the Twitter followers & amount of Stackoverflow questions compared to others in this list), although it does seem feature-rich. 2 back-end developers I know tell me this is the easiest CMS they’ve ever worked on.
Twitter followers: 64,100+
Questions on Stackoverflow: 16,652 (has it’s own Stackexchange site at http://drupal.stackexchange.com with 59,311 questions)
Built in features: A bit like WordPress, you can create pages and bind them together using taxonomies, instead of a page hierarchy. Which makes it a bit awkward to do what we need, as we create many sites with a hierarchy.
Community: I know several Drupal users, both freelance. It seems to be a popular choice for freelance developers selling to small one-man-band websites.
Documentation: It has documentation of course, and quite a lot of it. It doesn’t seem as clear as other documentations on this list.
Add-ons: The module marketplace seems lacking, and plugins listed near the top are many years old, although that could just be due to the poor website listing them badly.
Client experience – I can’t really comment much on the interface the client uses, but I do think it looks very old-fashioned and not what I’d want a client to see in 2016.
Twitter followers: 10,100+
Questions on Stackoverflow: 1,221 (has it’s own Stackexchange site at http://expressionengine.stackexchange.com with 10,997 questions)
Built-in features: Channels & entries, which allows us a lot of customisability, although hierarchy isn’t built in. Normally we use a plugin called “structure” for EE2 we don’t yet have a plan for how to replace this in EE3.
Pricing: $299 per website. There’s also an optional support plan starting at £49 per month. Individual plugins do cost, but are usually cheap and are 1-time payments.
Community: The closest meetup is in London, where a group meets monthly. The turnout was descripted as “small”. There has been an annual conference for the last 6 years in the US.
There’s an active slack channel, similar to Craft CMS, although seems slightly less active. It has 600+ users in the #general channel.
Documentation: The guides are mediocre, and when following them I found it less than straightforward. Better as a reference than a guide perhaps.
Add-ons: Has an ok amount of plugins on a separate website called devot:ee – although many we use haven’t yet been converted to the new version 3 of EE, and the slow rate of adoption is worrying for future support of those plugins between versions.
Templating: Uses it’s own custom syntax, which is ok, but a standard solution would be nicer.
Working in EE is fine, we get a lot of customisability, although at the cost of simplicity and taking a long time to setup. The cost of the licence is an odd one, I can’t see what we get extra, when some of the cheaper or free CMS’ provide comparable functionality.
So which is best?!
Honestly, I’m not even sure there is a “best”. There’s quite a lot of choice in CMS’, and the ones I’ve chosen here have comparable features – to a degree. They might all be used for solving the same problem, but the method will be quite different.
WordPress obviously has it’s place, and is a great solution if you’re creating a blog. If a client needs a blog (a list of articles ordered chronologically), I wouldn’t recommend anything else. If a client requires a fairly complex system involving multiple channels, obviously EE has always done well for us. But if a client requires a simple brochure website, where they need control over content elements (I’m thinking something like TT Gillard) I do wonder if using Craft CMS or Concrete 5 would actually get the job done effectively, and much quicker than the way we do it currently in EE.
Difficult to tell without installing and playing with these systems though, which I think would be useful when we have some time.
If you’ve got a favourite out of these, or want to suggest another, feel free to comment below – or tweet me @davidonionball