Drupal is a bad CMS. It is bad for developers. It is bad for end users. It is needlessly complex, woefully incomplete, and brutally rigid in its _extensibility_. Oh you can install modules that are mostly working, or you can write your own module if you know the API well enough (pro tip: no one does). These modules may get you close to that functionality you require, but not close enough. The response from the community when you run across these all too common road blocks is “well you shouldn’t be doing that”. What sort of cop-out answer is that? PHP is goddamned easy to write. Building websites is super fucking easy to do. Doing these things in Drupal is a nightmare. I work in an agency. We move quickly. Our clients move quickly. The web, as a whole, moves quickly. Not Drupal though. Every goddamn thing about it is super slow. Developing for it is slow, testing is slow, theming is slow, creating content is slow, community development is slow.
Most modules are unfinished and should mostly be considered “MVP’s”. Documentation of the platform and community modules are very poor to non-existent. Want to create a view for your YAML Form submissions that filters out certain responses? Too bad, custom field integration with Views probably won’t happen until sometime next year if it ever happens because the Views API documentation is so poor the YAML Form developers don’t know how to use it. I don’t mean that the YAML form developers are bad in any way, they are just at the mercy of the Views developers and their lack of documentation. The Autocomplete Search module renders pluralized versions of content types as section titles in the results container by simply adding a “‘s” to the end. So for a content type called “Story” the search results would say “Story’s”. See, MVP at best. Or maybe even an alpha. The admin menu does not scale well if you are on a 13″ laptop either. The core Structure menu extends passed the viewport and you cannot scroll it.
For every thing that Drupal does well, it does a dozen things that are painfully frustrating. Sometimes when working with Drupal I will get stoked that it did something kinda cool, but soon after I get “drupal’d” and am pulling my hair out for 12 hours because I didn’t know about some arcane combination of button presses required to unlock hidden functionality to make a module do a thing. Even trying to search the internet for solutions to common Drupal problems returns results that are sometimes 12 years old and are no longer relevant to the platform. I have witnessed experienced Drupal developers struggle with doing some of the most basic things within the platform. It does not speak to them as developers, they are all very talented, but it says a lot about Drupal. This is not a platform for the modern web.