My kids and wife are decidedly not early risers. They’d all happily sleep until the morning alarm wakes them. Normally, I wake up in the morning around 7:30am. However, lately I’ve been voluntarily waking up before 6am and feeling wide awake, my mind racing.
In the earlier years of my marriage I’d foolishly awaken my wife to tell her about all the great ideas I was dreaming about and be bewildered when she wasn’t as excited as I was over what I believed to be the next big idea. Now I wait until she’s had her morning tea, and instead… I write about it in a blog :)
I love Drupal. It’s been the technological focal point of our business for the past 7 years. I remember the days when not a single client had heard of it, and selling it was a very steep uphill battle and somewhat risky undertaking. I recall in 2007 when we were commissioned by Draft FCB to build the website for the WSIB (The Workplace Safety and Insurance Board for Ontario). We boldly built it with Drupal. Admittedly, we slipped it in under the guise of a LAMP stack solution. Luckily, it worked out.
As Drupal started to become more popular, the tides changed, and instead of us selling clients on Drupal, we where seeing clients asking for Drupal by name. It felt great to have chosen the right platform to place our bets on.
Last week I made the pilgrimage to Drupalcon Austin, along with 4 others from our company. Overall, the sessions were excellent. However, there was one session that stood out for me. It was called My Brain is Full: Keeping Pace with Front-end and UX Innovations. The presentation spoke about the four years since the Drupal 7 beta launched (Jan 15, 2010 Drupal 7.x-alpha1). The talk covered the massive levels of innovation in the front-ender's toolkit, multitudes of tools, frameworks, (meta-) languages, and techniques, as well as a new set of expectations for what the front-end ought to do: responsive grids and media, HTML5, Web Components, polymer...the list goes on and on.
Since the Drupal 7 launch in 2010, Drupal has, for the most part, stayed the same. Yet it continues to grow in market share and is extremely relevant in the CMS landscape. In my opinion, this is a testament to the levels of innovation, community support and the robustness of the project.
Not long ago, a employee of ours left the Drupal world for the JS world. One of the things he said to me as a reason for leaving is that he’s excited about these new technologies like he was back when Drupal was a ground-breaking innovation in the CMS world. It concerned me greatly that an innovative and talented developer was leaving the Drupal community because Drupal wasn’t, in his opinion, able to support the newer front-end and UX innovations.
I believe the root of the problem lies in the perception that Drupal is the 'golden hammer’ technology that can do anything. The good news is that Drupal can be used to do almost anything, but only when it’s part of a grander web system and plays the role it is best suited for, which is that of a CMS.
Decoupled Drupal (aka Headless Drupal)
Drupal is architected as a three-tiered system: database, logic and presentation. All tightly coupled, meaning, all part of one code package. For the most part, the presentation layer makes assumptions that the output format is HTML. When we decouple Drupal, we replace the presentation layer from our Drupal stack in favour of a RestFul API. We then make no assumptions about the publishing endpoint format. We reduce Drupal’s role to that of a pure CMS.
The API layer then becomes a common gateway for any API-capable, front-end publishing technology to access structured content from Drupal. It allows the front-end to become technology-agnostic to Drupal. This opens the doors to all the latest shiny innovations out there, without compromising the CMS integrity upon which Drupal has been built.
Generally, values and risk tolerance between front-end and back-end can be summarized as follows:
- more tolerance for risk through bleeding and cutting-edge technologies, resulting in great rewards for UX innovation
- requirement for stability, security, support and predictability, resulting in great rewards for longevity and reliability
In practice, what that means for us as designers and developers is that we can, and do, boldly build with Angular.js, use static site generators like DocPad, and we are no longer limited in what is traditionally seen as being a web front-end. Web components, smart watches, native apps, HTML5 apps... are all fair game. Even the lights in our office, which have IP addresses, can be treated as a publishing end-point, in our case to indicate when an important conference call is starting by changing the colour of the lights to red.
Now we find ourselves in a similar situation to 2007, in that selling Drupal as a decoupled solution is a challenge. The UX benefits are obvious, the rock solid Drupal backend is there, but still, it’s not what people are used to. But that’s ok, I like explaining these concepts and being challenged in our approaches. It keeps things exciting, innovative and shiny.