SlideShare a Scribd company logo
Decoupled Days 2020
On our way to headless
A transition in progress
Photo by Dimitry Anikin on Unsplash
This talk
What is needed to move to decoupled
Not all the answers
(Hopefully) most of the questions
High-speed walkthrough of the aspects
we’re considering.
Slides will be published on my website.
Photo by Jules Bss on Unsplash
Open Social
Online Community Software
Built on top of Drupal
Customers a.o.
• Greenpeace
• United Nations
Development Program
• Victim Support Netherlands
€1.25 million investment
Peak Capital & Nimbus Ventures
Expand our team
Front-end/Back-end development
Design
Sales
Innovate (Decoupled, Infrastructure, Drupal 9)
getopensocial.com/jobs
Why decouple Open Social?
Built on Drupal
Existing skills (previously a Drupal agency)
Great for Content Management! (CMS/CMF)
Focused around pages
Page based navigation
Can be very disruptive
Users expect smoother experiences
Conditioned by Facebook, Twitter, etc.
Something like refreshless helps,
but only gets us so far.
Photo by Brandi Redd on Unsplash
Live Video Real-Time
Chat
Transcript with
Discussion
Refreshless
Navigation
How to decouple?
https://dri.es/how-to-decouple-drupal-in-2019
A completely new front-end
Re-evaluate current front-end choices:
What browsers do we support?
What tools will we use?
How do we deal with dynamic content?
How do we exchange data?
Photo by Matthew T Rader on Unsplash
Browser Support and
JavaScript
Drop Internet Explorer 11
IE11 support
missing modern features
required engineering time vs usage
Microsoft recommends it
Use Edge
Compatibility mode for legacy applications
Check out https://www.swyx.io/writing/ie11-eol/
Clients demand IE 11?
Treat as Enterprise project (to offset $)
Use an existing Drupal theme
Understand why clients want it
Try to convince them otherwise
JavaScript (anonymous users)
All content should be reachable
without JavaScript
Be friendly to automated tools
Search Engines
Sharing on external sources
Anonymous content can be statically pre-generated
Photo by Joe on Unsplash
JavaScript (authenticated)
Content based on complex access rules
Push personalisation to the browser
Accept reduced experience for
minority with JavaScript disabled
No compromise on accessibility
e.g. focus handling and keyboard support
Photo by mauro paillex on Unsplash
Front-end library
We chose React
Components + Composition fits our current design process
Data in + declarative output is easy to reason about
Familiar with the ecosystem
Shouldn’t cause more difficulty in hiring
Knowledge can transfer to mobile in the future
Something else (Vue, Svelte, etc.) would probably get you there
too. React works for us.
Front-end language
options
It’s all JavaScript
JavaScript
Flow
TypeScript
ReasonML
We chose ReasonML
Doesn’t try to improve JavaScript, but replaces it
Avoids shortcuts possible on TypeScript and Flow
React is a first-class citizen
Full comparison: https://www.alexandervarwijk.com/blog/
2020-01-13-a-comparison-of-javascript-typesystems/
Back-end for the front-end
DIY can be tempting
The basics are not that difficult
Optimisations become difficult
Tooling needs to be built too
Don’t ignore years of work by larger teams
Photo by SpaceX on Unsplash
GatsbyJS
Pages generated at build time
Great for static websites
Scales well on a CDN
Runs my personal website
Next.JS
Flexibility to decide static vs dynamic
Recently introduced
run-time regeneration
Seems to be de-facto standard for anything slightly dynamic
Exposing data to
the front-end
GraphQL vs JSON:API
Either can work
Drupal (core) chose JSON:API
Drupal (contrib) for GraphQL is very active
We’ve chosen GraphQL
Front-end innovation and development leans that way
Integrates nicely with React
Many tools available
Moves the development burden to the back-end
Know how(?)
Your A-Team
Use of different technologies
JavaScript + Vue/React
vs PHP + Drupal + Twig
Clearly designed APIs
Assess available knowledge
Re-train existing team-members
Hire new team-members
Find consultants to help fill gaps
Assess time available Photo by Matteo Vistocco on Unsplash
Rolling out the new
front-end
Build it all then ship
Avoids the need for intermediate
solutions
Reaching feature parity will take long
Prevents utilising decoupled
techniques for new features
Photo by Sergey Pesterev on Unsplash
Decouple in steps
Build shared components first
(e.g. header/footer)
Replace features by url/path
Use Weighted Shortest Job First (WSJF),
score based on (estimated)
user benefit, technical necessity, cost to build, cost of delay
Requires fallback for unconverted pages
Still has minimum requirements (e.g. theming, i18n, etc.)
Photo by Kelly Sikkema on Unsplash
“Open” in Open Social
Open Source
Open Social
Open Source core
Grown thanks to the community
We wish to stay faithful to
the Open Source community
Photo by Perry Grone on Unsplash
Drupal’s model
Built around modules
Pay for external services
Premium modules are uncommon but not unprecedented
(e.g. previously Drupal Gardens)
In case of Open Social SaaS
Pay for our expertise on customisation, hosting and updates
Pay to get access to extensions not available for free
JavaScript’s model
End-product usually closed source
(e.g. no ready to go distribution like in Drupal)
Libraries and tools made open source
e.g. React and Next.js
Revenue generated from end-product or hosting
e.g. Netlify, Gatsby cloud, Vercel (previously Zeit)
Open Social’s (possible) model
Disclaimer: still under debate, open to feedback
Core Drupal modules and distribution remains open source
Move to API first
Bring themes to separate project
Open source front-end components and design system
Proprietary front-end application but contributing to tools used
Keep the community updated
Drupal Slack #opensocial
Drupal issue queue
drupal.org/project/issues/social
Read our blog getopensocial.com
Photo by AbsolutVision on Unsplash
Thanks!
Me @ alexandervarwijk.com
Open Social @ getopensocial.com

More Related Content

What's hot

Designing a P2PU School of Webcraft Challenge
Designing a P2PU School of Webcraft ChallengeDesigning a P2PU School of Webcraft Challenge
Designing a P2PU School of Webcraft Challenge
Jane Park
 
Are eLearning Tools Ready For The Mobile Revolution?
Are eLearning Tools Ready For The Mobile Revolution?Are eLearning Tools Ready For The Mobile Revolution?
Are eLearning Tools Ready For The Mobile Revolution?
Helmut Doll
 
Simple Project Management
Simple Project ManagementSimple Project Management
Simple Project Management
Jesse Rodgers
 
TwinSpace workshop for Dubrovnik
TwinSpace workshop for DubrovnikTwinSpace workshop for Dubrovnik
TwinSpace workshop for Dubrovnik
Lidija Kralj
 
Zitec - 13mai2011
Zitec - 13mai2011Zitec - 13mai2011
Zitec - 13mai2011
Agora Group
 
Making Moodle multi device friendly with bootstrap - Bas brands
Making Moodle multi device friendly with bootstrap - Bas brandsMaking Moodle multi device friendly with bootstrap - Bas brands
Making Moodle multi device friendly with bootstrap - Bas brands
Ireland & UK Moodlemoot 2012
 
Game and apps onboarding portal
Game and apps onboarding portalGame and apps onboarding portal
Game and apps onboarding portal
Christoph Mueller
 
Karma Code Less Teach More
Karma Code Less Teach MoreKarma Code Less Teach More
Karma Code Less Teach More
Bryan Berry
 
Learn, Code, and Teach Model
Learn, Code, and Teach ModelLearn, Code, and Teach Model
Learn, Code, and Teach Model
Yahmis Yahaya
 

What's hot (9)

Designing a P2PU School of Webcraft Challenge
Designing a P2PU School of Webcraft ChallengeDesigning a P2PU School of Webcraft Challenge
Designing a P2PU School of Webcraft Challenge
 
Are eLearning Tools Ready For The Mobile Revolution?
Are eLearning Tools Ready For The Mobile Revolution?Are eLearning Tools Ready For The Mobile Revolution?
Are eLearning Tools Ready For The Mobile Revolution?
 
Simple Project Management
Simple Project ManagementSimple Project Management
Simple Project Management
 
TwinSpace workshop for Dubrovnik
TwinSpace workshop for DubrovnikTwinSpace workshop for Dubrovnik
TwinSpace workshop for Dubrovnik
 
Zitec - 13mai2011
Zitec - 13mai2011Zitec - 13mai2011
Zitec - 13mai2011
 
Making Moodle multi device friendly with bootstrap - Bas brands
Making Moodle multi device friendly with bootstrap - Bas brandsMaking Moodle multi device friendly with bootstrap - Bas brands
Making Moodle multi device friendly with bootstrap - Bas brands
 
Game and apps onboarding portal
Game and apps onboarding portalGame and apps onboarding portal
Game and apps onboarding portal
 
Karma Code Less Teach More
Karma Code Less Teach MoreKarma Code Less Teach More
Karma Code Less Teach More
 
Learn, Code, and Teach Model
Learn, Code, and Teach ModelLearn, Code, and Teach Model
Learn, Code, and Teach Model
 

Similar to On our way to headless - A transition in progress

Designing Powerful Web Applications Using AJAX and Other RIAs
Designing Powerful Web Applications Using AJAX and Other RIAsDesigning Powerful Web Applications Using AJAX and Other RIAs
Designing Powerful Web Applications Using AJAX and Other RIAs
Dave Malouf
 
Developing For The Web
Developing For The WebDeveloping For The Web
Developing For The Web
aleemb
 
Designing Powerful Web Applications - Monterey
Designing Powerful Web Applications - MontereyDesigning Powerful Web Applications - Monterey
Designing Powerful Web Applications - Monterey
Dave Malouf
 
USG Web Tech Day 2017 - CMS Tunnel Vision
USG Web Tech Day 2017 - CMS Tunnel VisionUSG Web Tech Day 2017 - CMS Tunnel Vision
USG Web Tech Day 2017 - CMS Tunnel Vision
Eric Sembrat
 
Between a SPA and a JAMstack: Building Web Sites with Nuxt/Vue, Strapi and wh...
Between a SPA and a JAMstack: Building Web Sites with Nuxt/Vue, Strapi and wh...Between a SPA and a JAMstack: Building Web Sites with Nuxt/Vue, Strapi and wh...
Between a SPA and a JAMstack: Building Web Sites with Nuxt/Vue, Strapi and wh...
Adam Khan
 
Going Mobile First With Drupal
Going Mobile First With DrupalGoing Mobile First With Drupal
Going Mobile First With Drupal
Jesper Wøldiche
 
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
Bill Scott
 
Build a better(reactive) word press
Build a better(reactive) word pressBuild a better(reactive) word press
Build a better(reactive) word press
Bhushan Jawle
 
DrupalCon Chicago 2011 ReportBack (11/03/30 - G. Bedford)
DrupalCon Chicago 2011 ReportBack (11/03/30 - G. Bedford)DrupalCon Chicago 2011 ReportBack (11/03/30 - G. Bedford)
DrupalCon Chicago 2011 ReportBack (11/03/30 - G. Bedford)
DrupalCape
 
Startup Institute NYC: Styling
Startup Institute NYC: StylingStartup Institute NYC: Styling
Startup Institute NYC: Styling
Matthew Gerrior
 
From Website To Webapp Shane Morris
From Website To Webapp   Shane MorrisFrom Website To Webapp   Shane Morris
From Website To Webapp Shane Morris
Shane Morris
 
Dean4j@Njug5
Dean4j@Njug5Dean4j@Njug5
Postmodern Web Apps
Postmodern Web AppsPostmodern Web Apps
Postmodern Web Apps
malteubl
 
January 2017 - WPCampus Online - Learning from Drupal: Implementing WordPress...
January 2017 - WPCampus Online - Learning from Drupal: Implementing WordPress...January 2017 - WPCampus Online - Learning from Drupal: Implementing WordPress...
January 2017 - WPCampus Online - Learning from Drupal: Implementing WordPress...
Eric Sembrat
 
Kicking Up the Dust with Node JS
Kicking Up the Dust with Node JSKicking Up the Dust with Node JS
Kicking Up the Dust with Node JS
Bill Scott
 
Techniques For A Modern Web UI (With Notes)
Techniques For A Modern Web UI (With Notes)Techniques For A Modern Web UI (With Notes)
Techniques For A Modern Web UI (With Notes)
patrick.t.joyce
 
Trends in Technology
Trends in TechnologyTrends in Technology
Trends in Technology
Dhananjay Nene
 
SharePoint Conference North America - Converting your JavaScript to SPFX
SharePoint Conference North America - Converting your JavaScript to SPFXSharePoint Conference North America - Converting your JavaScript to SPFX
SharePoint Conference North America - Converting your JavaScript to SPFX
Mark Rackley
 
Lotus Framework
Lotus FrameworkLotus Framework
Lotus Framework
Todi Adiyatmo
 
Web Project Management
Web Project ManagementWeb Project Management
Web Project Management
Jesse Rodgers
 

Similar to On our way to headless - A transition in progress (20)

Designing Powerful Web Applications Using AJAX and Other RIAs
Designing Powerful Web Applications Using AJAX and Other RIAsDesigning Powerful Web Applications Using AJAX and Other RIAs
Designing Powerful Web Applications Using AJAX and Other RIAs
 
Developing For The Web
Developing For The WebDeveloping For The Web
Developing For The Web
 
Designing Powerful Web Applications - Monterey
Designing Powerful Web Applications - MontereyDesigning Powerful Web Applications - Monterey
Designing Powerful Web Applications - Monterey
 
USG Web Tech Day 2017 - CMS Tunnel Vision
USG Web Tech Day 2017 - CMS Tunnel VisionUSG Web Tech Day 2017 - CMS Tunnel Vision
USG Web Tech Day 2017 - CMS Tunnel Vision
 
Between a SPA and a JAMstack: Building Web Sites with Nuxt/Vue, Strapi and wh...
Between a SPA and a JAMstack: Building Web Sites with Nuxt/Vue, Strapi and wh...Between a SPA and a JAMstack: Building Web Sites with Nuxt/Vue, Strapi and wh...
Between a SPA and a JAMstack: Building Web Sites with Nuxt/Vue, Strapi and wh...
 
Going Mobile First With Drupal
Going Mobile First With DrupalGoing Mobile First With Drupal
Going Mobile First With Drupal
 
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
 
Build a better(reactive) word press
Build a better(reactive) word pressBuild a better(reactive) word press
Build a better(reactive) word press
 
DrupalCon Chicago 2011 ReportBack (11/03/30 - G. Bedford)
DrupalCon Chicago 2011 ReportBack (11/03/30 - G. Bedford)DrupalCon Chicago 2011 ReportBack (11/03/30 - G. Bedford)
DrupalCon Chicago 2011 ReportBack (11/03/30 - G. Bedford)
 
Startup Institute NYC: Styling
Startup Institute NYC: StylingStartup Institute NYC: Styling
Startup Institute NYC: Styling
 
From Website To Webapp Shane Morris
From Website To Webapp   Shane MorrisFrom Website To Webapp   Shane Morris
From Website To Webapp Shane Morris
 
Dean4j@Njug5
Dean4j@Njug5Dean4j@Njug5
Dean4j@Njug5
 
Postmodern Web Apps
Postmodern Web AppsPostmodern Web Apps
Postmodern Web Apps
 
January 2017 - WPCampus Online - Learning from Drupal: Implementing WordPress...
January 2017 - WPCampus Online - Learning from Drupal: Implementing WordPress...January 2017 - WPCampus Online - Learning from Drupal: Implementing WordPress...
January 2017 - WPCampus Online - Learning from Drupal: Implementing WordPress...
 
Kicking Up the Dust with Node JS
Kicking Up the Dust with Node JSKicking Up the Dust with Node JS
Kicking Up the Dust with Node JS
 
Techniques For A Modern Web UI (With Notes)
Techniques For A Modern Web UI (With Notes)Techniques For A Modern Web UI (With Notes)
Techniques For A Modern Web UI (With Notes)
 
Trends in Technology
Trends in TechnologyTrends in Technology
Trends in Technology
 
SharePoint Conference North America - Converting your JavaScript to SPFX
SharePoint Conference North America - Converting your JavaScript to SPFXSharePoint Conference North America - Converting your JavaScript to SPFX
SharePoint Conference North America - Converting your JavaScript to SPFX
 
Lotus Framework
Lotus FrameworkLotus Framework
Lotus Framework
 
Web Project Management
Web Project ManagementWeb Project Management
Web Project Management
 

Recently uploaded

Presentatie 8. Joost van der Linde & Daniel Anderton - Eliq 28 mei 2024
Presentatie 8. Joost van der Linde & Daniel Anderton - Eliq 28 mei 2024Presentatie 8. Joost van der Linde & Daniel Anderton - Eliq 28 mei 2024
Presentatie 8. Joost van der Linde & Daniel Anderton - Eliq 28 mei 2024
Dutch Power
 
Tom tresser burning issue.pptx My Burning issue
Tom tresser burning issue.pptx My Burning issueTom tresser burning issue.pptx My Burning issue
Tom tresser burning issue.pptx My Burning issue
amekonnen
 
Collapsing Narratives: Exploring Non-Linearity • a micro report by Rosie Wells
Collapsing Narratives: Exploring Non-Linearity • a micro report by Rosie WellsCollapsing Narratives: Exploring Non-Linearity • a micro report by Rosie Wells
Collapsing Narratives: Exploring Non-Linearity • a micro report by Rosie Wells
Rosie Wells
 
Gregory Harris' Civics Presentation.pptx
Gregory Harris' Civics Presentation.pptxGregory Harris' Civics Presentation.pptx
Gregory Harris' Civics Presentation.pptx
gharris9
 
Mẫu PPT kế hoạch làm việc sáng tạo cho nửa cuối năm PowerPoint
Mẫu PPT kế hoạch làm việc sáng tạo cho nửa cuối năm PowerPointMẫu PPT kế hoạch làm việc sáng tạo cho nửa cuối năm PowerPoint
Mẫu PPT kế hoạch làm việc sáng tạo cho nửa cuối năm PowerPoint
1990 Media
 
ASONAM2023_presection_slide_track-recommendation.pdf
ASONAM2023_presection_slide_track-recommendation.pdfASONAM2023_presection_slide_track-recommendation.pdf
ASONAM2023_presection_slide_track-recommendation.pdf
ToshihiroIto4
 
2024-05-30_meetup_devops_aix-marseille.pdf
2024-05-30_meetup_devops_aix-marseille.pdf2024-05-30_meetup_devops_aix-marseille.pdf
2024-05-30_meetup_devops_aix-marseille.pdf
Frederic Leger
 
Competition and Regulation in Professions and Occupations – OECD – June 2024 ...
Competition and Regulation in Professions and Occupations – OECD – June 2024 ...Competition and Regulation in Professions and Occupations – OECD – June 2024 ...
Competition and Regulation in Professions and Occupations – OECD – June 2024 ...
OECD Directorate for Financial and Enterprise Affairs
 
Competition and Regulation in Professions and Occupations – ROBSON – June 202...
Competition and Regulation in Professions and Occupations – ROBSON – June 202...Competition and Regulation in Professions and Occupations – ROBSON – June 202...
Competition and Regulation in Professions and Occupations – ROBSON – June 202...
OECD Directorate for Financial and Enterprise Affairs
 
Carrer goals.pptx and their importance in real life
Carrer goals.pptx  and their importance in real lifeCarrer goals.pptx  and their importance in real life
Carrer goals.pptx and their importance in real life
artemacademy2
 
Gregory Harris - Cycle 2 - Civics Presentation
Gregory Harris - Cycle 2 - Civics PresentationGregory Harris - Cycle 2 - Civics Presentation
Gregory Harris - Cycle 2 - Civics Presentation
gharris9
 
Artificial Intelligence, Data and Competition – LIM – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – LIM – June 2024 OECD discussionArtificial Intelligence, Data and Competition – LIM – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – LIM – June 2024 OECD discussion
OECD Directorate for Financial and Enterprise Affairs
 
原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样
原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样
原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样
gpww3sf4
 
Presentatie 4. Jochen Cremer - TU Delft 28 mei 2024
Presentatie 4. Jochen Cremer - TU Delft 28 mei 2024Presentatie 4. Jochen Cremer - TU Delft 28 mei 2024
Presentatie 4. Jochen Cremer - TU Delft 28 mei 2024
Dutch Power
 
Pro-competitive Industrial Policy – OECD – June 2024 OECD discussion
Pro-competitive Industrial Policy – OECD – June 2024 OECD discussionPro-competitive Industrial Policy – OECD – June 2024 OECD discussion
Pro-competitive Industrial Policy – OECD – June 2024 OECD discussion
OECD Directorate for Financial and Enterprise Affairs
 
Artificial Intelligence, Data and Competition – ČORBA – June 2024 OECD discus...
Artificial Intelligence, Data and Competition – ČORBA – June 2024 OECD discus...Artificial Intelligence, Data and Competition – ČORBA – June 2024 OECD discus...
Artificial Intelligence, Data and Competition – ČORBA – June 2024 OECD discus...
OECD Directorate for Financial and Enterprise Affairs
 
Suzanne Lagerweij - Influence Without Power - Why Empathy is Your Best Friend...
Suzanne Lagerweij - Influence Without Power - Why Empathy is Your Best Friend...Suzanne Lagerweij - Influence Without Power - Why Empathy is Your Best Friend...
Suzanne Lagerweij - Influence Without Power - Why Empathy is Your Best Friend...
Suzanne Lagerweij
 
Mastering the Concepts Tested in the Databricks Certified Data Engineer Assoc...
Mastering the Concepts Tested in the Databricks Certified Data Engineer Assoc...Mastering the Concepts Tested in the Databricks Certified Data Engineer Assoc...
Mastering the Concepts Tested in the Databricks Certified Data Engineer Assoc...
SkillCertProExams
 
Updated diagnosis. Cause and treatment of hypothyroidism
Updated diagnosis. Cause and treatment of hypothyroidismUpdated diagnosis. Cause and treatment of hypothyroidism
Updated diagnosis. Cause and treatment of hypothyroidism
Faculty of Medicine And Health Sciences
 
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
OECD Directorate for Financial and Enterprise Affairs
 

Recently uploaded (20)

Presentatie 8. Joost van der Linde & Daniel Anderton - Eliq 28 mei 2024
Presentatie 8. Joost van der Linde & Daniel Anderton - Eliq 28 mei 2024Presentatie 8. Joost van der Linde & Daniel Anderton - Eliq 28 mei 2024
Presentatie 8. Joost van der Linde & Daniel Anderton - Eliq 28 mei 2024
 
Tom tresser burning issue.pptx My Burning issue
Tom tresser burning issue.pptx My Burning issueTom tresser burning issue.pptx My Burning issue
Tom tresser burning issue.pptx My Burning issue
 
Collapsing Narratives: Exploring Non-Linearity • a micro report by Rosie Wells
Collapsing Narratives: Exploring Non-Linearity • a micro report by Rosie WellsCollapsing Narratives: Exploring Non-Linearity • a micro report by Rosie Wells
Collapsing Narratives: Exploring Non-Linearity • a micro report by Rosie Wells
 
Gregory Harris' Civics Presentation.pptx
Gregory Harris' Civics Presentation.pptxGregory Harris' Civics Presentation.pptx
Gregory Harris' Civics Presentation.pptx
 
Mẫu PPT kế hoạch làm việc sáng tạo cho nửa cuối năm PowerPoint
Mẫu PPT kế hoạch làm việc sáng tạo cho nửa cuối năm PowerPointMẫu PPT kế hoạch làm việc sáng tạo cho nửa cuối năm PowerPoint
Mẫu PPT kế hoạch làm việc sáng tạo cho nửa cuối năm PowerPoint
 
ASONAM2023_presection_slide_track-recommendation.pdf
ASONAM2023_presection_slide_track-recommendation.pdfASONAM2023_presection_slide_track-recommendation.pdf
ASONAM2023_presection_slide_track-recommendation.pdf
 
2024-05-30_meetup_devops_aix-marseille.pdf
2024-05-30_meetup_devops_aix-marseille.pdf2024-05-30_meetup_devops_aix-marseille.pdf
2024-05-30_meetup_devops_aix-marseille.pdf
 
Competition and Regulation in Professions and Occupations – OECD – June 2024 ...
Competition and Regulation in Professions and Occupations – OECD – June 2024 ...Competition and Regulation in Professions and Occupations – OECD – June 2024 ...
Competition and Regulation in Professions and Occupations – OECD – June 2024 ...
 
Competition and Regulation in Professions and Occupations – ROBSON – June 202...
Competition and Regulation in Professions and Occupations – ROBSON – June 202...Competition and Regulation in Professions and Occupations – ROBSON – June 202...
Competition and Regulation in Professions and Occupations – ROBSON – June 202...
 
Carrer goals.pptx and their importance in real life
Carrer goals.pptx  and their importance in real lifeCarrer goals.pptx  and their importance in real life
Carrer goals.pptx and their importance in real life
 
Gregory Harris - Cycle 2 - Civics Presentation
Gregory Harris - Cycle 2 - Civics PresentationGregory Harris - Cycle 2 - Civics Presentation
Gregory Harris - Cycle 2 - Civics Presentation
 
Artificial Intelligence, Data and Competition – LIM – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – LIM – June 2024 OECD discussionArtificial Intelligence, Data and Competition – LIM – June 2024 OECD discussion
Artificial Intelligence, Data and Competition – LIM – June 2024 OECD discussion
 
原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样
原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样
原版制作贝德福特大学毕业证(bedfordhire毕业证)硕士文凭原版一模一样
 
Presentatie 4. Jochen Cremer - TU Delft 28 mei 2024
Presentatie 4. Jochen Cremer - TU Delft 28 mei 2024Presentatie 4. Jochen Cremer - TU Delft 28 mei 2024
Presentatie 4. Jochen Cremer - TU Delft 28 mei 2024
 
Pro-competitive Industrial Policy – OECD – June 2024 OECD discussion
Pro-competitive Industrial Policy – OECD – June 2024 OECD discussionPro-competitive Industrial Policy – OECD – June 2024 OECD discussion
Pro-competitive Industrial Policy – OECD – June 2024 OECD discussion
 
Artificial Intelligence, Data and Competition – ČORBA – June 2024 OECD discus...
Artificial Intelligence, Data and Competition – ČORBA – June 2024 OECD discus...Artificial Intelligence, Data and Competition – ČORBA – June 2024 OECD discus...
Artificial Intelligence, Data and Competition – ČORBA – June 2024 OECD discus...
 
Suzanne Lagerweij - Influence Without Power - Why Empathy is Your Best Friend...
Suzanne Lagerweij - Influence Without Power - Why Empathy is Your Best Friend...Suzanne Lagerweij - Influence Without Power - Why Empathy is Your Best Friend...
Suzanne Lagerweij - Influence Without Power - Why Empathy is Your Best Friend...
 
Mastering the Concepts Tested in the Databricks Certified Data Engineer Assoc...
Mastering the Concepts Tested in the Databricks Certified Data Engineer Assoc...Mastering the Concepts Tested in the Databricks Certified Data Engineer Assoc...
Mastering the Concepts Tested in the Databricks Certified Data Engineer Assoc...
 
Updated diagnosis. Cause and treatment of hypothyroidism
Updated diagnosis. Cause and treatment of hypothyroidismUpdated diagnosis. Cause and treatment of hypothyroidism
Updated diagnosis. Cause and treatment of hypothyroidism
 
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
 

On our way to headless - A transition in progress

  • 1. Decoupled Days 2020 On our way to headless A transition in progress Photo by Dimitry Anikin on Unsplash
  • 2. This talk What is needed to move to decoupled Not all the answers (Hopefully) most of the questions High-speed walkthrough of the aspects we’re considering. Slides will be published on my website. Photo by Jules Bss on Unsplash
  • 3. Open Social Online Community Software Built on top of Drupal Customers a.o. • Greenpeace • United Nations Development Program • Victim Support Netherlands
  • 4. €1.25 million investment Peak Capital & Nimbus Ventures Expand our team Front-end/Back-end development Design Sales Innovate (Decoupled, Infrastructure, Drupal 9) getopensocial.com/jobs
  • 6. Built on Drupal Existing skills (previously a Drupal agency) Great for Content Management! (CMS/CMF) Focused around pages
  • 7.
  • 8. Page based navigation Can be very disruptive Users expect smoother experiences Conditioned by Facebook, Twitter, etc. Something like refreshless helps, but only gets us so far. Photo by Brandi Redd on Unsplash
  • 9. Live Video Real-Time Chat Transcript with Discussion Refreshless Navigation
  • 12. A completely new front-end Re-evaluate current front-end choices: What browsers do we support? What tools will we use? How do we deal with dynamic content? How do we exchange data? Photo by Matthew T Rader on Unsplash
  • 14. Drop Internet Explorer 11 IE11 support missing modern features required engineering time vs usage Microsoft recommends it Use Edge Compatibility mode for legacy applications Check out https://www.swyx.io/writing/ie11-eol/
  • 15. Clients demand IE 11? Treat as Enterprise project (to offset $) Use an existing Drupal theme Understand why clients want it Try to convince them otherwise
  • 16. JavaScript (anonymous users) All content should be reachable without JavaScript Be friendly to automated tools Search Engines Sharing on external sources Anonymous content can be statically pre-generated Photo by Joe on Unsplash
  • 17. JavaScript (authenticated) Content based on complex access rules Push personalisation to the browser Accept reduced experience for minority with JavaScript disabled No compromise on accessibility e.g. focus handling and keyboard support Photo by mauro paillex on Unsplash
  • 19. We chose React Components + Composition fits our current design process Data in + declarative output is easy to reason about Familiar with the ecosystem Shouldn’t cause more difficulty in hiring Knowledge can transfer to mobile in the future Something else (Vue, Svelte, etc.) would probably get you there too. React works for us.
  • 22. We chose ReasonML Doesn’t try to improve JavaScript, but replaces it Avoids shortcuts possible on TypeScript and Flow React is a first-class citizen Full comparison: https://www.alexandervarwijk.com/blog/ 2020-01-13-a-comparison-of-javascript-typesystems/
  • 23. Back-end for the front-end
  • 24. DIY can be tempting The basics are not that difficult Optimisations become difficult Tooling needs to be built too Don’t ignore years of work by larger teams Photo by SpaceX on Unsplash
  • 25. GatsbyJS Pages generated at build time Great for static websites Scales well on a CDN Runs my personal website
  • 26. Next.JS Flexibility to decide static vs dynamic Recently introduced run-time regeneration Seems to be de-facto standard for anything slightly dynamic
  • 27. Exposing data to the front-end
  • 28. GraphQL vs JSON:API Either can work Drupal (core) chose JSON:API Drupal (contrib) for GraphQL is very active We’ve chosen GraphQL Front-end innovation and development leans that way Integrates nicely with React Many tools available Moves the development burden to the back-end
  • 30. Your A-Team Use of different technologies JavaScript + Vue/React vs PHP + Drupal + Twig Clearly designed APIs Assess available knowledge Re-train existing team-members Hire new team-members Find consultants to help fill gaps Assess time available Photo by Matteo Vistocco on Unsplash
  • 31. Rolling out the new front-end
  • 32. Build it all then ship Avoids the need for intermediate solutions Reaching feature parity will take long Prevents utilising decoupled techniques for new features Photo by Sergey Pesterev on Unsplash
  • 33. Decouple in steps Build shared components first (e.g. header/footer) Replace features by url/path Use Weighted Shortest Job First (WSJF), score based on (estimated) user benefit, technical necessity, cost to build, cost of delay Requires fallback for unconverted pages Still has minimum requirements (e.g. theming, i18n, etc.) Photo by Kelly Sikkema on Unsplash
  • 35. Open Source Open Social Open Source core Grown thanks to the community We wish to stay faithful to the Open Source community Photo by Perry Grone on Unsplash
  • 36. Drupal’s model Built around modules Pay for external services Premium modules are uncommon but not unprecedented (e.g. previously Drupal Gardens) In case of Open Social SaaS Pay for our expertise on customisation, hosting and updates Pay to get access to extensions not available for free
  • 37. JavaScript’s model End-product usually closed source (e.g. no ready to go distribution like in Drupal) Libraries and tools made open source e.g. React and Next.js Revenue generated from end-product or hosting e.g. Netlify, Gatsby cloud, Vercel (previously Zeit)
  • 38. Open Social’s (possible) model Disclaimer: still under debate, open to feedback Core Drupal modules and distribution remains open source Move to API first Bring themes to separate project Open source front-end components and design system Proprietary front-end application but contributing to tools used
  • 39. Keep the community updated Drupal Slack #opensocial Drupal issue queue drupal.org/project/issues/social Read our blog getopensocial.com Photo by AbsolutVision on Unsplash
  • 40. Thanks! Me @ alexandervarwijk.com Open Social @ getopensocial.com