SlideShare a Scribd company logo
1 of 42
Let's Take Drupal Offline!
Dick Olsson 
Twitter: @dickolsson 
Drupal.org: dixon_
Agenda 
1. How we think about users and connectivity 
2. What's an “offline” website? 
3. Reasons to design for offline 
4. Are we there yet? 
5. Where's Drupal 8?
1. How we think about users and 
connectivity 
Attribution: https://www.flickr.com/photos/kansirnet/
Users on latest technology and robust connection 
People are getting newer faster phones 
Connectivity will solve itself over time
Wrong!
Non-negotiable 
Geography (e.g. valleys, buildings) 
Transportation (e.g. trains, tube) 
Over-crowded places (e.g. DrupalCon) 
Attribution: https://www.flickr.com/photos/footfun/
“Once out of bed, Internet and apps are used almost 
constantly, peaking during the daily commute with 
around 70 percent usage” 
- Ericsson 
Traffic and Market Report, June 2012 
Attribution: https://www.flickr.com/photos/59949757@N06/
Offline is a part of normal life
2. What's an “offline” website?
“We live in a disconnected & battery powered world, 
but our technology and best practices are a leftover 
from the always connected & steadily powered past.” 
- offlinefirst.org
It's about putting the user first 
and not think about her position or connectivity 
as a state of error
Offline apps are not new, 
but the “offline-first” mantra is
Examples 
1. Download all pages in the main menu 
on first visit 
2. Download search results for popular queries 
on first visit, like php.net
3. Reasons to design for offline
Privacy 
Users controll their own data, literally 
Often no need to share preferences and personal data 
with the central database 
Decentralization is a good thing
Security 
Do you really need all the data everywhere? 
Minimizes the attack vector of your app
Performance 
We put things on CDNs to get closer to the user 
Put it in my pocket instead!
Robustness 
In the Tube? Or server maintenance? 
Your app doesn't care
So far 
1. How we think about users and connectivity 
2. What's an “offline” website? 
3. Reasons to design for offline
4. Are we there yet?
What's required? 
A. The app itself (e.g. html, css, js) 
B. Remote database (that syncs over HTTP) 
C. Local database (that syncs over HTTP) 
D. Runtime (e.g. web browser)
“Any application that can be written in JavaScript, will 
eventually be written in JavaScript” 
- Jeff Atwood 
“Atwood's Law”
A. The app itself 
Angular JS 
Ember JS 
React JS 
Hood.ie 
etc. etc...
B. Remote database 
CouchDB 
Remotestorage.io 
both standardizes synchronization over HTTP
C. Local database 
PouchDB (works with CouchDB) 
Hood.ie (works with CouchDB)
“At some point in time recently, the browser 
transformed from being an awesome interactive 
document viewer into being the world's most advanced 
and widely-distributed application runtime” 
- Tom Dale 
Progressive Enhancement is Dead
D. Runtime 
HTML5 
Appcache 
Service Workers
Appcache 
Cache manifest for assets (e.g. html, css, js, img etc)
Service Workers 
A background process that can act like a proxy 
between your app and databases (local and remote) 
Not yet good browser support
5. Where's Drupal 8 in all of this? 
Attribution: https://www.flickr.com/photos/adamnewulm/
“Headless Drupal” is a step in the right direction 
Attribution: https://www.flickr.com/photos/cgc76/
But “headless” misses the point 
We should use the same technologies to build for 
“offline-first” instead
Drupal 8 would be your remote DB
But the REST API in Drupal 8 core is missing 
Revisioning 
Synchronization 
File attachments
Relaxed Web Services 
http://drupal.org/project/relaxed 
Replication Web Service 
http://drupal.org/project/replication 
These modules implement the same 
HTTP and sync API as CouchDB
When we standardize the HTTP API 
the frontend app can use standard tools, such as 
PouchDB (works with CouchDB) 
Hood.ie (works with CouchDB)
Reimagining best practices and patterns 
will still be hard
Conclusions 
Offline is a non-negotiable part of normal life 
Don't treat offline as an error 
Privacy, security, performance, robustness 
Possible to build offline capable websites 
with Drupal 8
Resources 
http://offlinefirst.org 
http://blog.hood.ie/2013/11/say-hello-to-offline-first 
http://alistapart.com/article/offline-first
Thanks! 
Questions? 
Twitter: @dickolsson 
Drupal.org: dixon_

More Related Content

What's hot

HTML5 Web Workers-unleashed
HTML5 Web Workers-unleashedHTML5 Web Workers-unleashed
HTML5 Web Workers-unleashedPeter Lubbers
 
Thinking in Components
Thinking in ComponentsThinking in Components
Thinking in ComponentsFITC
 
WebApp / SPA @ AllFacebook Developer Conference
WebApp / SPA @ AllFacebook Developer ConferenceWebApp / SPA @ AllFacebook Developer Conference
WebApp / SPA @ AllFacebook Developer ConferenceAllFacebook.de
 
Parse Apps with Ember.js
Parse Apps with Ember.jsParse Apps with Ember.js
Parse Apps with Ember.jsMatthew Beale
 
Put a little Backbone in your WordPress
Put a little Backbone in your WordPressPut a little Backbone in your WordPress
Put a little Backbone in your WordPressadamsilverstein
 
New Perspectives on Performance
New Perspectives on PerformanceNew Perspectives on Performance
New Perspectives on Performancemennovanslooten
 
An Introduction to webOS
An Introduction to webOSAn Introduction to webOS
An Introduction to webOSKevin Decker
 
Developing advanced universal apps using html & js
Developing advanced universal apps using html & jsDeveloping advanced universal apps using html & js
Developing advanced universal apps using html & jsSenthamil Selvan
 
SenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web Apps
SenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web AppsSenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web Apps
SenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web AppsSencha
 
Javascript Frameworks Comparison
Javascript Frameworks ComparisonJavascript Frameworks Comparison
Javascript Frameworks ComparisonDeepu S Nath
 
A Debugging Adventure: Journey through Ember.js Glue
A Debugging Adventure: Journey through Ember.js GlueA Debugging Adventure: Journey through Ember.js Glue
A Debugging Adventure: Journey through Ember.js GlueMike North
 
SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...
SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...
SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...Sencha
 
Untangling spring week4
Untangling spring week4Untangling spring week4
Untangling spring week4Derek Jacoby
 
Djangocon 09 Presentation - Pluggable Applications
Djangocon 09 Presentation - Pluggable ApplicationsDjangocon 09 Presentation - Pluggable Applications
Djangocon 09 Presentation - Pluggable ApplicationsNowell Strite
 
Put a little Backbone in your WordPress vs. 3
Put a little Backbone in your WordPress vs. 3Put a little Backbone in your WordPress vs. 3
Put a little Backbone in your WordPress vs. 3adamsilverstein
 
Everything You Need to Know About the Top Changes in Drupal 8
Everything You Need to Know About the Top Changes in Drupal 8Everything You Need to Know About the Top Changes in Drupal 8
Everything You Need to Know About the Top Changes in Drupal 8Acquia
 

What's hot (20)

HTML5 Web Workers-unleashed
HTML5 Web Workers-unleashedHTML5 Web Workers-unleashed
HTML5 Web Workers-unleashed
 
Thinking in Components
Thinking in ComponentsThinking in Components
Thinking in Components
 
WebApp / SPA @ AllFacebook Developer Conference
WebApp / SPA @ AllFacebook Developer ConferenceWebApp / SPA @ AllFacebook Developer Conference
WebApp / SPA @ AllFacebook Developer Conference
 
WebApp #3 : API
WebApp #3 : APIWebApp #3 : API
WebApp #3 : API
 
Parse Apps with Ember.js
Parse Apps with Ember.jsParse Apps with Ember.js
Parse Apps with Ember.js
 
Put a little Backbone in your WordPress
Put a little Backbone in your WordPressPut a little Backbone in your WordPress
Put a little Backbone in your WordPress
 
New Perspectives on Performance
New Perspectives on PerformanceNew Perspectives on Performance
New Perspectives on Performance
 
An Introduction to webOS
An Introduction to webOSAn Introduction to webOS
An Introduction to webOS
 
Developing advanced universal apps using html & js
Developing advanced universal apps using html & jsDeveloping advanced universal apps using html & js
Developing advanced universal apps using html & js
 
SenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web Apps
SenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web AppsSenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web Apps
SenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web Apps
 
Javascript Frameworks Comparison
Javascript Frameworks ComparisonJavascript Frameworks Comparison
Javascript Frameworks Comparison
 
Sfk13
Sfk13Sfk13
Sfk13
 
A Debugging Adventure: Journey through Ember.js Glue
A Debugging Adventure: Journey through Ember.js GlueA Debugging Adventure: Journey through Ember.js Glue
A Debugging Adventure: Journey through Ember.js Glue
 
SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...
SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...
SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...
 
You Know WebOS
You Know WebOSYou Know WebOS
You Know WebOS
 
Untangling spring week4
Untangling spring week4Untangling spring week4
Untangling spring week4
 
Djangocon 09 Presentation - Pluggable Applications
Djangocon 09 Presentation - Pluggable ApplicationsDjangocon 09 Presentation - Pluggable Applications
Djangocon 09 Presentation - Pluggable Applications
 
Put a little Backbone in your WordPress vs. 3
Put a little Backbone in your WordPress vs. 3Put a little Backbone in your WordPress vs. 3
Put a little Backbone in your WordPress vs. 3
 
Nuxtjs cheat-sheet
Nuxtjs cheat-sheetNuxtjs cheat-sheet
Nuxtjs cheat-sheet
 
Everything You Need to Know About the Top Changes in Drupal 8
Everything You Need to Know About the Top Changes in Drupal 8Everything You Need to Know About the Top Changes in Drupal 8
Everything You Need to Know About the Top Changes in Drupal 8
 

Viewers also liked

Offline & Online Scenario For An Interactive Adobe
Offline & Online Scenario For An Interactive AdobeOffline & Online Scenario For An Interactive Adobe
Offline & Online Scenario For An Interactive Adobestevecoupland
 
What Really Changed with Drupal 8
What Really Changed with Drupal 8What Really Changed with Drupal 8
What Really Changed with Drupal 8Dick Olsson
 
Nacho's Guide to Drupal+Angular
Nacho's Guide to Drupal+AngularNacho's Guide to Drupal+Angular
Nacho's Guide to Drupal+AngularJoe Tippetts
 
Offline Drupal with progressive web app
Offline Drupal with progressive web appOffline Drupal with progressive web app
Offline Drupal with progressive web appThéodore Biadala
 
Using deploy in drupal 8
Using deploy in drupal 8Using deploy in drupal 8
Using deploy in drupal 8timmillwood
 

Viewers also liked (6)

Offline & Online Scenario For An Interactive Adobe
Offline & Online Scenario For An Interactive AdobeOffline & Online Scenario For An Interactive Adobe
Offline & Online Scenario For An Interactive Adobe
 
What Really Changed with Drupal 8
What Really Changed with Drupal 8What Really Changed with Drupal 8
What Really Changed with Drupal 8
 
Nacho's Guide to Drupal+Angular
Nacho's Guide to Drupal+AngularNacho's Guide to Drupal+Angular
Nacho's Guide to Drupal+Angular
 
Offline Drupal with progressive web app
Offline Drupal with progressive web appOffline Drupal with progressive web app
Offline Drupal with progressive web app
 
Using deploy in drupal 8
Using deploy in drupal 8Using deploy in drupal 8
Using deploy in drupal 8
 
Progressive web apps
Progressive web appsProgressive web apps
Progressive web apps
 

Similar to Let's Take Drupal Offline!

Online productivity tools - SILS20090
Online productivity tools - SILS20090Online productivity tools - SILS20090
Online productivity tools - SILS20090is20090
 
Secret Performance Metric - Armada JS.pdf
Secret Performance Metric - Armada JS.pdfSecret Performance Metric - Armada JS.pdf
Secret Performance Metric - Armada JS.pdfAnna Migas
 
Cloud computing: how will it affect my everday work life?
Cloud computing: how will it affect my everday work life?Cloud computing: how will it affect my everday work life?
Cloud computing: how will it affect my everday work life?Kosie Eloff
 
Website and it's importance
Website and it's importanceWebsite and it's importance
Website and it's importanceRobinSingh347
 
Secret Web Performance Metric - DevDayBe
Secret Web Performance Metric - DevDayBeSecret Web Performance Metric - DevDayBe
Secret Web Performance Metric - DevDayBeAnna Migas
 
Crash Course in Open Source Cloud Computing
Crash Course in Open Source Cloud ComputingCrash Course in Open Source Cloud Computing
Crash Course in Open Source Cloud ComputingMark Hinkle
 
Over view of Technologies
Over view of TechnologiesOver view of Technologies
Over view of TechnologiesChris Mitchell
 
Couchbase Mobile Ideathon in Tokyo 2014.08.29: Developing with couchbase lite
Couchbase Mobile Ideathon in Tokyo 2014.08.29: Developing with couchbase lite Couchbase Mobile Ideathon in Tokyo 2014.08.29: Developing with couchbase lite
Couchbase Mobile Ideathon in Tokyo 2014.08.29: Developing with couchbase lite Keiko Ogura
 
Google Cloud Platform and Kubernetes
Google Cloud Platform and KubernetesGoogle Cloud Platform and Kubernetes
Google Cloud Platform and KubernetesKasper Nissen
 
14 technologies every web developer should be able to understand
14 technologies every web developer should be able to understand14 technologies every web developer should be able to understand
14 technologies every web developer should be able to understandUm e Farwa
 
IESL Talk Series: Apache System Projects in the Real World
IESL Talk Series: Apache System Projects in the Real WorldIESL Talk Series: Apache System Projects in the Real World
IESL Talk Series: Apache System Projects in the Real WorldSrinath Perera
 
2016 05 sanger
2016 05 sanger2016 05 sanger
2016 05 sangerChris Dwan
 
RTI Data-Distribution Service (DDS) Master Class 2011
RTI Data-Distribution Service (DDS) Master Class 2011RTI Data-Distribution Service (DDS) Master Class 2011
RTI Data-Distribution Service (DDS) Master Class 2011Gerardo Pardo-Castellote
 
Build Mobile Applications with Headless Drupal 8 - DrupalConAsia 2016
Build Mobile Applications with Headless Drupal 8 - DrupalConAsia 2016Build Mobile Applications with Headless Drupal 8 - DrupalConAsia 2016
Build Mobile Applications with Headless Drupal 8 - DrupalConAsia 2016Prateek Jain
 
Cloud Computing
Cloud Computing Cloud Computing
Cloud Computing NASIMTAHIR2
 
Network media presentation
Network media presentationNetwork media presentation
Network media presentationssatchell
 
Network media presentation
Network media presentationNetwork media presentation
Network media presentationssatchell
 
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
 

Similar to Let's Take Drupal Offline! (20)

Online productivity tools - SILS20090
Online productivity tools - SILS20090Online productivity tools - SILS20090
Online productivity tools - SILS20090
 
Secret Performance Metric - Armada JS.pdf
Secret Performance Metric - Armada JS.pdfSecret Performance Metric - Armada JS.pdf
Secret Performance Metric - Armada JS.pdf
 
Cloud computing: how will it affect my everday work life?
Cloud computing: how will it affect my everday work life?Cloud computing: how will it affect my everday work life?
Cloud computing: how will it affect my everday work life?
 
Website and it's importance
Website and it's importanceWebsite and it's importance
Website and it's importance
 
Secret Web Performance Metric - DevDayBe
Secret Web Performance Metric - DevDayBeSecret Web Performance Metric - DevDayBe
Secret Web Performance Metric - DevDayBe
 
Crash Course in Open Source Cloud Computing
Crash Course in Open Source Cloud ComputingCrash Course in Open Source Cloud Computing
Crash Course in Open Source Cloud Computing
 
Over view of Technologies
Over view of TechnologiesOver view of Technologies
Over view of Technologies
 
Couchbase Mobile Ideathon in Tokyo 2014.08.29: Developing with couchbase lite
Couchbase Mobile Ideathon in Tokyo 2014.08.29: Developing with couchbase lite Couchbase Mobile Ideathon in Tokyo 2014.08.29: Developing with couchbase lite
Couchbase Mobile Ideathon in Tokyo 2014.08.29: Developing with couchbase lite
 
Google Cloud Platform and Kubernetes
Google Cloud Platform and KubernetesGoogle Cloud Platform and Kubernetes
Google Cloud Platform and Kubernetes
 
14 technologies every web developer should be able to understand
14 technologies every web developer should be able to understand14 technologies every web developer should be able to understand
14 technologies every web developer should be able to understand
 
cloud computing
cloud computingcloud computing
cloud computing
 
IESL Talk Series: Apache System Projects in the Real World
IESL Talk Series: Apache System Projects in the Real WorldIESL Talk Series: Apache System Projects in the Real World
IESL Talk Series: Apache System Projects in the Real World
 
2016 05 sanger
2016 05 sanger2016 05 sanger
2016 05 sanger
 
A Mobile Solution for #TheUnderdog
A Mobile Solution for #TheUnderdogA Mobile Solution for #TheUnderdog
A Mobile Solution for #TheUnderdog
 
RTI Data-Distribution Service (DDS) Master Class 2011
RTI Data-Distribution Service (DDS) Master Class 2011RTI Data-Distribution Service (DDS) Master Class 2011
RTI Data-Distribution Service (DDS) Master Class 2011
 
Build Mobile Applications with Headless Drupal 8 - DrupalConAsia 2016
Build Mobile Applications with Headless Drupal 8 - DrupalConAsia 2016Build Mobile Applications with Headless Drupal 8 - DrupalConAsia 2016
Build Mobile Applications with Headless Drupal 8 - DrupalConAsia 2016
 
Cloud Computing
Cloud Computing Cloud Computing
Cloud Computing
 
Network media presentation
Network media presentationNetwork media presentation
Network media presentation
 
Network media presentation
Network media presentationNetwork media presentation
Network media presentation
 
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)
 

More from Dick Olsson

Workflow Initiative Update
Workflow Initiative UpdateWorkflow Initiative Update
Workflow Initiative UpdateDick Olsson
 
Multisite Content Deployments for Media Organizations
Multisite Content Deployments for Media OrganizationsMultisite Content Deployments for Media Organizations
Multisite Content Deployments for Media OrganizationsDick Olsson
 
We need revisions and CRAP everywhere in Drupal core
We need revisions and CRAP everywhere in Drupal coreWe need revisions and CRAP everywhere in Drupal core
We need revisions and CRAP everywhere in Drupal coreDick Olsson
 
Content Staging in Drupal Core
Content Staging in Drupal CoreContent Staging in Drupal Core
Content Staging in Drupal CoreDick Olsson
 
How to Build a Scalable Platform for Today's Publishers
How to Build a Scalable Platform for Today's PublishersHow to Build a Scalable Platform for Today's Publishers
How to Build a Scalable Platform for Today's PublishersDick Olsson
 
Drupal distributions - how to build them
Drupal distributions - how to build themDrupal distributions - how to build them
Drupal distributions - how to build themDick Olsson
 

More from Dick Olsson (6)

Workflow Initiative Update
Workflow Initiative UpdateWorkflow Initiative Update
Workflow Initiative Update
 
Multisite Content Deployments for Media Organizations
Multisite Content Deployments for Media OrganizationsMultisite Content Deployments for Media Organizations
Multisite Content Deployments for Media Organizations
 
We need revisions and CRAP everywhere in Drupal core
We need revisions and CRAP everywhere in Drupal coreWe need revisions and CRAP everywhere in Drupal core
We need revisions and CRAP everywhere in Drupal core
 
Content Staging in Drupal Core
Content Staging in Drupal CoreContent Staging in Drupal Core
Content Staging in Drupal Core
 
How to Build a Scalable Platform for Today's Publishers
How to Build a Scalable Platform for Today's PublishersHow to Build a Scalable Platform for Today's Publishers
How to Build a Scalable Platform for Today's Publishers
 
Drupal distributions - how to build them
Drupal distributions - how to build themDrupal distributions - how to build them
Drupal distributions - how to build them
 

Recently uploaded

2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 

Recently uploaded (20)

2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 

Let's Take Drupal Offline!

  • 1. Let's Take Drupal Offline!
  • 2. Dick Olsson Twitter: @dickolsson Drupal.org: dixon_
  • 3. Agenda 1. How we think about users and connectivity 2. What's an “offline” website? 3. Reasons to design for offline 4. Are we there yet? 5. Where's Drupal 8?
  • 4. 1. How we think about users and connectivity Attribution: https://www.flickr.com/photos/kansirnet/
  • 5. Users on latest technology and robust connection People are getting newer faster phones Connectivity will solve itself over time
  • 7. Non-negotiable Geography (e.g. valleys, buildings) Transportation (e.g. trains, tube) Over-crowded places (e.g. DrupalCon) Attribution: https://www.flickr.com/photos/footfun/
  • 8. “Once out of bed, Internet and apps are used almost constantly, peaking during the daily commute with around 70 percent usage” - Ericsson Traffic and Market Report, June 2012 Attribution: https://www.flickr.com/photos/59949757@N06/
  • 9. Offline is a part of normal life
  • 10. 2. What's an “offline” website?
  • 11. “We live in a disconnected & battery powered world, but our technology and best practices are a leftover from the always connected & steadily powered past.” - offlinefirst.org
  • 12. It's about putting the user first and not think about her position or connectivity as a state of error
  • 13.
  • 14. Offline apps are not new, but the “offline-first” mantra is
  • 15. Examples 1. Download all pages in the main menu on first visit 2. Download search results for popular queries on first visit, like php.net
  • 16. 3. Reasons to design for offline
  • 17. Privacy Users controll their own data, literally Often no need to share preferences and personal data with the central database Decentralization is a good thing
  • 18. Security Do you really need all the data everywhere? Minimizes the attack vector of your app
  • 19. Performance We put things on CDNs to get closer to the user Put it in my pocket instead!
  • 20. Robustness In the Tube? Or server maintenance? Your app doesn't care
  • 21. So far 1. How we think about users and connectivity 2. What's an “offline” website? 3. Reasons to design for offline
  • 22. 4. Are we there yet?
  • 23. What's required? A. The app itself (e.g. html, css, js) B. Remote database (that syncs over HTTP) C. Local database (that syncs over HTTP) D. Runtime (e.g. web browser)
  • 24. “Any application that can be written in JavaScript, will eventually be written in JavaScript” - Jeff Atwood “Atwood's Law”
  • 25. A. The app itself Angular JS Ember JS React JS Hood.ie etc. etc...
  • 26. B. Remote database CouchDB Remotestorage.io both standardizes synchronization over HTTP
  • 27. C. Local database PouchDB (works with CouchDB) Hood.ie (works with CouchDB)
  • 28. “At some point in time recently, the browser transformed from being an awesome interactive document viewer into being the world's most advanced and widely-distributed application runtime” - Tom Dale Progressive Enhancement is Dead
  • 29. D. Runtime HTML5 Appcache Service Workers
  • 30. Appcache Cache manifest for assets (e.g. html, css, js, img etc)
  • 31. Service Workers A background process that can act like a proxy between your app and databases (local and remote) Not yet good browser support
  • 32. 5. Where's Drupal 8 in all of this? Attribution: https://www.flickr.com/photos/adamnewulm/
  • 33. “Headless Drupal” is a step in the right direction Attribution: https://www.flickr.com/photos/cgc76/
  • 34. But “headless” misses the point We should use the same technologies to build for “offline-first” instead
  • 35. Drupal 8 would be your remote DB
  • 36. But the REST API in Drupal 8 core is missing Revisioning Synchronization File attachments
  • 37. Relaxed Web Services http://drupal.org/project/relaxed Replication Web Service http://drupal.org/project/replication These modules implement the same HTTP and sync API as CouchDB
  • 38. When we standardize the HTTP API the frontend app can use standard tools, such as PouchDB (works with CouchDB) Hood.ie (works with CouchDB)
  • 39. Reimagining best practices and patterns will still be hard
  • 40. Conclusions Offline is a non-negotiable part of normal life Don't treat offline as an error Privacy, security, performance, robustness Possible to build offline capable websites with Drupal 8
  • 42. Thanks! Questions? Twitter: @dickolsson Drupal.org: dixon_

Editor's Notes

  1. Emphazise WHY this is for the user - Ex: We can control cookies, why not the same with more granular data? - We need less of FB, Google and the like - Ex: User pref can be local and fetched anon
  2. php.net as an example
  3. The whole industry, not just the Drupal community,need to reimagine how we build things
  4. ASK how many know about “Headless”?