Decoupled Front End and the Future

David Hwang
@eatings

ver 1.1

(something like that)

"Headless Drupal"

What is Headless?

Drupal as a content model and entity API...

...minus the client-facing theme layer

Drupal as a RESTful web services endpoint

Drupal as a content repository

"Bring your own front end"

Your app up front,
Drupal in the back

and yes...

Client-side JS MVC 
frontend frameworks
rendering Drupal data. 

Things you get!

Complete Separation of Concerns

Drupal Backend
+
Front-end App

Ultimate control of your frontend stack

Drupal's content modelling tools

Content authoring and workflow tools

Users, roles and permissions

All the RESTful 
serialized entity data you can eat

This value can not be oversold

One step closer to 'write once, publish everywhere'

Bonus: Headed Sites!

Things you don't get

Anything that comes from Drupal's frontend

Drupal's render() pipeline!

Drag and Drop visual templating

Panels, Display Suite, Modules that affect display behaviors

Front end-facing Form API

Anything that comes from Drupal's frontend

*For now, at least.

These are not trivial hurdles.

Drupal's kind of all smushed together like that.

So why do it?

Frontend moves fast. Really fast.

Faster than Drupal core can keep up, honestly

Separate frontend app layer moves independently of Drupal

Frontend moves at innovation speed, 
Drupal + Content Model moves at its own pace

Everybody can use the tools they prefer in contexts that make the most sense.

The Lesson of the Responsive Web

We can't predict the next big change;
we can only build in ways that lets us be flexible

Spoiler: Drupal has two heads

We're only cutting off one of them.

Well, maybe.

Examples

Drupal site feeding mobile & other apps

Websites,
Native Mobile Apps,
Set-top Boxes,
Monetized APIs

Drupal content modelling plugging into massive online retail system

Drupal pushing content to across multiple web endpoints

Swappable frontend teams, techniques and systems, with consistent Drupal base.

Internet of things, schminternet of schtings

Drupal content on non-web devices

What if...?

"Drupal admin UI doesn't have APIs so much as it has buttons with db calls mapped to them."

 

-Larry Garfield, yesterday.

What if all Drupal front ends were decoupled services-based apps?

Drupal admin as a webapp?

Coda

Drupal has tried to be all things to everybody.

All-in-one,
soup-to-nuts
Drupal-shaped
hammer

You bend the app to Drupal, you build the use case around Drupal, you live and die by the whole stack

Presentation

Content
Data Model

What if Drupal was just another layer in your stack...

...that you could freely swap out any piece at any time?

By decoupling the front end, we make it more  flexible and widely relevant

Resources

Headless Drupal
working group

 

http://groups.drupal.org/headless-drupal

@eatings

Decoupled Drupal and the Future

By eatings

Private

Decoupled Drupal and the Future

Core Conversation, Drupalcon Amsterdam 2014

More from eatings