
Mateu Aguiló Bosch
Senior Developer @ Lullabot
Mateu is the API-First Initiative coordinator for the Drupal project. Mateu is also an author and maintainer of Contenta CMS, a decoupled CMS based on Drupal 8. Mateu has been working on omni-channel backends (PHP and nodejs) for large media companies in the US during the last 9 years. He has gained a perspective on fully featured and performant decoupled backends serving to more than 10 different platforms.
Progressive Decoupling Made Easy
Adding interactive components to your Drupal sites is very challenging. During these past years we have been developing with a powerful pattern that has simplified a lot this process. We have made all this Open Source.
Some important features that are often overlooked but are critical include: ability to preview changes to the embed, full translation of the apps content and interface, and shared dependencies. This will provide all that.
Single Directory Components in Core
Twig was introduced into Drupal core over 10 years ago. Since then, improvements to Drupal’s front-end API have been minimal. Meanwhile, other front-end ecosystems have implemented a superior developer experience including hot-reloading, tooling for automation, component libraries, shared component repositories, and more.
Drupal’s front-end has some catching-up to do, and we believe Single Directory Components (SDC) is the answer! SDC lets the developer add all of a component’s assets into one directory (e.g. template, CSS, JavaScript, and metadata). This component can then be automatically used by display modes or called upon from another template.
On writing maintainable OOP
Drupal is a very flexible framework with incredible tools and extensions. This allows developers to write fantastic features that to make any project succeed. Drupal is also not opinionated, which means that there is no "correct way" to implement a feature in custom code as long as "it works".
In this session I propose a pattern we have been implementing successfully in big and small projects. This aims to standarize and encapsulate your client's business logic in an organized and testable way, but most importantly in a predictible way. A way that a new dev coming in will expect, and a way that you will expect 1 year after rolling off the project.

Mateu Aguiló Bosch
Senior Developer @ Lullabot