The topic of the presentation was related to building Drupal frontends outside of Drupal itself, in order to leverage the power of single page applications (SPA). This is a pattern known as headless Drupal, and is strongly gaining in popularity.
Drupal is a very powerful CMS, and as such it offers both a state of the art admin interface with all sorts of assistance (think for example about revision workflows) to produce compelling and beautiful content. Many customers are already familiar with this interface, and do not really want (or need) to switch. In some cases, this makes Drupal an unmissable requirement for some websites or applications. At the same time, Drupal offers views that render the content to the end-user. These views range from the relatively simple, to the very complex.
It has been our experience, at Hoppinger, that very complex views and interaction flows, when built in Drupal, suffer from a scalability issue. Under a certain size, the total cost of ownership (TCO) remains very low, but after that it will increase exponentially, making the tool not viable. The most expecting customers often ask us to build beautiful, rich, intelligent frontends, having often lead us to this clash with complexity.
Thanks to React and TypeScript, our developers can use the traditional wisdom of software engineering to tackle complexity in a guaranteed, reliable way. The SPA will then communicate with Drupal via a special view, which is the REST view.
Moreover, Drupal and an SPA are not always the only components of modern web applications. For example, there might be other systems and components that play a role: CRM, ERP, product information systems. We have seen all combinations. When this is the case, then the SPA will be able to seamlessly unify these data sources so that, to the end user, they appear as one, even if they come from multiple sources.
In short, we have shown how we use headless Drupal to build more beautiful, rich frontends that seamlessly combine data from multiple sources. Welcome to the power of headless!