The New Drupal Evaluator Experience, by the numbers

Six months ago, Drupal's evaluator experience was complex, time-consuming, and frustrating. That's changed dramatically.

I previously published an article in which I compared the evaluator experience for Drupal against that of Wordpress, Symfony, and Laravel. I attempted to get a new "Hello World" site up and running in each of the four different PHP frameworks and recorded a few statistics.

Documentation Initiative Update, UX Changes to Drupal.org

The documentation initiative was announced at DrupalCon Nashville nearly four months ago. In his keynote, Dries’ highlighted my blog post, in which I provided statistics and anecdotes about the challenges of Drupal.org’s documentation and evaluator experience. The documentation initiative aims to address these challenges. What’s happened since then?

Stranger in a familiar land: Comparing the novice's first impression of Drupal to other PHP frameworks

Drupal 8 adoption is flagging. Why? I tried to lay my biases and assumptions aside and set out to find the answer. What I found surprised me.

I decided to perform an experiment. Placing myself (as much as possible) in the shoes of a senior developer without any Drupal experience, I attempted to get a new "Hello World" site up and running in four different PHP frameworks: Wordpress, Laravel, Symfony, and Drupal.

I set a few ground rules for myself:

LogicException: The controller result claims to be providing relevant cache metadata

LogicException: The controller result claims to be providing relevant cache metadata, but leaked metadata was detected. Please ensure you are not rendering content too early.

Some methods of URL generation cause accountability metadata to be rendered too early, resulting in a fatal error. The solution is to generate the URL differently:

Drupal Lock Stampede

When a Drupal site begins to be overwhelmed by high volumes of traffic, one of the worst bottlenecks is Drupal core's menu system. A menu rebuild during high traffic can easily causes a stampede on your database, which is exacerbated by the architecture of core's Lock API.

The order of operations that leads to the stampede behavior is as follows: