Is the future of content management decoupled? Centralization around a single source of content has never been more important as marketers aim to reach a growing array of channels and touchpoints. New tools known as headless CMSes providing content as a service are challenging the monolithic architecture that has long characterized CMSes like Drupal. What role do Drupal and traditional CMSes play in an increasingly API-first playing field and fragmented future?
New architectural techniques such as JavaScript isomorphism and server-side prerendering illustrate the urgency of this question, while new approaches for querying data that aim to replace strictly RESTful architectures assign the CMS a primarily content-focused role. With the recent turn toward API-first approaches, what the future holds for longstanding CMSes like Drupal has never been a more pressing, or more intriguing, concern.
This tech talk will examine the role that Drupal and other CMSes occupy amidst a rapidly changing universe. Topics will include:
-Impacts on markup, performance, security, and the relationship between the front end and back end against the backdrop of decoupled Drupal and the headless CMS
-Imagining the API-first future and what this means for Drupal
-Web services: REST, JSON API, and GraphQL
-The benefits of SDKs such as Waterwheel
18. The web is now just the bare minimum among touchpoints.
IoT apps
Native
apps
Chat
apps
Single-
page
apps
Other
back
ends
Set-top
boxes
19. We’re moving from standalone digital experiences to entire digital ecosystems ...
Native
mobile
app
Website
IoT app
Native
app
Chat
app
Single-
page
app
Other
back
ends
Set-top
box
Content
store
21. … and from consumption of content to interaction with content.
Amazon
Echo push
notification
User-
generated
response
Interaction
with AR/VR
interface
AR/VR
notification
overlay
22. In New York City, Drupal
feeds information to
kiosks in the MTA.
Drupal 8 provides data to
smartphone apps linked
to Tesla vehicles.
Lufthansa supplies its in-
flight entertainment
systems with Drupal 8.
23. Drupal is now a centerpiece of application ecosystems.
IoT apps
Native
apps
Chat
apps
Single-
page
apps
Other
back
ends
Set-top
boxes
24. But we have new competition: the headless CMS.
IoT apps
Native
apps
Chat
apps
Single-
page
apps
Other
back
ends
Set-top
boxes
25. And we have new devices or touchpoints every day.
IoT apps
Native
apps
Chat
apps
Single-
page
apps
Other
back
ends
Set-top
boxes
Smart
watches
Fitness
devices
Arduino
boards
Beacons
AR/VR
apps
Rasp-
berry Pi
Conver-
sational
UIs
LED
displays
36. Monolithic vs. decoupled
Drupal
Drupal front end
PHP
Data
Templates
HTML
Drupal
Decoupled application
PHP
Data
Templates
HTML
Other
language
JSON
REST API
40. HTTP request
HTTP response (JSON, XML)
Site or repository built in
Drupal
Decoupled
application
Web services
Decoupled
application
Software
development
kit (SDK)
API-first ideal
41. Web services
Full feature set
Single REST API in core
Specification flexibility
SDKs
For JavaScript apps
For native apps
For back-end apps
How can we outperform headless CMSes?
42. Web services in Drupal 8 are currently spread
across a variety of implementations.
Core
REST
modules
Services
(D8)
RELAXed
Web
Services
Content entity CRUD
Views REST exports
Resource plugins
Configuration entity CRUD
Configurable route prefixes
User login and logout
Translations
Revisions
File attachments
Entity
Query API
Sorting and range
Conditions
Pagination
43. We need a full feature set and unified REST API in
Drupal core.
Future
core REST
Content entity CRUD
Views REST exports
Resource plugins
Configuration entity CRUD
Configurable route prefixes
User login and logout
Translations
Revisions
File attachments
Sorting and range
Conditions
Pagination
47. Currently, consuming Drupal data requires a
basic understanding of Drupal’s REST API.
JavaScript
application
I need the title of node/1.
But where can I get to it?
And how do I get just the
title?
Current
core REST Here is the node ID, the
node UUID, the node
type, the node language,
the node title, the node
author, the node created
48. Waterwheel is an ecosystem of SDKs that accelerate
development of Drupal-backed applications.
JavaScript
application
I need the title of node/1.
But where can I get to it?
And how do I get just the
title?
Current
core REST
Waterwheel.js SDKI need to get node/1
(and I know the route is
/node/1?_format=json).
49. Waterwheel is an ecosystem of SDKs that accelerate
development of Drupal-backed applications.
JavaScript
application
Current
core REST
Waterwheel.js SDK
Here is the node ID, the
node UUID, the node
type, the node language,
the node title, the node
author, the node created
The title of the first article is
“Blueberry Hill” (and I know
it’s in the response at
response.title[0].value).
52. Static pages
Subscribe to our newsletter You have been successfully
subscribed!
E-mail address
Submit
full-page refresh
Drupal
Drupal front end
PHP
Data
Templates
HTML
Drupal
Drupal front end
Data
Templates
HTML
53. Dynamic pages with Ajax
Subscribe to our newsletter
E-mail address
Submit
Drupal
Drupal front end
PHP
Data
Templates
HTML
Subscribe to our newsletter
Success!
E-mail address
Submit
Subscribe to our newsletter
E-mail address
Submit
AJAX
request
AJAX
response
54. Dynamic pages with client-side rendering
Subscribe
E-mail
Submit
HTTP
request
HTTP
response
Lorem
ipsum dolor
sit amet,
consectetuer
adipiscing.
Lorem
ipsum dolor
sit amet,
consectetuer
adipiscing.
Success!
Here are
others that
might
interest you:
Lorem
ipsum dolor
sit amet,
consectetuer
adipiscing.
Drupal
Decoupled front end
REST API