SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Mobile first, offline second, PWA for
eCommerce
Andreas Anding
Business Development
Consultant, Divante
Piotr Karwatka,
CTO, Divante
eCommerce
Software House
2
10 years on the market 100+ clients globally
150+ team members 300+projects delivered
3
The Agenda
1. eCommerce - what’s wrong with you?
2. Progressive Web Apps - what’s all about?
3. Vue Storefront - first open source PWA for
eCommerce
4. See it in action!
5. Architecture
6. Design Challenges
7. Key Concepts in practice
Vue Storefront is an open source (MIT) project
powered by cool, open source technologies:
eCommerce - what’s wrong with you?
5
eCommerce right now
not suited for mobile
not stable during peaks
not effecitve with poor internet
connection
long time2market
eCommerce right now
GAP
Technology Creators
(eg. AFGA)
Customers
Companies
(Retailers/Manufacturers)
Progressive Web Apps
8
Progressive Web Apps
Best features of Mobile App (UX) and Web (Distribution) combined
• Offline readiness
• Home Screen
• No Submission
• Linkable
• Re-engageable
Alibaba Case Study
• 76% higher conversions across browsers
• 14% more monthly active users on iOS; 30% on Android
ES2015/2016, IndexedDb
Service Workers
(check https://serviceworke.rs/ for recipes)
Techniques: PRPL, SSR
Reactive frameworks
(React, Vue, Polymer …)
Progressive Web Apps
Best features of Mobile App (UX) and Web (Distribution) combined
Supported by: Chrome, Samsung, Microsoft, Apple, Opera
(https://jakearchibald.github.io/isserviceworkerready/)
Vue Storefront
11
Bleeding edge, scalable technology
Node.js, Vue.js, Elastic
Blazing fast
It render at no time. Always.
100% offline, Black-Friday ready :)
Offline-ready, ultrafast PWA
Really fast and enjoyable development with
all standard eCommerce features out of the
box
Can be integrated with any eCommerce!
Key features
Mobile first and works like a native mobile
app
Painlessly upgradable core with new features
every month (as NPM package)
No architectural limitations (normal Vue.js app)
You need a Web, Mobile Web, iOS
App, Android App, Windows App, ..
eCommerce Websites are not stable
during peaks
Websites are not effecitve with poor
internet connection
Long time2market to develop Mobile
Apps and Mobile Web
Progressive Web Apps – Website that can
be installed as an App. Best features of
Mobile App (UX) and Web (Distribution)
combined
Storefront can be run without alive web-
server there is no such traffic peak that can
stop users from making orders
Offline readiness - app can be used off-line
Out-of-the Box Product, Based on Vue.js,
developer-friendly approach, good doc
Challenges Solution
Project status
All basic promotions, product types, catalog
features supported
18 local partners + 46 active contributors + 10
ongoing projects
Production ready and stable.
Magento 1.9 and Magento 2.x full support
… and one more thing
Open source and MIT license!
github.com/DivanteLtd/vue-storefront
@vuestorefront
See it in action!
See it in action!
github.com/DivanteLtd/vue-storefront@vuestorefront
… and one more thing
Let’s go to demo.vuestorefront.io
github.com/DivanteLtd/vue-storefront
@vuestorefront
Contribute!
- 1.5k stars on Github (top 10 vue.js
project)
- 300 developers on Slack
- 46 active contributors on Github
- 18 official partners
Architecture
How it works (simplified)
Vue Storefront API
Same for every platform
thanks to adapter
API Adapter
For each platform
(Magento 2 and Pimcore
integrations are ready)
eCommerce CMS
Magento, Shopify or any
other
Vue Storefront
Single Page App PWA
written in Vue.js
NoSQL DB
How it works (simplified)
Vue Storefront API
Same for every platform
thanks to adapter
API Adapter
For each platform
(Magento 2 and Pimcore
integrations are ready)
eCommerce CMS
Magento, Shopify or any
other
Vue Storefront
Single Page App PWA
written in Vue.js
NoSQL DB
Real-time sync based on product
updates
Frontend architecture
Vue Storefront Core
Contains all standard
eCommerce features, state
management, offline
capabilities and database
integration.
It’s upgradable as a NPM
package and extendable via
extensions. core
src
themes
extensions
Your playground!
Extensions
(e.g new payment
methods, mailchimp,
integration, Google
Analytics integration)
Theme
This is your shop! Developed
like a separate Vue.js
application that can make use
of VS core and extensions
24
Framework
Theming, extensions, re-usable components
• vue-storefront is meant to be a Framework
It’s divided to re-usable Vue components and Vuex data stores. It’s
designed to be updateable without modifying the Core.
• Theming
You can put your theme under /themes - which inherits (using Vue Mixins)
all the default components and pages
• Extensions
Extensions are registered in app.js - you can add your own features:
○ additional Vuex stores,
○ routes,
○ pages and components
• SSR & client side hydration
For better SEO results we’re using Server Side Rendering
(https://ssr.vuejs.org/en/) - basically it’s not a typical SPA application
• Webpack
We’re using it extensively: for Babel compiling (we’re ES2016 compliant),
sw-precache, code chunking, optimization, dev server ...
Design Challenges
26
Design Challenges
For the prototype we decided to design PWA for a fashion brand
• Here you have some free tips:
○ Ensure that the keyboard won’t cover the view of key elements of the app;
○ Use 2x size for the png images and SVG files to keep the design looking clear on all types of
screens;
○ Make touchable components like the buttons or links big enough;
○ Useless text links because they are harder to use on small screens;
○ Verify how does the application behave while changing the size with the rotation of the
device.
• Figma
We used Figma for its collaboration features to
create the Vue Storefront Design System
(designs are MIT licensed too), with grid,
mobile interactions
• UX Challenges
○ Payments while offline?
○ Stock quantities while offline?
○ Seamless experience on many devices,
○ Cart/dynamic promo rules,
○ ...
Read more:
https://www.linkedin.com/pulse/designing-pwa-
ecommerce-karl-bzik/
Key concepts in practice
28
PRPL & SSR
Push Render Pre-cache Lazy Load & Server Side Rendering
• (PUSH) We’re using window.__INITIAL_STATE__
to populate Vuex data stores without hiting Service Worker nor Server. Not
using HTTP/2 at this point.
• (RENDER) We’re using Vue SSR
It’s quite useful - you have two entry points: client-entry.js for
standard SPA and server-entry.js for SSR (with client side hydration -
still you’re able to use full featureset of Vue). We’re using Webpack’s vue-
ssr-webpack-plugin
• (PRE-CACHE) We’re using <link rel="preload"> and Service Workers
(sw-precache) for caching the content - statics, routes and REST API calls
• (LAZY LOAD) We’re using Webpack’s Code splitting
Additional steps:
- Static files (product images) are optimized server side (resize/crop) to the
device,
- CDN support for static files,
- CDN support for routes (as the Server Side Rendering results can be hosted
from App server, Varnish, Cloudflare/other CDN)
29
Service Workers
Service worker is kind of a proxy to bypass the server communication
• It’s kind of proxy combined with background job :)
Service worker can proxy all the requests within your page scope (limited to https),
work in background, show push notifications
(https://developers.google.com/web/fundamentals/codelabs/push-notifications/)
• sw-toolbox + sw-precache
We’re using tools from Google Chrome team as a boiler-plate and then
extend the generated service-workers it with our own logic
https://github.com/GoogleChromeLabs/sw-toolbox
• Loose coupled
The only way to communicate between page and worker is
postMessage() messaging interface which actually is cool. You can find
many cool patterns for designing SW here: https://serviceworke.rs/
• We use IndexedDb to queue orders and newsletter subscriptions
… and of course for caching all the statics and API calls
Service workers are quite well supported by Chrome, Samsung, Opera and in
progress for: IE, Safari.
Source: Mozilla MDN
30
Platform agnostic / NoSQL backend
Offline first, but online layer must be scalable too
• Headless, but slightly different way
We’re not using any platform-specific API. vue-storefront-api project is
API layer for Elastic database which is middleware between eCommerce
CMS and frontend. With this approach we’re totally hassle free of
eCommerce platform scalability issues. The stack is as simple and scalable
as it can. Our goal is to have API response in milliseconds.
• mage2nosql
We’ve written data pump which works on parallel processes to queue and
transfer all the data changes (products, categories, then users etc) between
Magento2 or any other platform to Elastic. It also supports webhooks for on-
demand updates.
• GraphQL - maybe?
As for now it made no sense to introduce GraphQL but it’s quite easy to
implement. Why not… Just create a pull request and we’ll merge ;)
• Queues
All communication with external systems is async and queued (kue + Redis
as for now); we’re using multi-process deployments of queue-workers (pool
of Node.js processes that can be run on server cluster)
31
Platform agnostic / NoSQL backend
Offline first, but online layer must be scalable too
• Not everything can be synchronized
Particularly not dynamic logic - like promo rules, must be executed online/on
demand.
• By Microservices I don’t mean vue-storefront-api
It’s rather a typical backend. What do I mean is to have granular micro-
services for:
○ pricing rules (cart rules),
○ stock quantities,
○ user authorization (jwt, oauth2),
○ … ?
• Different technologies
These services probably will be written as extensions to Magento2/other
platform. They can be written as well in golang or any other as long as
exposes REST interface.
• One interface
But finally we’ll use Facade (probably vue-storefront-api) to aggregate
all the requests in one format that can be used by vue-storefront.
32
Tooling
Make the development fun again!
• ES2016
We’re using Babel as Vue component loader and transpiler to have all the
goods of ES2016. eslint is of course enabled as well.
• Webpack
Main rack for our tooling - code splitting, vue-ssr, sw-toolbox are only few
features we’re using
• Elastic, Node, Express
For backend. Elastic is cool because not only of performance but full-text
search which is crucial for eCommerce. Node + Express - kind of JS
industry standard.
33
Divante Sp. z o.o.
Dmowskiego 17 Street
50-203 Wrocław
+48 516 184 153aanding@divante.de
pkarwatka@divante.co
www.divante.co
Check the demo!
http://vuestorefront.io

Weitere ähnliche Inhalte

Was ist angesagt?

Headless E-commerce That People Love
Headless E-commerce That People LoveHeadless E-commerce That People Love
Headless E-commerce That People LoveDigitalOcean
 
[Webinar] Expanding future mobile commerce with Magento PWA Studio
[Webinar] Expanding future mobile commerce with Magento PWA Studio[Webinar] Expanding future mobile commerce with Magento PWA Studio
[Webinar] Expanding future mobile commerce with Magento PWA StudioCedCommerce
 
Magento 2 looks like.
Magento 2 looks like.Magento 2 looks like.
Magento 2 looks like.Magestore
 
Graphql Overview By Chirag Dodia
Graphql Overview By Chirag DodiaGraphql Overview By Chirag Dodia
Graphql Overview By Chirag Dodiavijaygolani
 
Introduction to PWA Studio by Vijay Golani
Introduction to PWA Studio by Vijay GolaniIntroduction to PWA Studio by Vijay Golani
Introduction to PWA Studio by Vijay Golanivijaygolani
 
How to make Headless Commerce Strategy.
How to make Headless Commerce Strategy.How to make Headless Commerce Strategy.
How to make Headless Commerce Strategy.Aureate Labs
 
Magento CMS Presentation
Magento CMS PresentationMagento CMS Presentation
Magento CMS PresentationRAJU MAKWANA
 
Introduction to Magento - KNOWARTH
Introduction to Magento - KNOWARTHIntroduction to Magento - KNOWARTH
Introduction to Magento - KNOWARTHKNOWARTH Technologies
 
Why you choose Magento as your ecommerce platform?
Why you choose Magento as your ecommerce platform? Why you choose Magento as your ecommerce platform?
Why you choose Magento as your ecommerce platform? Inception System
 
Meet Magento Belarus - Elena Leonova
Meet Magento Belarus - Elena LeonovaMeet Magento Belarus - Elena Leonova
Meet Magento Belarus - Elena LeonovaAmasty
 
Managing Multiple Store Fronts on Magento
Managing Multiple Store Fronts on MagentoManaging Multiple Store Fronts on Magento
Managing Multiple Store Fronts on MagentoGeoffrey Mobisson
 
Introduction to the Magento eCommerce Platform
Introduction to the Magento eCommerce PlatformIntroduction to the Magento eCommerce Platform
Introduction to the Magento eCommerce PlatformJarne W. Beutnagel
 
How to migrate data from Marketpress to Magento by LitExtension
How to migrate data from Marketpress to Magento by LitExtensionHow to migrate data from Marketpress to Magento by LitExtension
How to migrate data from Marketpress to Magento by LitExtensionLitExtension
 
Optimizing Magento for Peak Performance
Optimizing Magento for Peak PerformanceOptimizing Magento for Peak Performance
Optimizing Magento for Peak PerformanceMageCloud
 
PWA basics for developers
PWA basics for developersPWA basics for developers
PWA basics for developersFilip Rakowski
 
How to migrate data from AmeriCommerce to Magento by LitExtension
How to migrate data from AmeriCommerce to Magento by LitExtensionHow to migrate data from AmeriCommerce to Magento by LitExtension
How to migrate data from AmeriCommerce to Magento by LitExtensionLitExtension
 
Magento 2 overview. Alan Kent
Magento 2 overview. Alan Kent Magento 2 overview. Alan Kent
Magento 2 overview. Alan Kent MeetMagentoNY2014
 
Magento powerpoint sample
Magento powerpoint sampleMagento powerpoint sample
Magento powerpoint samplesmtech002
 

Was ist angesagt? (20)

Headless E-commerce That People Love
Headless E-commerce That People LoveHeadless E-commerce That People Love
Headless E-commerce That People Love
 
[Webinar] Expanding future mobile commerce with Magento PWA Studio
[Webinar] Expanding future mobile commerce with Magento PWA Studio[Webinar] Expanding future mobile commerce with Magento PWA Studio
[Webinar] Expanding future mobile commerce with Magento PWA Studio
 
Magento 2 looks like.
Magento 2 looks like.Magento 2 looks like.
Magento 2 looks like.
 
Graphql Overview By Chirag Dodia
Graphql Overview By Chirag DodiaGraphql Overview By Chirag Dodia
Graphql Overview By Chirag Dodia
 
Introduction to PWA Studio by Vijay Golani
Introduction to PWA Studio by Vijay GolaniIntroduction to PWA Studio by Vijay Golani
Introduction to PWA Studio by Vijay Golani
 
Outlook on Magento 2
Outlook on Magento 2Outlook on Magento 2
Outlook on Magento 2
 
How to make Headless Commerce Strategy.
How to make Headless Commerce Strategy.How to make Headless Commerce Strategy.
How to make Headless Commerce Strategy.
 
Magento CMS Presentation
Magento CMS PresentationMagento CMS Presentation
Magento CMS Presentation
 
Introduction to Magento - KNOWARTH
Introduction to Magento - KNOWARTHIntroduction to Magento - KNOWARTH
Introduction to Magento - KNOWARTH
 
Why you choose Magento as your ecommerce platform?
Why you choose Magento as your ecommerce platform? Why you choose Magento as your ecommerce platform?
Why you choose Magento as your ecommerce platform?
 
Meet Magento Belarus - Elena Leonova
Meet Magento Belarus - Elena LeonovaMeet Magento Belarus - Elena Leonova
Meet Magento Belarus - Elena Leonova
 
Managing Multiple Store Fronts on Magento
Managing Multiple Store Fronts on MagentoManaging Multiple Store Fronts on Magento
Managing Multiple Store Fronts on Magento
 
Introduction to the Magento eCommerce Platform
Introduction to the Magento eCommerce PlatformIntroduction to the Magento eCommerce Platform
Introduction to the Magento eCommerce Platform
 
How to migrate data from Marketpress to Magento by LitExtension
How to migrate data from Marketpress to Magento by LitExtensionHow to migrate data from Marketpress to Magento by LitExtension
How to migrate data from Marketpress to Magento by LitExtension
 
Optimizing Magento for Peak Performance
Optimizing Magento for Peak PerformanceOptimizing Magento for Peak Performance
Optimizing Magento for Peak Performance
 
An Introduction To Magento
An Introduction To MagentoAn Introduction To Magento
An Introduction To Magento
 
PWA basics for developers
PWA basics for developersPWA basics for developers
PWA basics for developers
 
How to migrate data from AmeriCommerce to Magento by LitExtension
How to migrate data from AmeriCommerce to Magento by LitExtensionHow to migrate data from AmeriCommerce to Magento by LitExtension
How to migrate data from AmeriCommerce to Magento by LitExtension
 
Magento 2 overview. Alan Kent
Magento 2 overview. Alan Kent Magento 2 overview. Alan Kent
Magento 2 overview. Alan Kent
 
Magento powerpoint sample
Magento powerpoint sampleMagento powerpoint sample
Magento powerpoint sample
 

Ähnlich wie Vue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speech

vue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentationvue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentationDivante
 
Game changer for e-commerce - Vue Storefront - open source pwa
Game changer for e-commerce - Vue Storefront - open source pwa Game changer for e-commerce - Vue Storefront - open source pwa
Game changer for e-commerce - Vue Storefront - open source pwa Divante
 
LvivCSS: Web Components as a foundation for Design System
LvivCSS: Web Components as a foundation for Design SystemLvivCSS: Web Components as a foundation for Design System
LvivCSS: Web Components as a foundation for Design SystemVlad Fedosov
 
PWA - The Future of eCommerce - Magento Meetup Ahmedabad 2018
PWA - The Future of eCommerce - Magento Meetup Ahmedabad 2018PWA - The Future of eCommerce - Magento Meetup Ahmedabad 2018
PWA - The Future of eCommerce - Magento Meetup Ahmedabad 2018Bhavesh Surani
 
Home management WebApp presentation
Home management WebApp presentationHome management WebApp presentation
Home management WebApp presentationbhavesh singh
 
Word press with react – implementing headless wordpress with reactjs converted
Word press with react – implementing headless wordpress with reactjs convertedWord press with react – implementing headless wordpress with reactjs converted
Word press with react – implementing headless wordpress with reactjs convertedDaljeetSingh210
 
Office Add-ins community call-March 2019
Office Add-ins community call-March 2019Office Add-ins community call-March 2019
Office Add-ins community call-March 2019Microsoft 365 Developer
 
Exploring pwa for shopware
Exploring pwa for shopwareExploring pwa for shopware
Exploring pwa for shopwareSander Mangel
 
Building a Utilities Portal with Magnolia 5 & SAP
Building a Utilities Portal with Magnolia 5 & SAPBuilding a Utilities Portal with Magnolia 5 & SAP
Building a Utilities Portal with Magnolia 5 & SAPMagnolia
 
Full Stack Web Development Basics to Know.pdf
Full Stack Web Development Basics to Know.pdfFull Stack Web Development Basics to Know.pdf
Full Stack Web Development Basics to Know.pdfLaura Miller
 
Sam segal resume
Sam segal resumeSam segal resume
Sam segal resumesamuel segal
 
We-Donut.io presentation of Platform
We-Donut.io presentation of PlatformWe-Donut.io presentation of Platform
We-Donut.io presentation of PlatformDennis Reurings
 
The Importance Things of Full Stack Development
The Importance Things of Full Stack DevelopmentThe Importance Things of Full Stack Development
The Importance Things of Full Stack DevelopmentMike Taylor
 
Smart buckets ppt
Smart buckets pptSmart buckets ppt
Smart buckets pptkiran Patel
 
COMP6210 Web Services And Design Methodologies.docx
COMP6210 Web Services And Design Methodologies.docxCOMP6210 Web Services And Design Methodologies.docx
COMP6210 Web Services And Design Methodologies.docxwrite31
 
Rashmi_TL
Rashmi_TLRashmi_TL
Rashmi_TLRashmi TL
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...Mark Leusink
 
The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...Mark Roden
 
Real World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure ServicesReal World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure ServicesBrian Culver
 
Rapid Application Development with MEAN Stack
Rapid Application Development with MEAN StackRapid Application Development with MEAN Stack
Rapid Application Development with MEAN StackAvinash Kaza
 

Ähnlich wie Vue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speech (20)

vue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentationvue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
 
Game changer for e-commerce - Vue Storefront - open source pwa
Game changer for e-commerce - Vue Storefront - open source pwa Game changer for e-commerce - Vue Storefront - open source pwa
Game changer for e-commerce - Vue Storefront - open source pwa
 
LvivCSS: Web Components as a foundation for Design System
LvivCSS: Web Components as a foundation for Design SystemLvivCSS: Web Components as a foundation for Design System
LvivCSS: Web Components as a foundation for Design System
 
PWA - The Future of eCommerce - Magento Meetup Ahmedabad 2018
PWA - The Future of eCommerce - Magento Meetup Ahmedabad 2018PWA - The Future of eCommerce - Magento Meetup Ahmedabad 2018
PWA - The Future of eCommerce - Magento Meetup Ahmedabad 2018
 
Home management WebApp presentation
Home management WebApp presentationHome management WebApp presentation
Home management WebApp presentation
 
Word press with react – implementing headless wordpress with reactjs converted
Word press with react – implementing headless wordpress with reactjs convertedWord press with react – implementing headless wordpress with reactjs converted
Word press with react – implementing headless wordpress with reactjs converted
 
Office Add-ins community call-March 2019
Office Add-ins community call-March 2019Office Add-ins community call-March 2019
Office Add-ins community call-March 2019
 
Exploring pwa for shopware
Exploring pwa for shopwareExploring pwa for shopware
Exploring pwa for shopware
 
Building a Utilities Portal with Magnolia 5 & SAP
Building a Utilities Portal with Magnolia 5 & SAPBuilding a Utilities Portal with Magnolia 5 & SAP
Building a Utilities Portal with Magnolia 5 & SAP
 
Full Stack Web Development Basics to Know.pdf
Full Stack Web Development Basics to Know.pdfFull Stack Web Development Basics to Know.pdf
Full Stack Web Development Basics to Know.pdf
 
Sam segal resume
Sam segal resumeSam segal resume
Sam segal resume
 
We-Donut.io presentation of Platform
We-Donut.io presentation of PlatformWe-Donut.io presentation of Platform
We-Donut.io presentation of Platform
 
The Importance Things of Full Stack Development
The Importance Things of Full Stack DevelopmentThe Importance Things of Full Stack Development
The Importance Things of Full Stack Development
 
Smart buckets ppt
Smart buckets pptSmart buckets ppt
Smart buckets ppt
 
COMP6210 Web Services And Design Methodologies.docx
COMP6210 Web Services And Design Methodologies.docxCOMP6210 Web Services And Design Methodologies.docx
COMP6210 Web Services And Design Methodologies.docx
 
Rashmi_TL
Rashmi_TLRashmi_TL
Rashmi_TL
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...
 
The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...
 
Real World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure ServicesReal World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure Services
 
Rapid Application Development with MEAN Stack
Rapid Application Development with MEAN StackRapid Application Development with MEAN Stack
Rapid Application Development with MEAN Stack
 

Mehr von Divante

The eCommerce Platforms in the Global Setup
The eCommerce Platforms in the Global Setup	The eCommerce Platforms in the Global Setup
The eCommerce Platforms in the Global Setup Divante
 
eCommerce Trends 2020
eCommerce Trends 2020eCommerce Trends 2020
eCommerce Trends 2020Divante
 
Async & Bulk REST API new possibilities of communication between systems
Async & Bulk REST API new possibilities of communication  between systemsAsync & Bulk REST API new possibilities of communication  between systems
Async & Bulk REST API new possibilities of communication between systemsDivante
 
Magento Functional Testing Framework a way to seriously write automated tests...
Magento Functional Testing Framework a way to seriously write automated tests...Magento Functional Testing Framework a way to seriously write automated tests...
Magento Functional Testing Framework a way to seriously write automated tests...Divante
 
Die Top 10 Progressive Web Apps in der Modernbranche
Die Top 10 Progressive Web Apps in der ModernbrancheDie Top 10 Progressive Web Apps in der Modernbranche
Die Top 10 Progressive Web Apps in der ModernbrancheDivante
 
progressive web apps - pwa as a game changer for e-commerce - meet magento i...
 progressive web apps - pwa as a game changer for e-commerce - meet magento i... progressive web apps - pwa as a game changer for e-commerce - meet magento i...
progressive web apps - pwa as a game changer for e-commerce - meet magento i...Divante
 
Customer churn - how to stop it?
Customer churn - how to stop it?Customer churn - how to stop it?
Customer churn - how to stop it?Divante
 
eCommerce trends 2019 by Divante.co
eCommerce trends 2019 by Divante.coeCommerce trends 2019 by Divante.co
eCommerce trends 2019 by Divante.coDivante
 
How to create a Vue Storefront theme
How to create a Vue Storefront themeHow to create a Vue Storefront theme
How to create a Vue Storefront themeDivante
 
How to successfully onboard end-clients to a B2B Platform - Magento Imagine ...
How to successfully onboard  end-clients to a B2B Platform - Magento Imagine ...How to successfully onboard  end-clients to a B2B Platform - Magento Imagine ...
How to successfully onboard end-clients to a B2B Platform - Magento Imagine ...Divante
 
eCommerce trends from 2017 to 2018 by Divante.co
eCommerce trends from 2017 to 2018 by Divante.coeCommerce trends from 2017 to 2018 by Divante.co
eCommerce trends from 2017 to 2018 by Divante.coDivante
 
Designing for PWA (Progressive Web Apps)
Designing for PWA (Progressive Web Apps)Designing for PWA (Progressive Web Apps)
Designing for PWA (Progressive Web Apps)Divante
 
Why is crud a bad idea - focus on real scenarios
Why is crud a bad idea - focus on real scenariosWhy is crud a bad idea - focus on real scenarios
Why is crud a bad idea - focus on real scenariosDivante
 
Pimcore Overview - Pimcore5
Pimcore Overview - Pimcore5Pimcore Overview - Pimcore5
Pimcore Overview - Pimcore5Divante
 
Pimcore E-Commerce Framework - Pimcore5
Pimcore E-Commerce Framework - Pimcore5Pimcore E-Commerce Framework - Pimcore5
Pimcore E-Commerce Framework - Pimcore5Divante
 
The biggest stores on Magento
The biggest stores on MagentoThe biggest stores on Magento
The biggest stores on MagentoDivante
 
B2B Commerce - how to become successful
B2B Commerce - how to become successfulB2B Commerce - how to become successful
B2B Commerce - how to become successfulDivante
 
Budgeting in SCRUM by Divante
Budgeting in SCRUM by DivanteBudgeting in SCRUM by Divante
Budgeting in SCRUM by DivanteDivante
 
Omnichannel B2B Architecture
Omnichannel B2B ArchitectureOmnichannel B2B Architecture
Omnichannel B2B ArchitectureDivante
 
UX for eCommerce Fashion
UX for eCommerce FashionUX for eCommerce Fashion
UX for eCommerce FashionDivante
 

Mehr von Divante (20)

The eCommerce Platforms in the Global Setup
The eCommerce Platforms in the Global Setup	The eCommerce Platforms in the Global Setup
The eCommerce Platforms in the Global Setup
 
eCommerce Trends 2020
eCommerce Trends 2020eCommerce Trends 2020
eCommerce Trends 2020
 
Async & Bulk REST API new possibilities of communication between systems
Async & Bulk REST API new possibilities of communication  between systemsAsync & Bulk REST API new possibilities of communication  between systems
Async & Bulk REST API new possibilities of communication between systems
 
Magento Functional Testing Framework a way to seriously write automated tests...
Magento Functional Testing Framework a way to seriously write automated tests...Magento Functional Testing Framework a way to seriously write automated tests...
Magento Functional Testing Framework a way to seriously write automated tests...
 
Die Top 10 Progressive Web Apps in der Modernbranche
Die Top 10 Progressive Web Apps in der ModernbrancheDie Top 10 Progressive Web Apps in der Modernbranche
Die Top 10 Progressive Web Apps in der Modernbranche
 
progressive web apps - pwa as a game changer for e-commerce - meet magento i...
 progressive web apps - pwa as a game changer for e-commerce - meet magento i... progressive web apps - pwa as a game changer for e-commerce - meet magento i...
progressive web apps - pwa as a game changer for e-commerce - meet magento i...
 
Customer churn - how to stop it?
Customer churn - how to stop it?Customer churn - how to stop it?
Customer churn - how to stop it?
 
eCommerce trends 2019 by Divante.co
eCommerce trends 2019 by Divante.coeCommerce trends 2019 by Divante.co
eCommerce trends 2019 by Divante.co
 
How to create a Vue Storefront theme
How to create a Vue Storefront themeHow to create a Vue Storefront theme
How to create a Vue Storefront theme
 
How to successfully onboard end-clients to a B2B Platform - Magento Imagine ...
How to successfully onboard  end-clients to a B2B Platform - Magento Imagine ...How to successfully onboard  end-clients to a B2B Platform - Magento Imagine ...
How to successfully onboard end-clients to a B2B Platform - Magento Imagine ...
 
eCommerce trends from 2017 to 2018 by Divante.co
eCommerce trends from 2017 to 2018 by Divante.coeCommerce trends from 2017 to 2018 by Divante.co
eCommerce trends from 2017 to 2018 by Divante.co
 
Designing for PWA (Progressive Web Apps)
Designing for PWA (Progressive Web Apps)Designing for PWA (Progressive Web Apps)
Designing for PWA (Progressive Web Apps)
 
Why is crud a bad idea - focus on real scenarios
Why is crud a bad idea - focus on real scenariosWhy is crud a bad idea - focus on real scenarios
Why is crud a bad idea - focus on real scenarios
 
Pimcore Overview - Pimcore5
Pimcore Overview - Pimcore5Pimcore Overview - Pimcore5
Pimcore Overview - Pimcore5
 
Pimcore E-Commerce Framework - Pimcore5
Pimcore E-Commerce Framework - Pimcore5Pimcore E-Commerce Framework - Pimcore5
Pimcore E-Commerce Framework - Pimcore5
 
The biggest stores on Magento
The biggest stores on MagentoThe biggest stores on Magento
The biggest stores on Magento
 
B2B Commerce - how to become successful
B2B Commerce - how to become successfulB2B Commerce - how to become successful
B2B Commerce - how to become successful
 
Budgeting in SCRUM by Divante
Budgeting in SCRUM by DivanteBudgeting in SCRUM by Divante
Budgeting in SCRUM by Divante
 
Omnichannel B2B Architecture
Omnichannel B2B ArchitectureOmnichannel B2B Architecture
Omnichannel B2B Architecture
 
UX for eCommerce Fashion
UX for eCommerce FashionUX for eCommerce Fashion
UX for eCommerce Fashion
 

KĂźrzlich hochgeladen

办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一z xss
 
NSX-T and Service Interfaces presentation
NSX-T and Service Interfaces presentationNSX-T and Service Interfaces presentation
NSX-T and Service Interfaces presentationMarko4394
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一Fs
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITMgdsc13
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)Christopher H Felton
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationLinaWolf1
 
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书rnrncn29
 
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书rnrncn29
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Sonam Pathan
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一Fs
 
Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxDyna Gilbert
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa494f574xmv
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书zdzoqco
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Paul Calvano
 
Elevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New OrleansElevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New Orleanscorenetworkseo
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhimiss dipika
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMartaLoveguard
 
Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Excelmac1
 

KĂźrzlich hochgeladen (20)

young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
 
NSX-T and Service Interfaces presentation
NSX-T and Service Interfaces presentationNSX-T and Service Interfaces presentation
NSX-T and Service Interfaces presentation
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITM
 
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 Documentation
 
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
 
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
 
Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptx
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24
 
Elevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New OrleansElevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New Orleans
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhi
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptx
 
Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...
 

Vue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speech

  • 1. Mobile first, offline second, PWA for eCommerce Andreas Anding Business Development Consultant, Divante Piotr Karwatka, CTO, Divante
  • 2. eCommerce Software House 2 10 years on the market 100+ clients globally 150+ team members 300+projects delivered
  • 3. 3 The Agenda 1. eCommerce - what’s wrong with you? 2. Progressive Web Apps - what’s all about? 3. Vue Storefront - first open source PWA for eCommerce 4. See it in action! 5. Architecture 6. Design Challenges 7. Key Concepts in practice Vue Storefront is an open source (MIT) project powered by cool, open source technologies:
  • 4. eCommerce - what’s wrong with you?
  • 6. not suited for mobile not stable during peaks not effecitve with poor internet connection long time2market eCommerce right now GAP Technology Creators (eg. AFGA) Customers Companies (Retailers/Manufacturers)
  • 8. 8 Progressive Web Apps Best features of Mobile App (UX) and Web (Distribution) combined • Offline readiness • Home Screen • No Submission • Linkable • Re-engageable Alibaba Case Study • 76% higher conversions across browsers • 14% more monthly active users on iOS; 30% on Android
  • 9. ES2015/2016, IndexedDb Service Workers (check https://serviceworke.rs/ for recipes) Techniques: PRPL, SSR Reactive frameworks (React, Vue, Polymer …) Progressive Web Apps Best features of Mobile App (UX) and Web (Distribution) combined Supported by: Chrome, Samsung, Microsoft, Apple, Opera (https://jakearchibald.github.io/isserviceworkerready/)
  • 11. 11 Bleeding edge, scalable technology Node.js, Vue.js, Elastic Blazing fast It render at no time. Always. 100% offline, Black-Friday ready :)
  • 12. Offline-ready, ultrafast PWA Really fast and enjoyable development with all standard eCommerce features out of the box Can be integrated with any eCommerce! Key features Mobile first and works like a native mobile app Painlessly upgradable core with new features every month (as NPM package) No architectural limitations (normal Vue.js app)
  • 13. You need a Web, Mobile Web, iOS App, Android App, Windows App, .. eCommerce Websites are not stable during peaks Websites are not effecitve with poor internet connection Long time2market to develop Mobile Apps and Mobile Web Progressive Web Apps – Website that can be installed as an App. Best features of Mobile App (UX) and Web (Distribution) combined Storefront can be run without alive web- server there is no such traffic peak that can stop users from making orders Offline readiness - app can be used off-line Out-of-the Box Product, Based on Vue.js, developer-friendly approach, good doc Challenges Solution
  • 14. Project status All basic promotions, product types, catalog features supported 18 local partners + 46 active contributors + 10 ongoing projects Production ready and stable. Magento 1.9 and Magento 2.x full support
  • 15. … and one more thing Open source and MIT license! github.com/DivanteLtd/vue-storefront @vuestorefront
  • 16. See it in action!
  • 17. See it in action! github.com/DivanteLtd/vue-storefront@vuestorefront
  • 18. … and one more thing Let’s go to demo.vuestorefront.io github.com/DivanteLtd/vue-storefront @vuestorefront
  • 19. Contribute! - 1.5k stars on Github (top 10 vue.js project) - 300 developers on Slack - 46 active contributors on Github - 18 official partners
  • 21. How it works (simplified) Vue Storefront API Same for every platform thanks to adapter API Adapter For each platform (Magento 2 and Pimcore integrations are ready) eCommerce CMS Magento, Shopify or any other Vue Storefront Single Page App PWA written in Vue.js NoSQL DB
  • 22. How it works (simplified) Vue Storefront API Same for every platform thanks to adapter API Adapter For each platform (Magento 2 and Pimcore integrations are ready) eCommerce CMS Magento, Shopify or any other Vue Storefront Single Page App PWA written in Vue.js NoSQL DB Real-time sync based on product updates
  • 23. Frontend architecture Vue Storefront Core Contains all standard eCommerce features, state management, offline capabilities and database integration. It’s upgradable as a NPM package and extendable via extensions. core src themes extensions Your playground! Extensions (e.g new payment methods, mailchimp, integration, Google Analytics integration) Theme This is your shop! Developed like a separate Vue.js application that can make use of VS core and extensions
  • 24. 24 Framework Theming, extensions, re-usable components • vue-storefront is meant to be a Framework It’s divided to re-usable Vue components and Vuex data stores. It’s designed to be updateable without modifying the Core. • Theming You can put your theme under /themes - which inherits (using Vue Mixins) all the default components and pages • Extensions Extensions are registered in app.js - you can add your own features: ○ additional Vuex stores, ○ routes, ○ pages and components • SSR & client side hydration For better SEO results we’re using Server Side Rendering (https://ssr.vuejs.org/en/) - basically it’s not a typical SPA application • Webpack We’re using it extensively: for Babel compiling (we’re ES2016 compliant), sw-precache, code chunking, optimization, dev server ...
  • 26. 26 Design Challenges For the prototype we decided to design PWA for a fashion brand • Here you have some free tips: ○ Ensure that the keyboard won’t cover the view of key elements of the app; ○ Use 2x size for the png images and SVG files to keep the design looking clear on all types of screens; ○ Make touchable components like the buttons or links big enough; ○ Useless text links because they are harder to use on small screens; ○ Verify how does the application behave while changing the size with the rotation of the device. • Figma We used Figma for its collaboration features to create the Vue Storefront Design System (designs are MIT licensed too), with grid, mobile interactions • UX Challenges ○ Payments while offline? ○ Stock quantities while offline? ○ Seamless experience on many devices, ○ Cart/dynamic promo rules, ○ ... Read more: https://www.linkedin.com/pulse/designing-pwa- ecommerce-karl-bzik/
  • 27. Key concepts in practice
  • 28. 28 PRPL & SSR Push Render Pre-cache Lazy Load & Server Side Rendering • (PUSH) We’re using window.__INITIAL_STATE__ to populate Vuex data stores without hiting Service Worker nor Server. Not using HTTP/2 at this point. • (RENDER) We’re using Vue SSR It’s quite useful - you have two entry points: client-entry.js for standard SPA and server-entry.js for SSR (with client side hydration - still you’re able to use full featureset of Vue). We’re using Webpack’s vue- ssr-webpack-plugin • (PRE-CACHE) We’re using <link rel="preload"> and Service Workers (sw-precache) for caching the content - statics, routes and REST API calls • (LAZY LOAD) We’re using Webpack’s Code splitting Additional steps: - Static files (product images) are optimized server side (resize/crop) to the device, - CDN support for static files, - CDN support for routes (as the Server Side Rendering results can be hosted from App server, Varnish, Cloudflare/other CDN)
  • 29. 29 Service Workers Service worker is kind of a proxy to bypass the server communication • It’s kind of proxy combined with background job :) Service worker can proxy all the requests within your page scope (limited to https), work in background, show push notifications (https://developers.google.com/web/fundamentals/codelabs/push-notifications/) • sw-toolbox + sw-precache We’re using tools from Google Chrome team as a boiler-plate and then extend the generated service-workers it with our own logic https://github.com/GoogleChromeLabs/sw-toolbox • Loose coupled The only way to communicate between page and worker is postMessage() messaging interface which actually is cool. You can find many cool patterns for designing SW here: https://serviceworke.rs/ • We use IndexedDb to queue orders and newsletter subscriptions … and of course for caching all the statics and API calls Service workers are quite well supported by Chrome, Samsung, Opera and in progress for: IE, Safari. Source: Mozilla MDN
  • 30. 30 Platform agnostic / NoSQL backend Offline first, but online layer must be scalable too • Headless, but slightly different way We’re not using any platform-specific API. vue-storefront-api project is API layer for Elastic database which is middleware between eCommerce CMS and frontend. With this approach we’re totally hassle free of eCommerce platform scalability issues. The stack is as simple and scalable as it can. Our goal is to have API response in milliseconds. • mage2nosql We’ve written data pump which works on parallel processes to queue and transfer all the data changes (products, categories, then users etc) between Magento2 or any other platform to Elastic. It also supports webhooks for on- demand updates. • GraphQL - maybe? As for now it made no sense to introduce GraphQL but it’s quite easy to implement. Why not… Just create a pull request and we’ll merge ;) • Queues All communication with external systems is async and queued (kue + Redis as for now); we’re using multi-process deployments of queue-workers (pool of Node.js processes that can be run on server cluster)
  • 31. 31 Platform agnostic / NoSQL backend Offline first, but online layer must be scalable too • Not everything can be synchronized Particularly not dynamic logic - like promo rules, must be executed online/on demand. • By Microservices I don’t mean vue-storefront-api It’s rather a typical backend. What do I mean is to have granular micro- services for: ○ pricing rules (cart rules), ○ stock quantities, ○ user authorization (jwt, oauth2), ○ … ? • Different technologies These services probably will be written as extensions to Magento2/other platform. They can be written as well in golang or any other as long as exposes REST interface. • One interface But finally we’ll use Facade (probably vue-storefront-api) to aggregate all the requests in one format that can be used by vue-storefront.
  • 32. 32 Tooling Make the development fun again! • ES2016 We’re using Babel as Vue component loader and transpiler to have all the goods of ES2016. eslint is of course enabled as well. • Webpack Main rack for our tooling - code splitting, vue-ssr, sw-toolbox are only few features we’re using • Elastic, Node, Express For backend. Elastic is cool because not only of performance but full-text search which is crucial for eCommerce. Node + Express - kind of JS industry standard.
  • 33. 33 Divante Sp. z o.o. Dmowskiego 17 Street 50-203 Wrocław +48 516 184 153aanding@divante.de pkarwatka@divante.co www.divante.co Check the demo! http://vuestorefront.io