WordPress has become the most popular CMS on the internet. It’s used for making blogs, eCommerce and it’s widely used for general company websites, too.
Craft CMS is self-described as “a content-first CMS that aims to make life enjoyable for developers and content managers alike.”
Although there is certainly an overlap in use cases, there’s also situations where it’s best to use one over the other.
Why compare WordPress and Craft but not one of the hundreds of other CMS’s?
WordPress is incredibly popular, for many web agencies it’s the go-to CMS to build client websites. Many of the advantages of WordPress are listed below, but the key reasons are:
- It’s free.
- Clients are often already familiar with it and request it for new websites.
- There’s an extensive amount of plugins.
- Users can ship websites with very little coding knowledge.
So why put the beast that is WordPress against CraftCMS? Craft caught our eyes after previously using ExpressionEngine on a client website we inherited.
Craft and EE are often compared, and after seeing that CraftCMS 3 uses Composer, Twig, and PHP7 (modern tools our developers are already familiar with) we decided to give it a shot.
Turns out, it’s actually a wonderful joy to develop fast, bespoke Content Management Systems with.
So what makes Craft so good?
- It’s fast and simple to build bespoke admin areas.
- The plugin system makes it easy to extend functionality.
- Build the front end how you want to.
- Solutions for common front end code problems are built in (e.g. searching, pagination, etc).
Both systems have the benefit of easy PHP deployment and both can be used to create a great CMS for clients; however, that is where most similarities end, and this article hopes to expand on when to use each.
Advantages of WordPress
There are many reasons to use WordPress. If there’s a plugin or theme that fits your needs it becomes very productive to use—and there are a lot of plugins and themes available.
From eCommerce plugins such as WooCommerce which are used to sell products, to contact form plugins such as Contact Form 7 which allow users to make enquiries.
These are just two commonly used plugins but due to WordPress’s popularity there are many plugins to fit more specific use-cases, too.
WordPress also has great SEO optimisation right off the bat. Of course, you will need to do your tweaks and personalisation but the groundwork is done, and there are, of course, plugins to enhance it further. (Sometimes your SEO may need a helping hand :))
The community around WordPress is incredibly large. Although this may not seem significant at first, it means that it’s easy to find companies that work with it. Oddly specific problems are often solved already and available at a quick search.
As WordPress is Open Source, it also means that there are plenty of people actively working on the code base adding new features and improvements. Plugins and hosting often cost money but WordPress itself is free!
Disadvantages of WordPress
Although plugins often come with customisable options, when your requirement doesn’t match a plugin it can become tricky.
You may be lucky enough to be able to solve your problem with a plugin hook or shortcode, but you may end up having to roll your own solution which would take more time.
Sometimes it makes sense to modify the best available plugin’s code, however, this often becomes difficult to maintain as you can’t easily install the plugin updates without modifying the code again each time—possibly temporary breaking your website in the process.
Speaking of updates, WordPress has lots of them! As mentioned in the advantages, but the downside of this is more updates means more maintenance time—and WordPress websites need to be maintained actively as there are often security issues.
In the first half of 2017 there have been 29 security issues found in the core WordPress codebase alone.
Plugins are also subject to security issues, too. They need to be kept up to date for the same reasons, however, there is no guarantee that a plugin developer is still maintaining the code so the plugins need to be chosen carefully. WordFence has a blog post highlighting 22 popular plugins that have vulnerabilities which shows how serious this is.
Modifying or creating new themes can be tricky unless you’re familiar with WordPress’s theming structure, and how The Loop system works. Because of this, learning WordPress development is not straightforward. This can often lead to messy and hard-to-maintain code.
You may also be left with a lot of stuff in the admin area that you don’t need or want. Making it look bloated or difficult to find certain settings.
Speaking of bloat: WordPress can also get quite slow as plugins and themes often add additional asset requests on the front end. The more assets that need to be loaded means the more requests that have to be made to the server. There are plugins for caching and speeding up this process but they’re not always effective.
Advantages of Craft CMS 3
Craft CMS allows you to quickly prototype a Content Management System with ease. Out of the box the admin area gives you the tools to create your own CMS.
There is no built-in blogging system, but if you want blog posts you can have the admin area set up to do so in under 10 minutes. The admin area is flexible enough to create a CMS for most use cases out of the box.
Craft don’t have their own templating system. They use Twig, an Open Source templating engine which has plenty of documentation and is an absolute pleasure to work with. It’s intuitive, stable, and extensible.
Craft CMS 3 also fast. It uses PHP 7 and the performance is noticeable.
Along with this, because the front-end is built from scratch there are no limits to what can be achieved. The website can be built completely bespoke, using your preferred front end framework(s). For websites that need a quick, ready-made HTML template, they can be added in easily, too. Just add your Twig code to the HTML for the data from your CMS. Everything can be optimised as much or as little as needed.
The plugin system makes it relatively easy to extend on Craft. We’ve already released one plug-in with more in the works. As Craft is built on top of the PHP Yii Framework and takes advantage of Composer there is plenty of reusable code that makes creating plugins easier.
As of version 3 the multisite feature and Cloud integration for AWS S3, Google Cloud, and Rackspace are free.
Disadvantages of Craft CMS 3
At the time of writing Craft CMS 3 is in beta, which means there can be breaking changes, various stability issues, and frequent bug fixes.
Craft CMS costs money to enable separate client logins. While having one admin login is free, enabling a restricted client login costs $199 for a license and it costs $299 if you want allow public registrations. This can be a deal-breaker for many – especially lower-end websites.
The plugin system is quite small, and many plugins have not been updated from Craft CMS 2 to 3. This means you’ll likely have to code your own solution for specific use cases.
If you want a solution that’s mostly click-install from a GUI for front end development then you will be left wanting. Craft is all about building the backend CMS part of the website fast, and leaving the front end down to you.
To keep it brief, if you have a problem that can be solved by a ready-made plugin (or plugins) that exists in the WordPress ecosystem and are regularly updated then it makes sense to use WordPress.
If you need something done on a budget, using a ready-made theme, and not have to worry about optimising SEO or creating a lot of code: use WordPress, too.
If you have a client who is comfortable with WordPress and wants to continue using it then it’s a perfectly safe option.
If you have a specific problem that you know will require custom code, if you want to be able to design your own admin area, or you have a bespoke front end design that integrates into a CMS with modern tools: give Craft CMS a try.
If you require some of the paid features and have the budget for it: it will save you a significant amount of time, you’ll have a clean, modern base to work with and maintain in the future.