Weathering Decoupled Drupal

mrjmd

As the concept of “progressive decoupling” gains traction in the Drupal community, existing use cases where such implementations have proven their value can be instrumental in guiding our path forward. Weather.com is a perfect example of a scenario where a large Drupal site had to balance the needs of performance, maintainability and innovation, while providing tools that would allow both content editors and developers to move rapidly and independently.

Out of this balancing act was born what has been called at various times “Angular modules”, the “Presentation Framework”, and now, “Decoupled Blocks.” The premise is straightforward: create a system where front-end developers can write pieces of functionality in their javascript framework of choice (for weather.com, this was Angular 1), without having to know anything about Drupal’s APIs. Next, allow those pieces of functionality to be ingested by Drupal into panels content types in such a way that content editors can simply drag and drop them into new pages and layouts.

Now, with Weather Underground being migrated onto the platform built for weather.com, this system is being generalized to allow for their use of the forthcoming Angular 2 framework instead of Angular 1. This paves the way for a truly front-end-framework agnostic system that would give the same performance and editorial benefits while allowing front end teams to use whatever framework is the hot thing of the day.

This session will explain how and why all of this came to pass, the lessons learned, and ultimately build up to a demonstration of the Drupal 8 contrib version of the module.

The Drupal 8 version aims to be a javascript-framework-agnostic, progressive decoupling tool to allow custom block types to be written by front end developers in the javascript framework of their choice, without needing to know any Drupal API's other than basic yaml syntax.

Walking away from this session, attendees will gain a knowledge of both the promise and problems of fully decoupled solutions, and how this "middle ground" solution can offer us the best of both worlds. Both PHP and javascript developers, as well as site builders who may be using this system, are encouraged to attend and offer their suggestions as to how this architecture can be improved and adapted to their needs.

The sandbox version of the D8 module can be found here: https://www.drupal.org/sandbox/mrjmd/2664138

Session Track

Horizons

Experience Level

Intermediate

Drupal Version