As both a Craft CMS Partner and an agency with years of WordPress experience, Goat always has two great content management platform options when working on digital products and websites. There are, of course, other options - but for us, it usually comes down to Craft CMS vs. WordPress.
The decision on which route to take is always strategy-first for us and our clients. In this article, developer Tim Lu runs through some of the most important questions we ask ourselves and our clients when choosing a CMS.
Question One: What kind of CMS background does the client have?
Has the client used content management systems before? Do they have an extensive background in WordPress or similar software?
If a client has prior WordPress experience, it can benefit them greatly to build their new website on the same platform. While powerful, Craft is emerging - fewer clients have experience with Craft. We never forget how important ease-of-use and tech literacy are when building.
WordPress has been dominant when it comes to powering personal and business websites over the past decade. That's because WordPress offers a simple platform to baseline your project while offering a (fairly) intuitive interface. Someone with no programming knowledge can spend 10 dollars to host a WordPress site and get it up and running within minutes.
If the client has existing content on WordPress, moving to a new tech stack can be a massive efficiency loss. If we force a WordPress-literate client onto Craft out of our own preference, a lot of value gained from learning how to use WordPress by the client is thrown away.
You don't always need the fanciest, newest technology in every aspect of your site to make it look and perform well. WordPress-based websites can do 99% of what all the other websites do, though they can sometimes be a bit more difficult - mostly for the developers - depending on the project goal.
Question Two: How much freedom does the client need to make changes?
WordPress offers lots of plugins. And by "lots of plugins", I mean LOOOOOOOOTS of plugins.
Want to add a favicon to your website? Install a plugin. Boom. Your site now has a favicon.
What about a front-page popup for your newest product? Install another plugin. Now your page has a popup.
While most devs prefer to have these features custom-built and integrated into the application, sometimes the client just needs the freedom to do something quickly. While design-focused agencies like ours will stress a bit when a client installs a popup that looks completely out of place, we know that sometimes it's necessary. COVID-19 popups are one recent example. If you might need quick-fix, already-developed features in the form of a plugin, you're better off looking at the WordPress plugin library than that of Craft's. (We may update this in the future, as Craft’s list of plugins is constantly growing).
Fifty-Six Thousand, Eight Hundred and Fifty-Three plugins. We suggest you do not sort alphabetically.
Question Three: What kind, and how much information does the site need to store?
While both options run on the language PHP (the initials originally stood for Personal Home Page), the development library differs largely between the two systems. Depending on the amount and type of site content, it's important to make an early decision on creating architectures. If your site only needs blog posts and a few simple pages, it might be better to leverage WordPress's internal Post Type features to quickly set up your site to focus more on user experience and design. If your site relies on something more data-heavy, an example being a large e-commerce website, we’d look at Craft because it’s a more scalable CMS.
WordPress follows more of the "stripped down" approach when it comes to building digital experiences, while Craft CMS follows more of a "build-up" approach. If large amounts of data need to be processed, the "build-up" approach offers improvements by reducing functional overhead. These small incremental benefits can add up to large improvements over WordPress when it comes to data storage, retrieval, and update operations.
Question Four: How much support does the client want for the site?
Because of WordPress's extended presence on the internet, a lot of its problems can be solved with a quick Google search. You’ll find dozens of blog posts and documentation for almost any WordPress problem. Now, if you plan on a more hands-off development approach (IE: hiring a partner like Goat to strategize, build, and handoff), this won't affect you much. But, from our perspective, having these resources means your features are generally quicker and cheaper to create from scratch (although this doesn't always lead to the cleanest or most elegant solution).
If there's ever a point where another developer or agency has to work on the website (hopefully not because we've been fired), having the extra WordPress support can help them onboard and problem-solve faster. The general rule of thumb is that if you're having a problem with WordPress, several others have probably already posted StackOverflow threads looking for help, and each thread probably has five different suggested solutions.
Craft is different. If your problem statement doesn't show up in the Craft CMS general documentation or the first five results in Google, you're probably going to have a tough time finding help on the specific issue.
At the risk of sounding condescending, Craft CMS is NOT recommended for junior developers. While the Yii PHP Framework (what Craft is built on) streamlines the process of building complicated software, its libraries are extensive and documentation assumes the reader already has an intermediate/high amount of knowledge and comprehension of web frameworks. You'll be hard-pressed to find many tech companies with Craft CMS experience, simply due to its novelty and newer presence as a major player. For the very same reason, you'll also find less support online for Craft CMS - though that support is always growing.
Question Five: Is the client creating a new web application/service? How custom is their solution/service?
As mentioned before, the Yii PHP Framework eases the creation of custom features by providing a library of useful functions and classes. I would wager that we've leveraged only ~5% of the framework's offerings to date. Usually, when a client comes up with a feature request, it's usually comfortable making a provisional confirmation that Craft CMS could accomplish said request.
That's not to say WordPress can't accomplish most client feature requests, but sometimes it can be more difficult: It's analogous to fixing your car at an auto shop versus fixing it in a home garage (PSA - I have absolutely zero knowledge on cars, so if Goat’s resident car buff Terence is reading this: sorry). You could fix your problem in both scenarios, but there are more high-quality tools in the auto shop to adjust and calibrate your car.
The difference in the analogy is that once you start building your car (website) in a certain location (CMS), you can't switch halfway. So if you foresee building a really decked out car, you'll probably want to build it in the auto shop (Craft CMS). It doesn't even have to be a complicated project from the outset. You may start off with an oil change or tire replacement, but later consider changing the roof to a convertible (editor’s note: probably not a thing) or replacing the engine. You could probably do those things in your home garage, which is going to be more convenient, but it's going to be much easier in a proper auto shop.
Seeking.Blue was a site we built in Craft due to the complexity of the UI, and customizability needed.
Question Six: How much control over the site’s presentation is needed?
One really cool feature of Craft CMS is the field system. By installing just a few modules, you can build really complicated yet intuitive UX/UI layouts for your site. That's because Craft handles information in a more relative manner than other content management systems.
If you want a custom layout in a pre-built WordPress theme, you may need to hack together features that weren't intended for that purpose. With the Craft CMS field system (and a really handy plugin called Neo), we can build customizable layouts for almost any request. If a new layout comes up, it's easy to update these page builders to accommodate a new section or media type. In fact, this system is so easy to build, iterate, and use that most of Goat’s non-developers feel comfortable updating the Goat site on their own.
If you don't foresee needing super customizable layouts or worry about budget, go with WordPress. We can build really nice pages for you that don't need much management. But if you're the type to update your content with new modules and designs throughout the life of your site, Craft CMS is likely the right call.
Question Seven: Is the client planning on migrating previous content to the new site?
This one is pretty straightforward. If your previous site exists on WordPress or a similar architecture, it might be more beneficial to stay on the same platform for easier content imports. Migrating information can be time-consuming, and adding another layer of complication by switching CMS can lead to an increase in hours. Since Craft CMS handles information in such a relational manner, it sorts information much differently in a database than other software.
WordPress content is organized in a way that's very easy to import into other CMS software. Craft CMS is organized in a way that allows you to do very cool things with your data and content, but makes migration more difficult.
Of course, all content can be migrated. An agency like ours can still do it, or propose a strategy to guide your team through the change.
Conclusion: This is why a web strategy matters
Goat prides itself on strategic web development and onboarding processes and working towards a solution instead of arbitrary action. If all of the above content made sense and helped you choose between WordPress and Craft CMS, we’ve done our job. If you’re still confused or don’t know how to answer some of the above questions, we’re always happy to help. Just book a chat.
Tim Lu — June 19th