Druid launched its first Drupal 8 site
A few weeks ago we launched our first Drupal 8 site: Lääkärikeskus Aava. Lääkärikeskus Aava is one of the largest chains of private medical centres in Finland. Lääkärikeskus Aava is one of our full service clients. Beside the website renewal, we have also designed the new website and provide maintenance, monitoring and support.
Why did we choose to use Drupal 8?
When we first saw the Drupal 7 version of the site, we knew it would need major architectural level changes because the site was difficult to maintain. We also started evaluating whether this project would be suitable to be built using Drupal 8. We found out that almost everything could be done now out of the box so we could get rid of most of the contributed modules. Many of the modules were related to multilingual content which is fully in Drupal 8 core. Because of that we wanted to use Drupal 8 and we suggested that to our client.
Why Drupal 8 is so cool?
Sitebuilding is made awesome in Drupal 8. Almost immediately we were able to build almost everything out of the box. Sometimes we got stuck because things were different compared to Drupal 7 - most time in a good way. What we found out to be especially useful was CMI - we were able to create revisions of all changes in configuration. The down side of still being in beta is that we were also able to find some nasty bugs. We also fixed some of them.
There was also nice usability improvements in Drupal 8 such as CKEditor in core and updated Seven theme.
It's cool in Drupal 8 that with Views you can easily customize the front page, listing blocks, and more. Simply create custom admin pages, customize filters, and actions.
One of the problems in sitebuilding was a familiar one from Drupal 7: how to store editable blocks in code. If the client must be able to edit, it cannot be created in custom code. However, we found out that in Drupal 8 it's possible to deploy a block instance without its content. If the content would be stored in the CMI, the changes made for the live enviroment would be overridden on next deployment.
Some backend development was required to create the more complex features of the site and to fix some bugs we came across along the way. A few a the modules are now published, including the Drupal 8 port of Subpathauto and the module we used for migrating content from Drupal 7 to 8.
Drupal 8 comes with a modern Object Oriented Programming (OOP) approach to most parts of the system. This gave us tremendous flexibility to swap out pieces and change how Drupal behaves. At many points our team was wondering how complicated some of the modifications would have been in Drupal 7.
One of the new concepts in Drupal 8 is plugins. Extending a plugin is very easy, all you need to do is to extend its class and place your new class in the proper namespace.
On the frontend side we used Classy as a base theme for our theme. In Drupal 8 the flexibility to modify your markup to be whatever you want is easy, because almost all of the markup has been moved into templates.
We found out also that on Drupal 8, working with Twig templates is much more concise and straightforward to code than a Drupal 7's PHP templates. The Twig syntax is easy to use and there is lots of helpers what themers actually need on daily basis.
Also the changes to the theme layer makes it efficient to use. Because we use now render arrays, it is easy to implement needed modifications on preprocess and template level.
Drupal 8 tries to ship with as clean markup as possible, and we actually found out during the project that most of the time instead of removing divs we had to keep adding them.
In Drupal 8, there are many improvements compared to previous versions. There is no more the "Drupal way" of doing things. We are now using the same best practices as others which lowers barriers to start in a Drupal project. However many of the concepts have still still remain as they've used to be so I wouldn't say people would have to start learning Drupal 8 from a scratch.
Drupal 8 is already stable enough to be used for creating new websites. However you certainly have to be aware of the limits it has, especially regarding not-yet-upgraded modules. You have to be able to account some core bugs along the way. On the other side, Drupal 8 offers plenty of new features and better best practices which makes building websites feel good.
Lääkärikeskus Aava was running its previous website on Drupal 7 and
- it had almost 4000 nodes
- 200 taxonomy terms
- 101 contributed modules
- 22 custom modules and
- included 3330 lines of plain CSS.
With a new architecture we have in Drupal 8 this was migrated into
- 3000 nodes
- 200 taxonomy terms
- 12 contributed modules and
- 23 custom modules and
- includes now 3362 lines of SASS.
Our team for this project was: Juho, Lauri E, Tuukka, Pete, Jukka and Lauri A.