Last month, Cossette won “Best Service Website/Application” at the Boomerang awards in Montreal for YQB’s new website launched in September. We won a ton of things that night, which was awesome, but that particular award felt great because of the effort we put through this summer.

This was undoubtebly our biggest project this year and our first using Drupal 8. We had used previous versions of Drupal before but, this time, we knew we had to start with the latest version right away in order to benefit from the REST API functionalities that came baked in with it. The ultimate goal is to make the website a central data layer to be used for multiple uses in the future (mobile, displays, etc).

Using the “latest and greatest” often has its drawbacks, so here are some learnings :

Drupal is resource-hungry

It’s always been the case with Drupal but this version is something. Using PHP 7 made a huge difference in rendering times from our experiences. Tuning and understanding the cache system is also a must.

Community modules, yay!

But, seriously, no. Most of them either suck or have not been (or will never be) updated for Drupal 8. Excluding some unavoidable ones (Token or Ctools), it’s usually best to write modules yourself. Plus, you get a better understanding of how the beast works.

The online documentation is terrible

Seriously, seriously atrocious. The official documentation lacks a lot of examples. The online help isn’t better since the Google results you’ll find will lead you to anwsers to questions that we’re posted for Drupal 4, 5 or 6 (8, 9 or 10 years ago!). The dedicated StackExchange channel is becoming more and more useful, but it’s still hard to find solutions for a specific Drupal version.

The code documentation is great

That’s how we ended up understanding much of the ins and outs of Drupal 8. Each class, each snippet shipped within the framework is filled with PHPDoc blocks with useful information. Combine this with PHPStorm and you’ve got a really great development experience.

At the end of the day, I still think choosing version 8 was the right call for this project. We’ve been shipping features every week and everything has been holding up great so far.