For years now the bulk of our work has been in WordPress or Drupal.
Drupal is spectacular when it comes to managing thousands upon thousands of assets and users. The permissions are incredibly fine-grained and if I want to display a subset of tens of thousands of nodes based on a users location, I’m all over Drupal but this doesn’t come up often.
WordPress is truly best of class blog software and there is a darn good reason it powers something like 35% of the web. The UI is remarkably intuitive and any competent (or half-competent, more on this later) developer can get a fully featured blog up and running in a matter of hours.
That said, Drupal is overkill for for most sites and let’s face it, the learning curve can be rough. WordPress, on the other hand, isn’t really enough. At least not without a slew of plugins to extend it beyond the built in core capabilities. These plugins not only add expense but increase complexity while reducing security.
We have primarily moved to Craft CMS when looking for a PHP content management system. Craft strikes the perfect balance allowing complete developer control on both the front and back ends while still providing a comprehensive set of tools.
So, What’s Different About Craft?
It allows me to do everything I want and doesn’t force me to do anything at all.

The default installation of Craft doesn’t provide any HTML, CSS, Javascript, fields or content types.
It is blank slate allowing developers to implement any framework or design.
But that’s good.
Craft uses the Twig templating engine on top of the Yii PHP framework. Both are solid, mature, secure and well documented. This foundation helps assure longevity while avoiding technical debt and breaking changes with updates — Drupal breaks everything with each major update and WordPress breaks nothing while piling up legacy code.

Want to use Bulma or Tailwind CSS? Not a problem, link it in the head like any other website. No use for jQuery — and there really is no need, ever — don’t add it.
Don’t want to use anything at all? Rock on. Craft generates structured data ready to use with your newfangled fancy JAM stack.
Not all good.
This does come at a cost. Casual developers are not likely to use Craft, and the lack of canned themes and server requirements rule out many ‘developers’.
This can make a Craft site somewhat more expensive than a typical WordPress build. At least in the short term. In the long term doing it right, once, offers a far better return than the constant incremental changes and updates WordPress and Drupal require.
Pro Tip: ask your dev team, or potential dev team, about their familiarity with Composer, Version Control/GIT and Environmental Configuration. If they are vague or evasive, maybe look around more.
Good again.
The bar to entry discourages fly-by-night site builders and assumes a level of expertise. A Craft developer is likely to display more attention to detail and be more familiar with the code base of a project than most WP-centric shops. Because there are no pre-built ‘themes’ every site is guaranteed to be unique.
By using just the features we need in a modular way we avoid the kitchen sink approach and use the tooling we need. Nothing more. This results in a simpler easier to update code base drastically enhancing performance and security.
This attention to detail assures that best practices are utilized throughout with an eye towards SEO and accessibility.
We’ll be talking more, a lot more, about Craft.