The idea is to use a custom distribution. This empowers each site to do the unsexy, boring, but critical functionality. Then they can use the powerful design over it.
The classic open source pain points, such as documentation and many charlatan developers, need improvement.
I have used this solution for five years.
Customization, such as code introduced outside of the core and contributed functionality, that is introduced, can cause instability.
Like in most of the successful trending tools, the same things that make Drupal great also make it not-so-great.
For example, the fact that Drupal core and contributed code operates 'in the wild' and in front of so many users, it gives it, in effect, the benefit of the largest UAT for any CMS.
That coupled with the fact that its developer community is constantly making updates (e.g., security enhancements, support for new versions of libraries and standards, handling of edge cases, etc.), makes the documentation effort more problematic.
In fact, successful Drupal developers often use the code itself as the documentation. It helps to use the advanced debugging tools, in order to quickly understand how a particular piece of Drupal code works.
This is ironic, since the developer must then use the knowledge to write Drupal code which, as a rule, must be written generically and not tightly coupled to specific technologies.
The other thing to keep an eye out for, is that Drupal developers move too fast to resolve issues, especially the short-term consultants.
Often, organizations will employ short-term consultants at a much lower rate, than proven developers who maybe from a reputable agency or firm.
In these cases, the short-term issues/enhancements are implemented and the consultant moves on. However, more often than not, the work performed creates problems down the line because an unmaintainable approach was taken.
Thus, it is important to note that this phenomena is not unique to Drupal. Rather, Drupal's trending status, combined with the various options,that the developers have to implement the same functionality, seems to breed this type of situation very well.
The wide number of implementation options will often cause developers without a lot of Drupal experience to paint themselves into a corner.
The technical support is below average as compared to all the other products. It is above average for open source CMSs.
Previously, I have used a variety of solutions, including the custom ones. I switched solutions because Drupal provides all the features that I need.
The installation was super easy. You just need to run the Wizard.
It is free, but I would recommend spending the money on quality Drupal hosting, instead of cheaper solutions, such as Pantheon and AWS.
We looked at other solutions namely WordPress, Joomla!, CakePHP, and Symfony.
If you do not need the features that I have mentioned above, then do not use Drupal.