SlideShare una empresa de Scribd logo
1 de 50
Descargar para leer sin conexión
Decoupled Drupal:
What It Means for Developers
Preston So, Development Manager,
Acquia Labs, Acquia
Welcome!
→ Preston So (@prestonso) has designed websites since 2001
and built them in Drupal since 2007. He is Development
Manager of Acquia Labs at Acquia and co-founder of the
Southern Colorado User Group.
preston.so

drupal.org/u/prestonso

preston.so@acquia.com

pso@post.harvard.edu
What we’ll cover
What is decoupled Drupal?

Motivating decoupled Drupal

Getting started with decoupled

Integrating with clients

The future of the front end
1
2
3
4
5
What is decoupled Drupal?
The history of content management

Microservices and API-first
methodology

The decoupled front end
 1	
  
Web 1.0
Server
(flat assets)
Client
(browser display)
index.html index.html
Web 2.0
Server
(MySQL)
Client
(browser display)
index.html
CMS
(Drupal, PHP)
rendered
index.html
data template
engine
Web 2.0
Server
(MySQL)
Client
(browser display)
index.html
CMS
(Drupal, PHP)
rendered
index.html
data template
engine
AJAX request
Web 2.0
Server
(MySQL)
Client
(browser display)
index.html
CMS
(Drupal, PHP)
rendered
index.html
data template
engine
AJAX request
AJAX response
Web 2.x
Server
(MySQL)
Client
(browser display)
index.html
data
AJAX request
AJAX response
AJAX response
AJAX response
AJAX request
AJAX request
“Web 3.0”
Server / CMS
(MySQL, Drupal)
Client
(JS, app, anything)
client data
API
(REST)
data
HTTP response
HTTP request
“Web 3.0”
Server / CMS
(MySQL, Drupal)
client data
API
(REST)
data
HTTP response
HTTP request
client data
client data
JSON
→ Package data as JSON or XML instead.
[{
"nid": [{
"value": "1"
}],
"uuid": [{
"value": "0b65effd-c1fd-426a-b708-8fe43d3d66b1"
}],
"vid": [{
"value": "1"
}],
"type": [{
"target_id": "article"
}],
JSON
→ Package data as JSON or XML instead.
"langcode": [{
"value": "en"
}],
"title": [{
"value": "NEDCamp 2015"
}],
"uid": [{
"target_id": "1"
}],
"status": [{
"value": "1"
}],
The history of content management
→ Content management systems have historically been
monolithic.
→ Server-side decoupling involved the separation of structure
and presentation in content delivery.
→ Today, content management systems are becoming
increasingly decoupled on the client side.
Full-featured
CMS
(Drupal 6)
Monolithic content management
Full-featured
CMS
(Drupal 6)
Monolithic content management
Front end
(theme layer)
Monolithic content management
→ The boundary between the theme layer and functional
layer is “highly permeable” (Josh Koenig, Amitai
Burstein).
→ “Drupalisms leak to the front end”
Decoupled content management
Full-featured
CMS
(Drupal 6)
Front end
(theme layer)
Front end
(templates, CSS)
Web editing tool
(Create.js)
Web framework
(Drupal)
Content
repository
(PHPCR)
Microservices
→ Independent, encapsulated functional components
→ Do one thing, and do it well
Client-side framework with CRUD
Full-featured
CMS
(Drupal 6)
Front end
(theme layer)
Front end
(templates, CSS)
Web editing tool
(Create.js)
Web framework
(Drupal)
Content
repository
(PHPCR)
Front end
(Angular.js)
Back end
(Drupal)
API-first methodology
→ Front end and back end interact via REST API
→ Design API first (within Drupal), then write your client-
side app
→ Laravel (Symfony), Flatiron, Sails.js (Node.js)
Multiple clients
Client-side
framework
Angular app
Back end
(single Drupal installation)
Other clients
Internet of things
Other Drupals
Native mobile
application
iOS app
Headless or decoupled?
→ “Headless software is software capable of working on a
device without a graphical user interface.”
→ … Drush?
Motivating decoupled Drupal
Separation of concerns

Write once, publish everywhere

Implications on projects and teams



2	
  
Motivating decoupled Drupal
→ Separation of concerns
→ Structure vs. presentation and model, view, controller
(MVC)
→ Write once, publish everywhere (content syndication)
Problems of decoupled Drupal
→  Much of Drupal’s robustness is lost
→  Cross-origin requests and security
→  Authentication and passwords
→  Form validation
→  Search engine optimization
Problems of decoupled Drupal
→  Content workflow and management
→  Layout management
→  Multilingual and localization
→  Accessibility
→  User experience
Decoupled Drupal and teams
→ Teams will decouple as well, diversifying to work at two
different velocities
→ Generalists will disappear in favor of specialists, jeopardizing
breadth of knowledge
→ Multidisciplinary teams will have front-end developers without
Drupal knowledge
Decoupled Drupal and projects
→ Easier front-end redesigns
→ Offline-first applications (PouchDB, Hood.ie)
→ Further granularization of page elements
When should you decouple Drupal?
→  A site powering one or more other sites
→  A site powering one or more applications
→  A site powering multiple things
→  Standalone applications
→  Standalone websites
Getting started with

decoupled Drupal
Decoupling Drupal 6 and 7

Decoupling Drupal 8
3	
  
Decoupled Drupal 6 and 7
→ Off-the-shelf Drupal 7 has no opinionated REST layer
→ Services module (demo)
§  Built-in REST and XML-RPC interfaces
§  Exposes nodes, users, taxonomies, and other core
data at custom endpoints
§  Services Entity extends Services to work with all
entity types
Decoupled Drupal 6 and 7
→ restWS exposes any Drupal entity on its existing path
based on headers.
→ Restful is entity-centric but allows developers to define
what data ought to be sent in response to a request.
Decoupled Drupal 8
→ WSCCI (Web Services and Context Core Initiative)
incorporated Web Services into Drupal 8 core.
→ Web Services (core) allows for all core entities to be
exposed as JSON+HAL; Views natively supports “REST
export” as a new display type.
Decoupled Drupal 8
Decoupled Drupal 8
→ RELAXed Web Services (contrib) extends the core REST
API to include revisions and file attachments.
→ RELAXed’s mission aligns with movement in content
staging and offline-first applications.
Integrating with clients
Native mobile applications

Single-page applications



 4	
  
Client-side frameworks
→ Angular.js relies on directives declared in templates to
provision MVC relationships and provide two-way data
binding
→ Ember.js is highly opinionated, less flexible, and based
on the fluctuating Web Components standard
→ React.js uses a Virtual DOM, JSX as syntactic sugar,
and robust state system
Isomorphic JavaScript
→ An isomorphic framework can be used both on the
client side and server side
→ Node.js: Integration of front-end and back-end
elements; testing framework
→ MEAN stack: MongoDB, Express.js, Angular.js, Node.js
Single-page applications
→ Web Services has a built-in CORS Domains UI
→ Angular.js: Retrieve JSON using $rootScope and
$http
→ Ember.js: Retrieve JSON using $.getJSON on a new
route
Native mobile applications
→ Services Views, Views Datasource (D6 and D7)
→ Titanium (write JS, compile Java or Objective-C)
→ Drupal iOS SDK
→ DrupalCloud (Android)
The future of the front end
The Drupal theme layer

Web Components and the DOM

Discussion
5	
  
Is theming dead?
→ Morten’s “Angry Themer” efforts
→ Does this solve divitis and over-Drupalistic markup?
→ Accessibility and user experience (ARIA, etc.)
→ Is the Drupal theme layer better off coupled?
Pseudo-decoupling
→ Exposing front-end logic from Drupal such as layout
configuration to the client-side app
→ Duplication of functionality
→ Circular dependencies
Progressive decoupling
→ Decouple only components of the page
→ Maintain Drupal functionality such as site building tools,
security, accessibility, and layout management
→ “The future of decoupled Drupal” by Dries
§  buytaert.net/the-future-of-decoupled-drupal
Is Drupal at risk?
→ “We can make Drupal a weapon of choice for the
emerging front-end development community. We can
become good partners with them in open source. It’ll
take us into new markets, it’ll take us into new use
cases.”

—Josh Koenig
Food for thought
→ How do we make front-end developers excited about
using Drupal as a back end? (GraphQL)
→ “What back end are you using?”
→ Content and site REST API for Drupal
→ A better way of provisioning APIs in Drupal
Food for thought
→ What if you could manipulate Drupal content and site
configuration as easily as we can with Drush?
→ Drupal admin UI as a single-page app
→ Big plus: Optimistic feedback
Food for thought
→ What is the future of Drupal against the backdrop of
decoupled Drupal?
→ What is the future of the Drupal front-end community
against the backdrop of decoupled Drupal?
→ What is the future of decoupled Drupal?
Thank you!
→ Preston So (@prestonso) has designed websites since 2001
and built them in Drupal since 2007. He is Development
Manager of Acquia Labs at Acquia and co-founder of the
Southern Colorado User Group.
preston.so

drupal.org/u/prestonso

preston.so@acquia.com

pso@post.harvard.edu

Más contenido relacionado

La actualidad más candente

Lightning In The Clouds
Lightning In The CloudsLightning In The Clouds
Lightning In The Clouds
george.james
 

La actualidad más candente (20)

Dreamweaver Application
Dreamweaver ApplicationDreamweaver Application
Dreamweaver Application
 
Mvc webforms
Mvc webformsMvc webforms
Mvc webforms
 
Vitali zaidman Do You Need Server Side Rendering? What Are The Alternatives?
Vitali zaidman Do You Need Server Side Rendering? What Are The Alternatives?Vitali zaidman Do You Need Server Side Rendering? What Are The Alternatives?
Vitali zaidman Do You Need Server Side Rendering? What Are The Alternatives?
 
Mule 4 meetup @Hyderabad
Mule 4 meetup @HyderabadMule 4 meetup @Hyderabad
Mule 4 meetup @Hyderabad
 
Flex vs. HTML5 for RIAS
Flex vs. HTML5 for RIASFlex vs. HTML5 for RIAS
Flex vs. HTML5 for RIAS
 
Building Drupal 8 Sites
Building Drupal 8 SitesBuilding Drupal 8 Sites
Building Drupal 8 Sites
 
Managing Translation Workflows in Drupal 7
Managing Translation Workflows in Drupal 7Managing Translation Workflows in Drupal 7
Managing Translation Workflows in Drupal 7
 
Drupal 8 Development at the Speed of Lightning (& BLT)
Drupal 8 Development at the Speed of Lightning (& BLT)Drupal 8 Development at the Speed of Lightning (& BLT)
Drupal 8 Development at the Speed of Lightning (& BLT)
 
A new tool for measuring performance in Drupal 8 - DrupalCamp London
A new tool for measuring performance in Drupal 8 - DrupalCamp LondonA new tool for measuring performance in Drupal 8 - DrupalCamp London
A new tool for measuring performance in Drupal 8 - DrupalCamp London
 
INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...
INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...
INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...
 
Opening the mobile web mozilla and firefox os-chit thiri maung
Opening the mobile web   mozilla and firefox os-chit thiri maungOpening the mobile web   mozilla and firefox os-chit thiri maung
Opening the mobile web mozilla and firefox os-chit thiri maung
 
Drupal 7 for Government Case Study: Presentation at DrupalCamp Montreal 2012
Drupal 7 for Government Case Study: Presentation at DrupalCamp Montreal 2012Drupal 7 for Government Case Study: Presentation at DrupalCamp Montreal 2012
Drupal 7 for Government Case Study: Presentation at DrupalCamp Montreal 2012
 
AN INTRODUCTION TO APACHE FLEX
AN INTRODUCTION TO APACHE FLEXAN INTRODUCTION TO APACHE FLEX
AN INTRODUCTION TO APACHE FLEX
 
React with rails a perfect combination to build modern web application
React with rails a perfect combination to build modern web applicationReact with rails a perfect combination to build modern web application
React with rails a perfect combination to build modern web application
 
Migrate for Site Builders from MidCamp 2016
Migrate for Site Builders from MidCamp 2016Migrate for Site Builders from MidCamp 2016
Migrate for Site Builders from MidCamp 2016
 
Drupal's competition
Drupal's competitionDrupal's competition
Drupal's competition
 
Headless Drupal 8
Headless Drupal 8Headless Drupal 8
Headless Drupal 8
 
Building a REST API for Longevity
Building a REST API for LongevityBuilding a REST API for Longevity
Building a REST API for Longevity
 
Lightning In The Clouds
Lightning In The CloudsLightning In The Clouds
Lightning In The Clouds
 
Open Source examples from Adobe : Oscon kiosk
Open Source examples from Adobe : Oscon kioskOpen Source examples from Adobe : Oscon kiosk
Open Source examples from Adobe : Oscon kiosk
 

Destacado

Destacado (20)

Applied progressive decoupling weather.com, angular, and drupal
Applied progressive decoupling  weather.com, angular, and drupalApplied progressive decoupling  weather.com, angular, and drupal
Applied progressive decoupling weather.com, angular, and drupal
 
What Is a Cloud-first Headless CMS
What Is a Cloud-first Headless CMSWhat Is a Cloud-first Headless CMS
What Is a Cloud-first Headless CMS
 
Drupal 8: The Foundation for Digital Experience and Digital Business
Drupal 8: The Foundation for Digital Experience and Digital BusinessDrupal 8: The Foundation for Digital Experience and Digital Business
Drupal 8: The Foundation for Digital Experience and Digital Business
 
What is headless drupal?
What is headless drupal?What is headless drupal?
What is headless drupal?
 
HeadLess Drupal
HeadLess DrupalHeadLess Drupal
HeadLess Drupal
 
RE-ASSIGNMENT OF EXCESS TEACHERS
RE-ASSIGNMENT OF EXCESS TEACHERSRE-ASSIGNMENT OF EXCESS TEACHERS
RE-ASSIGNMENT OF EXCESS TEACHERS
 
RESTful in Drupal 8 and Services module - New`n`Tasty!
RESTful in Drupal 8 and Services module - New`n`Tasty!RESTful in Drupal 8 and Services module - New`n`Tasty!
RESTful in Drupal 8 and Services module - New`n`Tasty!
 
What is Drupal? And Why is it Useful? Webinar
What is Drupal? And Why is it Useful? WebinarWhat is Drupal? And Why is it Useful? Webinar
What is Drupal? And Why is it Useful? Webinar
 
CMS web publishing solution for a travel related website using Drupal
CMS web publishing solution for a travel related website using DrupalCMS web publishing solution for a travel related website using Drupal
CMS web publishing solution for a travel related website using Drupal
 
[HKDUG] #20160626 - HKOSCon 2015 - Website DIY with Drupal 8
[HKDUG] #20160626 - HKOSCon 2015 - Website DIY with Drupal 8[HKDUG] #20160626 - HKOSCon 2015 - Website DIY with Drupal 8
[HKDUG] #20160626 - HKOSCon 2015 - Website DIY with Drupal 8
 
Developing a Communication & Knowledge management Strategy - my experience at...
Developing a Communication & Knowledge management Strategy - my experience at...Developing a Communication & Knowledge management Strategy - my experience at...
Developing a Communication & Knowledge management Strategy - my experience at...
 
The Wonderful World of Drupal 8 Multilingual
The Wonderful World of Drupal 8 MultilingualThe Wonderful World of Drupal 8 Multilingual
The Wonderful World of Drupal 8 Multilingual
 
Drupal: My Search for a CMS
Drupal: My Search for a CMSDrupal: My Search for a CMS
Drupal: My Search for a CMS
 
Drupal8 + AngularJS
Drupal8 + AngularJSDrupal8 + AngularJS
Drupal8 + AngularJS
 
Introduction to Drupal features
Introduction to Drupal featuresIntroduction to Drupal features
Introduction to Drupal features
 
Content Staging in Drupal 8
Content Staging in Drupal 8Content Staging in Drupal 8
Content Staging in Drupal 8
 
Mb Portfolio 20091201
Mb Portfolio 20091201Mb Portfolio 20091201
Mb Portfolio 20091201
 
Use Content to Enhance Your Commerce Experience
Use Content to Enhance Your Commerce ExperienceUse Content to Enhance Your Commerce Experience
Use Content to Enhance Your Commerce Experience
 
Headless Drupal, Singapore Drupal Meetup
Headless Drupal, Singapore Drupal MeetupHeadless Drupal, Singapore Drupal Meetup
Headless Drupal, Singapore Drupal Meetup
 
Introducing Acquia Content Hub: Take Control of Your Content Chaos
Introducing Acquia Content Hub: Take Control of Your Content ChaosIntroducing Acquia Content Hub: Take Control of Your Content Chaos
Introducing Acquia Content Hub: Take Control of Your Content Chaos
 

Similar a Decoupled Drupal: What This Means for Developers

Spark: Authoring Experience++ in Drupal 7, 8, and Beyond
Spark: Authoring Experience++ in Drupal 7, 8, and BeyondSpark: Authoring Experience++ in Drupal 7, 8, and Beyond
Spark: Authoring Experience++ in Drupal 7, 8, and Beyond
Angela Byron
 
DrupalDeveloper
DrupalDeveloperDrupalDeveloper
DrupalDeveloper
Raju J
 

Similar a Decoupled Drupal: What This Means for Developers (20)

Decoupled drupal DcRuhr
Decoupled drupal DcRuhrDecoupled drupal DcRuhr
Decoupled drupal DcRuhr
 
Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7
 
Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7Building Websites of the Future With Drupal 7
Building Websites of the Future With Drupal 7
 
Viridians on Rails
Viridians on RailsViridians on Rails
Viridians on Rails
 
Drupal 8 and iOS - an Open Source App
Drupal 8 and iOS - an Open Source AppDrupal 8 and iOS - an Open Source App
Drupal 8 and iOS - an Open Source App
 
Spark: Authoring Experience++ in Drupal 7, 8, and Beyond
Spark: Authoring Experience++ in Drupal 7, 8, and BeyondSpark: Authoring Experience++ in Drupal 7, 8, and Beyond
Spark: Authoring Experience++ in Drupal 7, 8, and Beyond
 
Ask Us Anything: Dries Buytaert and Team Tell All on Drupal 8
Ask Us Anything: Dries Buytaert and Team Tell All on Drupal 8Ask Us Anything: Dries Buytaert and Team Tell All on Drupal 8
Ask Us Anything: Dries Buytaert and Team Tell All on Drupal 8
 
The Decoupled CMS in Financial Services
The Decoupled CMS in Financial ServicesThe Decoupled CMS in Financial Services
The Decoupled CMS in Financial Services
 
The Guide to becoming a full stack developer in 2018
The Guide to becoming a full stack developer in 2018The Guide to becoming a full stack developer in 2018
The Guide to becoming a full stack developer in 2018
 
Decoupling Drupal - Drupal Camp Toronto 2014
Decoupling Drupal - Drupal Camp Toronto 2014Decoupling Drupal - Drupal Camp Toronto 2014
Decoupling Drupal - Drupal Camp Toronto 2014
 
Semantic content management: consuming and producing RDF in Drupal
Semantic content management: consuming and producing RDF in DrupalSemantic content management: consuming and producing RDF in Drupal
Semantic content management: consuming and producing RDF in Drupal
 
Drupal & AngularJS - DrupalCamp Spain 2014
Drupal & AngularJS - DrupalCamp Spain 2014Drupal & AngularJS - DrupalCamp Spain 2014
Drupal & AngularJS - DrupalCamp Spain 2014
 
Above the cloud joarder kamal
Above the cloud   joarder kamalAbove the cloud   joarder kamal
Above the cloud joarder kamal
 
8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx
8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx
8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx
 
10 Best Web Development Frameworks for Your Business Needs
10 Best Web Development Frameworks for Your Business Needs10 Best Web Development Frameworks for Your Business Needs
10 Best Web Development Frameworks for Your Business Needs
 
2.28.17 Introducing DSpace 7 Webinar Slides
2.28.17 Introducing DSpace 7 Webinar Slides2.28.17 Introducing DSpace 7 Webinar Slides
2.28.17 Introducing DSpace 7 Webinar Slides
 
Sunshine consulting mopuru babu cv_java_j2ee_spring_bigdata_scala
Sunshine consulting mopuru babu cv_java_j2ee_spring_bigdata_scalaSunshine consulting mopuru babu cv_java_j2ee_spring_bigdata_scala
Sunshine consulting mopuru babu cv_java_j2ee_spring_bigdata_scala
 
DrupalDeveloper
DrupalDeveloperDrupalDeveloper
DrupalDeveloper
 
How To Build An Accessible Web Application
How To Build An Accessible Web ApplicationHow To Build An Accessible Web Application
How To Build An Accessible Web Application
 
Website and it's importance
Website and it's importanceWebsite and it's importance
Website and it's importance
 

Más de Acquia

Taking Your Multi-Site Management at Scale to the Next Level
Taking Your Multi-Site Management at Scale to the Next LevelTaking Your Multi-Site Management at Scale to the Next Level
Taking Your Multi-Site Management at Scale to the Next Level
Acquia
 

Más de Acquia (20)

Acquia_Adcetera Webinar_Marketing Automation.pdf
Acquia_Adcetera Webinar_Marketing Automation.pdfAcquia_Adcetera Webinar_Marketing Automation.pdf
Acquia_Adcetera Webinar_Marketing Automation.pdf
 
Acquia Webinar Deck - 9_13 .pdf
Acquia Webinar Deck - 9_13 .pdfAcquia Webinar Deck - 9_13 .pdf
Acquia Webinar Deck - 9_13 .pdf
 
Taking Your Multi-Site Management at Scale to the Next Level
Taking Your Multi-Site Management at Scale to the Next LevelTaking Your Multi-Site Management at Scale to the Next Level
Taking Your Multi-Site Management at Scale to the Next Level
 
CDP for Retail Webinar with Appnovation - Q2 2022.pdf
CDP for Retail Webinar with Appnovation - Q2 2022.pdfCDP for Retail Webinar with Appnovation - Q2 2022.pdf
CDP for Retail Webinar with Appnovation - Q2 2022.pdf
 
May Partner Bootcamp 2022
May Partner Bootcamp 2022May Partner Bootcamp 2022
May Partner Bootcamp 2022
 
April Partner Bootcamp 2022
April Partner Bootcamp 2022April Partner Bootcamp 2022
April Partner Bootcamp 2022
 
How to Unify Brand Experience: A Hootsuite Story
How to Unify Brand Experience: A Hootsuite Story How to Unify Brand Experience: A Hootsuite Story
How to Unify Brand Experience: A Hootsuite Story
 
Using Personas to Guide DAM Results: How Life Time Pumped Up Their UX and CX
Using Personas to Guide DAM Results: How Life Time Pumped Up Their UX and CXUsing Personas to Guide DAM Results: How Life Time Pumped Up Their UX and CX
Using Personas to Guide DAM Results: How Life Time Pumped Up Their UX and CX
 
Improve Code Quality and Time to Market: 100% Cloud-Based Development Workflow
Improve Code Quality and Time to Market: 100% Cloud-Based Development WorkflowImprove Code Quality and Time to Market: 100% Cloud-Based Development Workflow
Improve Code Quality and Time to Market: 100% Cloud-Based Development Workflow
 
September Partner Bootcamp
September Partner BootcampSeptember Partner Bootcamp
September Partner Bootcamp
 
August partner bootcamp
August partner bootcampAugust partner bootcamp
August partner bootcamp
 
July 2021 Partner Bootcamp
July  2021 Partner BootcampJuly  2021 Partner Bootcamp
July 2021 Partner Bootcamp
 
May Partner Bootcamp
May Partner BootcampMay Partner Bootcamp
May Partner Bootcamp
 
DRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASY
DRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASYDRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASY
DRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASY
 
Work While You Sleep: The CMO’s Guide to a 24/7/365 Lead Machine
Work While You Sleep: The CMO’s Guide to a 24/7/365 Lead MachineWork While You Sleep: The CMO’s Guide to a 24/7/365 Lead Machine
Work While You Sleep: The CMO’s Guide to a 24/7/365 Lead Machine
 
Acquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B Leads
Acquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B LeadsAcquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B Leads
Acquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B Leads
 
April partner bootcamp deck cookieless future
April partner bootcamp deck  cookieless futureApril partner bootcamp deck  cookieless future
April partner bootcamp deck cookieless future
 
How to enhance cx through personalised, automated solutions
How to enhance cx through personalised, automated solutionsHow to enhance cx through personalised, automated solutions
How to enhance cx through personalised, automated solutions
 
DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...
DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...
DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...
 
Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021
Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021
Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

Decoupled Drupal: What This Means for Developers

  • 1. Decoupled Drupal: What It Means for Developers Preston So, Development Manager, Acquia Labs, Acquia
  • 2. Welcome! → Preston So (@prestonso) has designed websites since 2001 and built them in Drupal since 2007. He is Development Manager of Acquia Labs at Acquia and co-founder of the Southern Colorado User Group. preston.so drupal.org/u/prestonso preston.so@acquia.com pso@post.harvard.edu
  • 3. What we’ll cover What is decoupled Drupal? Motivating decoupled Drupal Getting started with decoupled Integrating with clients The future of the front end 1 2 3 4 5
  • 4. What is decoupled Drupal? The history of content management Microservices and API-first methodology The decoupled front end 1  
  • 5. Web 1.0 Server (flat assets) Client (browser display) index.html index.html
  • 6. Web 2.0 Server (MySQL) Client (browser display) index.html CMS (Drupal, PHP) rendered index.html data template engine
  • 7. Web 2.0 Server (MySQL) Client (browser display) index.html CMS (Drupal, PHP) rendered index.html data template engine AJAX request
  • 8. Web 2.0 Server (MySQL) Client (browser display) index.html CMS (Drupal, PHP) rendered index.html data template engine AJAX request AJAX response
  • 9. Web 2.x Server (MySQL) Client (browser display) index.html data AJAX request AJAX response AJAX response AJAX response AJAX request AJAX request
  • 10. “Web 3.0” Server / CMS (MySQL, Drupal) Client (JS, app, anything) client data API (REST) data HTTP response HTTP request
  • 11. “Web 3.0” Server / CMS (MySQL, Drupal) client data API (REST) data HTTP response HTTP request client data client data
  • 12. JSON → Package data as JSON or XML instead. [{ "nid": [{ "value": "1" }], "uuid": [{ "value": "0b65effd-c1fd-426a-b708-8fe43d3d66b1" }], "vid": [{ "value": "1" }], "type": [{ "target_id": "article" }],
  • 13. JSON → Package data as JSON or XML instead. "langcode": [{ "value": "en" }], "title": [{ "value": "NEDCamp 2015" }], "uid": [{ "target_id": "1" }], "status": [{ "value": "1" }],
  • 14. The history of content management → Content management systems have historically been monolithic. → Server-side decoupling involved the separation of structure and presentation in content delivery. → Today, content management systems are becoming increasingly decoupled on the client side.
  • 16. Full-featured CMS (Drupal 6) Monolithic content management Front end (theme layer)
  • 17. Monolithic content management → The boundary between the theme layer and functional layer is “highly permeable” (Josh Koenig, Amitai Burstein). → “Drupalisms leak to the front end”
  • 18. Decoupled content management Full-featured CMS (Drupal 6) Front end (theme layer) Front end (templates, CSS) Web editing tool (Create.js) Web framework (Drupal) Content repository (PHPCR)
  • 19. Microservices → Independent, encapsulated functional components → Do one thing, and do it well
  • 20. Client-side framework with CRUD Full-featured CMS (Drupal 6) Front end (theme layer) Front end (templates, CSS) Web editing tool (Create.js) Web framework (Drupal) Content repository (PHPCR) Front end (Angular.js) Back end (Drupal)
  • 21. API-first methodology → Front end and back end interact via REST API → Design API first (within Drupal), then write your client- side app → Laravel (Symfony), Flatiron, Sails.js (Node.js)
  • 22. Multiple clients Client-side framework Angular app Back end (single Drupal installation) Other clients Internet of things Other Drupals Native mobile application iOS app
  • 23. Headless or decoupled? → “Headless software is software capable of working on a device without a graphical user interface.” → … Drush?
  • 24. Motivating decoupled Drupal Separation of concerns Write once, publish everywhere Implications on projects and teams 2  
  • 25. Motivating decoupled Drupal → Separation of concerns → Structure vs. presentation and model, view, controller (MVC) → Write once, publish everywhere (content syndication)
  • 26. Problems of decoupled Drupal →  Much of Drupal’s robustness is lost →  Cross-origin requests and security →  Authentication and passwords →  Form validation →  Search engine optimization
  • 27. Problems of decoupled Drupal →  Content workflow and management →  Layout management →  Multilingual and localization →  Accessibility →  User experience
  • 28. Decoupled Drupal and teams → Teams will decouple as well, diversifying to work at two different velocities → Generalists will disappear in favor of specialists, jeopardizing breadth of knowledge → Multidisciplinary teams will have front-end developers without Drupal knowledge
  • 29. Decoupled Drupal and projects → Easier front-end redesigns → Offline-first applications (PouchDB, Hood.ie) → Further granularization of page elements
  • 30. When should you decouple Drupal? →  A site powering one or more other sites →  A site powering one or more applications →  A site powering multiple things →  Standalone applications →  Standalone websites
  • 31. Getting started with
 decoupled Drupal Decoupling Drupal 6 and 7 Decoupling Drupal 8 3  
  • 32. Decoupled Drupal 6 and 7 → Off-the-shelf Drupal 7 has no opinionated REST layer → Services module (demo) §  Built-in REST and XML-RPC interfaces §  Exposes nodes, users, taxonomies, and other core data at custom endpoints §  Services Entity extends Services to work with all entity types
  • 33. Decoupled Drupal 6 and 7 → restWS exposes any Drupal entity on its existing path based on headers. → Restful is entity-centric but allows developers to define what data ought to be sent in response to a request.
  • 34. Decoupled Drupal 8 → WSCCI (Web Services and Context Core Initiative) incorporated Web Services into Drupal 8 core. → Web Services (core) allows for all core entities to be exposed as JSON+HAL; Views natively supports “REST export” as a new display type.
  • 36. Decoupled Drupal 8 → RELAXed Web Services (contrib) extends the core REST API to include revisions and file attachments. → RELAXed’s mission aligns with movement in content staging and offline-first applications.
  • 37. Integrating with clients Native mobile applications Single-page applications 4  
  • 38. Client-side frameworks → Angular.js relies on directives declared in templates to provision MVC relationships and provide two-way data binding → Ember.js is highly opinionated, less flexible, and based on the fluctuating Web Components standard → React.js uses a Virtual DOM, JSX as syntactic sugar, and robust state system
  • 39. Isomorphic JavaScript → An isomorphic framework can be used both on the client side and server side → Node.js: Integration of front-end and back-end elements; testing framework → MEAN stack: MongoDB, Express.js, Angular.js, Node.js
  • 40. Single-page applications → Web Services has a built-in CORS Domains UI → Angular.js: Retrieve JSON using $rootScope and $http → Ember.js: Retrieve JSON using $.getJSON on a new route
  • 41. Native mobile applications → Services Views, Views Datasource (D6 and D7) → Titanium (write JS, compile Java or Objective-C) → Drupal iOS SDK → DrupalCloud (Android)
  • 42. The future of the front end The Drupal theme layer Web Components and the DOM Discussion 5  
  • 43. Is theming dead? → Morten’s “Angry Themer” efforts → Does this solve divitis and over-Drupalistic markup? → Accessibility and user experience (ARIA, etc.) → Is the Drupal theme layer better off coupled?
  • 44. Pseudo-decoupling → Exposing front-end logic from Drupal such as layout configuration to the client-side app → Duplication of functionality → Circular dependencies
  • 45. Progressive decoupling → Decouple only components of the page → Maintain Drupal functionality such as site building tools, security, accessibility, and layout management → “The future of decoupled Drupal” by Dries §  buytaert.net/the-future-of-decoupled-drupal
  • 46. Is Drupal at risk? → “We can make Drupal a weapon of choice for the emerging front-end development community. We can become good partners with them in open source. It’ll take us into new markets, it’ll take us into new use cases.” —Josh Koenig
  • 47. Food for thought → How do we make front-end developers excited about using Drupal as a back end? (GraphQL) → “What back end are you using?” → Content and site REST API for Drupal → A better way of provisioning APIs in Drupal
  • 48. Food for thought → What if you could manipulate Drupal content and site configuration as easily as we can with Drush? → Drupal admin UI as a single-page app → Big plus: Optimistic feedback
  • 49. Food for thought → What is the future of Drupal against the backdrop of decoupled Drupal? → What is the future of the Drupal front-end community against the backdrop of decoupled Drupal? → What is the future of decoupled Drupal?
  • 50. Thank you! → Preston So (@prestonso) has designed websites since 2001 and built them in Drupal since 2007. He is Development Manager of Acquia Labs at Acquia and co-founder of the Southern Colorado User Group. preston.so drupal.org/u/prestonso preston.so@acquia.com pso@post.harvard.edu