SlideShare a Scribd company logo
vue-storefront
Progressive, mobile first, offline second eCommerce web app
Piotr Karwatka, CTO of Divante
Lorem ipsum
dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing
elit. Integer non erat dui. Nam faucibus efficitur
euismod. Cras ornare mi nibh, id commodo lorem
maximus vitae. Vivamus ac ligula non turpis ultrices
ornare at eget ipsum.
eBusiness Software House
operating since 2008
150 people at our office in Wroclaw,
Poland
Clients from Europe, Asia, Africa and
the US
Within your reach: 1.5h flight from
London, Berlin, Oslo, Amsterdam,
Paris
SCRUM methodology ensuring high
quality and flexible approach to the
business requirements
Case studies: divante.co/case-studies
2
3
The Agenda
1. eCommerce - what’s wrong with you?
2. Progressive Web Apps - what’s all about?
3. Project Goals
4. Design Challenges
5. Architecture
6. Framework
7. Key Concepts in practice
a. PRPL & SSR
b. Service Workers
c. Platform agnostic / NoSQL backend
d. Microservices
8. Tooling
9. Join us as Contributor!
vue-storefront is an open source (MIT) project
powered by cool, open source technologies:
1eCommerce - what’s wrong with you?
not suited for mobile
not stable during peaks
not effecitve with poor internet
connection
long time2market
eCommerces right now
2Progressive Web Apps
7
Progressive Web Apps
Best features of Mobile App (UX) and Web (Distribution) combined
• Offline readiness - app can be used without internet access,
• Mobile-first / Responsive - speed, ui, animations, push notifications,
Fit any form factor: desktop, mobile, tablet. Can be added to Home
screen with zero install and no app store submission,
• Linkable - Easily shared via a URL and do not require complex
installation
• Re-engageable - Make re-engagement easy through features like
push notifications.
Key building blocks
- ES2015/2016, IndexedDb,
- Service Workers (check https://serviceworke.rs/ for recipes),
- Techniques: PRPL, SSR,
- Reactive frameworks (React, Vue, Polymer …)
- Tooling: Webpack, Lighthouse,
Supported by: Chrome, Samsung, Microsoft, Apple, Opera
(https://jakearchibald.github.io/isserviceworkerready/)
● Lancôme rebuilds their mobile website as a PWA, increases conversions 17%;
● Jumia sees 33% increase in conversion rate, 12X more users on PWA;
● Alibaba.com increases conversions on the mobile web by 76% with PWA;
● Housing.com increases lowers bounce rate by 40% with new PWA;
● Forbes, OLX, Twitter cases.
Source:
https://www.quora.com/What-are-the-advantages-and-disadvantages-of-Progressi
ve-Web-Apps-over-Native-Apps
8
Progressive Web Apps
Best features of Mobile App (UX) and Web (Distribution) combined
• Offline readiness - app can be used without internet access,
• Mobile-first / Responsive - speed, ui, animations, push
notifications, Fit any form factor: desktop, mobile, tablet. Can be
added to Home screen with zero install and no app store submission,
• Linkable - Easily shared via a URL and do not require complex
installation
• Re-engageable - Make re-engagement easy through features like
push notifications.
Key building blocks
- ES2015/2016, IndexedDb,
- Service Workers (check https://serviceworke.rs/ for recipes),
- Techniques: PRPL, SSR,
- Reactive frameworks (React, Vue, Polymer …)
- Tooling: Webpack, Lighthouse,
Supported by: Chrome, Samsung, Microsoft, Apple, Opera
(https://jakearchibald.github.io/isserviceworkerready/)
● Lancôme rebuilds their mobile website as a PWA, increases conversions 17%;
● Jumia sees 33% increase in conversion rate, 12X more users on PWA;
● Alibaba.com increases conversions on the mobile web by 76% with PWA;
● Housing.com increases lowers bounce rate by 40% with new PWA;
● Forbes, OLX, Twitter cases.
Source: https://addyosmani.com/blog/getting-started-with-progressive-web-apps/
3Project Goals
10
Project Goals
To create fault-tolerant, bleeding edge, progressive eCommerce app.
And have fun. Lot of fun in the process :)
• Fault-tolerant, 100% offline, Black-Friday ready :)
Because this storefront can be run without alive web-server (offline mode)
there is no such traffic peak that can stop users from making orders.
• Progressive
We aimed at giving user full benefits of Progressive Web App - with all this
push notifications, service workers, native experience etc.
• Blazing fast
It should render at no time. Always.
• Platform agnostic
You should be able to work with Magento2, Shopify Plus, Pimcore, <You
name it> platform of choice as CMS.
• Always Open Source (MIT)
The project is broad. We believe in Open Source and that success is
possible only when more than one company will contribute.
• Bleeding edge, scalable technology
ES2016, Node.js, Vue.js, Elastic
More on our motivation:
https://www.linkedin.com/pulse/magento2-nosql-database-pwa-support-piotr-ka
rwatka/
https://github.com/DivanteLtd/vue-storefront
4Design Challenges
12
Design Challenges
For the prototype we decided to design PWA for a fashion brand
• Figma
We used Figma for its collaboration features to design the mockups
(designs will be also MIT licensed), with grid, mobile interactions
• UX Challenges
○ Payments while offline?
○ Stock quantities while offline?
○ Seamless experience on many devices,
○ Cart/dynamic promo rules,
○ ...
• 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.
Read more:
https://www.linkedin.com/pulse/designing-pwa-ecommerce-karl-bzik/
5Architecture
14
Architecture
Loose Coupling, Microservices, Horizontally scalable
• vue-storefront is Vue.js eCommerce frontend
It doesn’t require any database support (server side), it’s Webpack app
which can be statically rendered (SSR) and served even from CDN,
• vue-storefront-api is Express.js backend
It uses Elastic as data store (NoSQL) and serves all the products,
categories, order history, accounts (oauth2) for the frontend, then it sends
orders and other data back to eCommerce CMS of choice,
• mage2nosql is a tool :-)
… for synchronizing Magento (and any given platform via switchable
adapters) to Elastic OR MongoDB database. Supports products, categories,
product-to-category links so far.
15
Architecture
Loose Coupling, Microservices, Horizontally scalable
• vue-storefront is Vue.js eCommerce frontend
It doesn’t require any database support (server side), it’s Webpack app
which can be statically rendered (SSR) and served even from CDN,
• vue-storefront-api is Express.js backend
It uses Elastic as data store (NoSQL) and serves all the products,
categories, order history, accounts (oauth2) for the frontend, then it sends
orders and other data back to eCommerce CMS of choice,
• mage2nosql is a tool :-)
… for synchronizing Magento (and any given platform via switchable
adapters) to Elastic OR MongoDB database. Supports products, categories,
product-to-category links so far.
Key technologies:
- Redis for kue queues (order sync 2 eCommerce) and for cache, every
batch operation base on queues and can be run in parallel,
- Service Workers with AppCache for caching data (offline support) and for
queueing orders to backend (while offline),
- Elastic as a master data store for data that can be synchronized,
- Node.js multi process workers to sync data,
- REST/API interactions with 3rd party systems (like Magento).
6Framework
17
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 ...
18
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 ...
19
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 ...
7Key concepts in practice
21
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.jsfor standard
SPA and server-entry.jsfor 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)
22
Service Workers
Caching/proxy layer + background jobs
• 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-notification
s/)
• 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
23
Service Workers
Caching/proxy layer + background jobs
• 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-notification
s/)
• 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.
24
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-apiproject 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)
25
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-apiproject 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)
26
Microservices
Not everything is suitable for being synchronized offline
• 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.
27
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.
not suited for mobile
not stable during peaks
not effecitve with poor internet
connection
long time2market
eCommerces right now
RWD, mobile-first approach, PWA Caching, Vue.js
Data caching, NoSQL database, PWA with Service
Workers
Vue, developer-friendly approach, good
documentation
Local Forage data caching, Vue.js, NoSQL database
Contribute!
Contribute!
31
Divante Sp. z o.o.
Dmowskiego 17 Street
50-203 Wrocław
+48 516 184 153pkarwatka@divante.co www.divante.co
Become a contributor!
contributors@divante.co

More Related Content

What's hot

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
 
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
 
B2B Commerce - how to become successful
B2B Commerce - how to become successfulB2B Commerce - how to become successful
B2B Commerce - how to become successful
Divante
 
Omnichannel - 5 success factors
Omnichannel - 5 success factorsOmnichannel - 5 success factors
Omnichannel - 5 success factors
Divante
 
Piotr Karwatka - Managing IT project with no doubts. How to work with Agency,...
Piotr Karwatka - Managing IT project with no doubts. How to work with Agency,...Piotr Karwatka - Managing IT project with no doubts. How to work with Agency,...
Piotr Karwatka - Managing IT project with no doubts. How to work with Agency,...
Meet Magento Italy
 
Ecommerce Replatforming Basic Use Case
Ecommerce Replatforming Basic Use CaseEcommerce Replatforming Basic Use Case
Ecommerce Replatforming Basic Use Case
BigCommerce
 
Surprising failure factors when implementing eCommerce and Omnichannel eBusiness
Surprising failure factors when implementing eCommerce and Omnichannel eBusinessSurprising failure factors when implementing eCommerce and Omnichannel eBusiness
Surprising failure factors when implementing eCommerce and Omnichannel eBusiness
Divante
 
E commerce platform for small businesses: how to choose one?
 E commerce platform for small businesses: how to choose one? E commerce platform for small businesses: how to choose one?
E commerce platform for small businesses: how to choose one?
WebConnect Pvt Ltd
 
Using APIs to Create an Omni-Channel Retail Experience
Using APIs to Create an Omni-Channel Retail ExperienceUsing APIs to Create an Omni-Channel Retail Experience
Using APIs to Create an Omni-Channel Retail Experience
CA API Management
 
Magento as a crucial part of Digital Transformation in B2B Industry.
Magento as a crucial part of Digital Transformation in B2B Industry.Magento as a crucial part of Digital Transformation in B2B Industry.
Magento as a crucial part of Digital Transformation in B2B Industry.
Divante
 
B2B e-commerce inspirations and implementations on Magento by Divante
B2B e-commerce inspirations and implementations on Magento by DivanteB2B e-commerce inspirations and implementations on Magento by Divante
B2B e-commerce inspirations and implementations on Magento by Divante
Divante
 
E-Commerce Case Studies
E-Commerce Case StudiesE-Commerce Case Studies
E-Commerce Case Studies
Divante
 
Omnichannel Architecture - OroCRM, PimCore, Magento
Omnichannel Architecture - OroCRM, PimCore, MagentoOmnichannel Architecture - OroCRM, PimCore, Magento
Omnichannel Architecture - OroCRM, PimCore, Magento
Divante
 
Programming languages used for ecommerce development
Programming languages used for ecommerce developmentProgramming languages used for ecommerce development
Programming languages used for ecommerce development
Emma Jhonson
 
Ism ecompany ecommerce software comparison
Ism ecompany  ecommerce software comparisonIsm ecompany  ecommerce software comparison
Ism ecompany ecommerce software comparison
valantic NL
 
Enterprise Marketplace Powered by Sitecore Experience Cloud
Enterprise Marketplace Powered by Sitecore Experience CloudEnterprise Marketplace Powered by Sitecore Experience Cloud
Enterprise Marketplace Powered by Sitecore Experience Cloud
VarunNehra
 
10 top rated e-commerce cms for online businesses
10 top rated e-commerce cms for online businesses10 top rated e-commerce cms for online businesses
10 top rated e-commerce cms for online businesses
WebConnect Pvt Ltd
 
B2B Magento vs. Hybris
B2B Magento vs. HybrisB2B Magento vs. Hybris
B2B Magento vs. Hybris
Urszula Urban
 
Eelko van Wijk - The App Economy, the next turning point in Online Retailing
Eelko van Wijk - The App Economy, the next turning point in Online RetailingEelko van Wijk - The App Economy, the next turning point in Online Retailing
Eelko van Wijk - The App Economy, the next turning point in Online Retailing
Meet Magento Italy
 
An eCommerce Platform Manifesto | What Retailers Must Deliver to Outperform t...
An eCommerce Platform Manifesto | What Retailers Must Deliver to Outperform t...An eCommerce Platform Manifesto | What Retailers Must Deliver to Outperform t...
An eCommerce Platform Manifesto | What Retailers Must Deliver to Outperform t...
Mozu
 

What's hot (20)

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 ...
 
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
 
B2B Commerce - how to become successful
B2B Commerce - how to become successfulB2B Commerce - how to become successful
B2B Commerce - how to become successful
 
Omnichannel - 5 success factors
Omnichannel - 5 success factorsOmnichannel - 5 success factors
Omnichannel - 5 success factors
 
Piotr Karwatka - Managing IT project with no doubts. How to work with Agency,...
Piotr Karwatka - Managing IT project with no doubts. How to work with Agency,...Piotr Karwatka - Managing IT project with no doubts. How to work with Agency,...
Piotr Karwatka - Managing IT project with no doubts. How to work with Agency,...
 
Ecommerce Replatforming Basic Use Case
Ecommerce Replatforming Basic Use CaseEcommerce Replatforming Basic Use Case
Ecommerce Replatforming Basic Use Case
 
Surprising failure factors when implementing eCommerce and Omnichannel eBusiness
Surprising failure factors when implementing eCommerce and Omnichannel eBusinessSurprising failure factors when implementing eCommerce and Omnichannel eBusiness
Surprising failure factors when implementing eCommerce and Omnichannel eBusiness
 
E commerce platform for small businesses: how to choose one?
 E commerce platform for small businesses: how to choose one? E commerce platform for small businesses: how to choose one?
E commerce platform for small businesses: how to choose one?
 
Using APIs to Create an Omni-Channel Retail Experience
Using APIs to Create an Omni-Channel Retail ExperienceUsing APIs to Create an Omni-Channel Retail Experience
Using APIs to Create an Omni-Channel Retail Experience
 
Magento as a crucial part of Digital Transformation in B2B Industry.
Magento as a crucial part of Digital Transformation in B2B Industry.Magento as a crucial part of Digital Transformation in B2B Industry.
Magento as a crucial part of Digital Transformation in B2B Industry.
 
B2B e-commerce inspirations and implementations on Magento by Divante
B2B e-commerce inspirations and implementations on Magento by DivanteB2B e-commerce inspirations and implementations on Magento by Divante
B2B e-commerce inspirations and implementations on Magento by Divante
 
E-Commerce Case Studies
E-Commerce Case StudiesE-Commerce Case Studies
E-Commerce Case Studies
 
Omnichannel Architecture - OroCRM, PimCore, Magento
Omnichannel Architecture - OroCRM, PimCore, MagentoOmnichannel Architecture - OroCRM, PimCore, Magento
Omnichannel Architecture - OroCRM, PimCore, Magento
 
Programming languages used for ecommerce development
Programming languages used for ecommerce developmentProgramming languages used for ecommerce development
Programming languages used for ecommerce development
 
Ism ecompany ecommerce software comparison
Ism ecompany  ecommerce software comparisonIsm ecompany  ecommerce software comparison
Ism ecompany ecommerce software comparison
 
Enterprise Marketplace Powered by Sitecore Experience Cloud
Enterprise Marketplace Powered by Sitecore Experience CloudEnterprise Marketplace Powered by Sitecore Experience Cloud
Enterprise Marketplace Powered by Sitecore Experience Cloud
 
10 top rated e-commerce cms for online businesses
10 top rated e-commerce cms for online businesses10 top rated e-commerce cms for online businesses
10 top rated e-commerce cms for online businesses
 
B2B Magento vs. Hybris
B2B Magento vs. HybrisB2B Magento vs. Hybris
B2B Magento vs. Hybris
 
Eelko van Wijk - The App Economy, the next turning point in Online Retailing
Eelko van Wijk - The App Economy, the next turning point in Online RetailingEelko van Wijk - The App Economy, the next turning point in Online Retailing
Eelko van Wijk - The App Economy, the next turning point in Online Retailing
 
An eCommerce Platform Manifesto | What Retailers Must Deliver to Outperform t...
An eCommerce Platform Manifesto | What Retailers Must Deliver to Outperform t...An eCommerce Platform Manifesto | What Retailers Must Deliver to Outperform t...
An eCommerce Platform Manifesto | What Retailers Must Deliver to Outperform t...
 

Viewers also liked

Require js and Magento2
Require js and Magento2Require js and Magento2
Require js and Magento2
Irene Iaccio
 
How to build a container monitoring solution - David Gildeh, CEO and Co-Found...
How to build a container monitoring solution - David Gildeh, CEO and Co-Found...How to build a container monitoring solution - David Gildeh, CEO and Co-Found...
How to build a container monitoring solution - David Gildeh, CEO and Co-Found...
Outlyer
 
Tools out of the box with Magento 2 in PHPSTORM
Tools out of the box with Magento 2 in PHPSTORMTools out of the box with Magento 2 in PHPSTORM
Tools out of the box with Magento 2 in PHPSTORM
Andra Elena Lungu
 
Applying Code Customizations to Magento 2
Applying Code Customizations to Magento 2 Applying Code Customizations to Magento 2
Applying Code Customizations to Magento 2
Igor Miniailo
 
David Bolufer - Make your magento2 fly2
David Bolufer - Make your magento2 fly2David Bolufer - Make your magento2 fly2
David Bolufer - Make your magento2 fly2
Mage Titans ES
 
Magento2 Varnish Integration | Magento2 Speed & Optimization
Magento2 Varnish Integration | Magento2 Speed & OptimizationMagento2 Varnish Integration | Magento2 Speed & Optimization
Magento2 Varnish Integration | Magento2 Speed & Optimization
Webkul Software Pvt. Ltd.
 
Magento2 Search insights by Klevu
Magento2 Search insights by KlevuMagento2 Search insights by Klevu
Magento2 Search insights by Klevu
Divante
 

Viewers also liked (7)

Require js and Magento2
Require js and Magento2Require js and Magento2
Require js and Magento2
 
How to build a container monitoring solution - David Gildeh, CEO and Co-Found...
How to build a container monitoring solution - David Gildeh, CEO and Co-Found...How to build a container monitoring solution - David Gildeh, CEO and Co-Found...
How to build a container monitoring solution - David Gildeh, CEO and Co-Found...
 
Tools out of the box with Magento 2 in PHPSTORM
Tools out of the box with Magento 2 in PHPSTORMTools out of the box with Magento 2 in PHPSTORM
Tools out of the box with Magento 2 in PHPSTORM
 
Applying Code Customizations to Magento 2
Applying Code Customizations to Magento 2 Applying Code Customizations to Magento 2
Applying Code Customizations to Magento 2
 
David Bolufer - Make your magento2 fly2
David Bolufer - Make your magento2 fly2David Bolufer - Make your magento2 fly2
David Bolufer - Make your magento2 fly2
 
Magento2 Varnish Integration | Magento2 Speed & Optimization
Magento2 Varnish Integration | Magento2 Speed & OptimizationMagento2 Varnish Integration | Magento2 Speed & Optimization
Magento2 Varnish Integration | Magento2 Speed & Optimization
 
Magento2 Search insights by Klevu
Magento2 Search insights by KlevuMagento2 Search insights by Klevu
Magento2 Search insights by Klevu
 

Similar to vue-storefront - PWA eCommerce for Magento2 MM17NYC presentation

Vue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speech
Vue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speechVue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speech
Vue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speech
Divante
 
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
 
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
Bhavesh Surani
 
SADA_RESUME_With_Happ
SADA_RESUME_With_HappSADA_RESUME_With_Happ
SADA_RESUME_With_HappSada Nanda
 
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
Laura Miller
 
Documentation of Online jobs for BCA last sem on PHP.
Documentation of Online jobs for BCA last sem on PHP.Documentation of Online jobs for BCA last sem on PHP.
Documentation of Online jobs for BCA last sem on PHP.
Harsh Tamakuwala
 
Curriculum Vitae - Ravi Gupta
Curriculum Vitae - Ravi GuptaCurriculum Vitae - Ravi Gupta
Curriculum Vitae - Ravi GuptaRavi Raman Gupta
 
The Ultimate Guide to Modern Web App Development.ppt
The Ultimate Guide to Modern Web App Development.pptThe Ultimate Guide to Modern Web App Development.ppt
The Ultimate Guide to Modern Web App Development.ppt
Asad Majeed
 
Portfolio - PROGmaatic Developer Network
Portfolio - PROGmaatic Developer NetworkPortfolio - PROGmaatic Developer Network
Portfolio - PROGmaatic Developer NetworkHabib Ullah Bahar
 
Smart buckets ppt
Smart buckets pptSmart buckets ppt
Smart buckets ppt
kiran Patel
 
Resume_Rahul_Gavade
Resume_Rahul_GavadeResume_Rahul_Gavade
Resume_Rahul_GavadeRahul Gavade
 
[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
CedCommerce
 
.Net @ Neev
.Net @ Neev.Net @ Neev
.Net @ Neev
Neev Technologies
 
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
Mike Taylor
 

Similar to vue-storefront - PWA eCommerce for Magento2 MM17NYC presentation (20)

Vue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speech
Vue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speechVue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speech
Vue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speech
 
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
 
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
 
YasirNew
YasirNewYasirNew
YasirNew
 
SADA_RESUME_With_Happ
SADA_RESUME_With_HappSADA_RESUME_With_Happ
SADA_RESUME_With_Happ
 
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
 
Documentation of Online jobs for BCA last sem on PHP.
Documentation of Online jobs for BCA last sem on PHP.Documentation of Online jobs for BCA last sem on PHP.
Documentation of Online jobs for BCA last sem on PHP.
 
NetTantra Web Development Brochure
NetTantra Web Development BrochureNetTantra Web Development Brochure
NetTantra Web Development Brochure
 
AHSAN_Mosaddek0312
AHSAN_Mosaddek0312AHSAN_Mosaddek0312
AHSAN_Mosaddek0312
 
Curriculum Vitae - Ravi Gupta
Curriculum Vitae - Ravi GuptaCurriculum Vitae - Ravi Gupta
Curriculum Vitae - Ravi Gupta
 
The Ultimate Guide to Modern Web App Development.ppt
The Ultimate Guide to Modern Web App Development.pptThe Ultimate Guide to Modern Web App Development.ppt
The Ultimate Guide to Modern Web App Development.ppt
 
Portfolio - PROGmaatic Developer Network
Portfolio - PROGmaatic Developer NetworkPortfolio - PROGmaatic Developer Network
Portfolio - PROGmaatic Developer Network
 
Smart buckets ppt
Smart buckets pptSmart buckets ppt
Smart buckets ppt
 
Resume_Rahul_Gavade
Resume_Rahul_GavadeResume_Rahul_Gavade
Resume_Rahul_Gavade
 
[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
 
NetTantra Corporate Brochure
NetTantra Corporate BrochureNetTantra Corporate Brochure
NetTantra Corporate Brochure
 
tonyzhangAv
tonyzhangAvtonyzhangAv
tonyzhangAv
 
GulabMaurya
GulabMauryaGulabMaurya
GulabMaurya
 
.Net @ Neev
.Net @ Neev.Net @ Neev
.Net @ Neev
 
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
 

More from Divante

eCommerce Trends 2020
eCommerce Trends 2020eCommerce Trends 2020
eCommerce Trends 2020
Divante
 
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
Divante
 
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 Modernbranche
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.co
Divante
 
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
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.co
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 scenarios
Divante
 
Pimcore Overview - Pimcore5
Pimcore Overview - Pimcore5Pimcore Overview - Pimcore5
Pimcore Overview - Pimcore5
Divante
 
Pimcore E-Commerce Framework - Pimcore5
Pimcore E-Commerce Framework - Pimcore5Pimcore E-Commerce Framework - Pimcore5
Pimcore E-Commerce Framework - Pimcore5
Divante
 
The biggest stores on Magento
The biggest stores on MagentoThe biggest stores on Magento
The biggest stores on Magento
Divante
 
Budgeting in SCRUM by Divante
Budgeting in SCRUM by DivanteBudgeting in SCRUM by Divante
Budgeting in SCRUM by Divante
Divante
 
Omnichannel B2B Architecture
Omnichannel B2B ArchitectureOmnichannel B2B Architecture
Omnichannel B2B Architecture
Divante
 
UX for eCommerce Fashion
UX for eCommerce FashionUX for eCommerce Fashion
UX for eCommerce Fashion
Divante
 
Microservices Architecture for e-Commerce
Microservices Architecture for e-CommerceMicroservices Architecture for e-Commerce
Microservices Architecture for e-Commerce
Divante
 
Pimcore - Presentation
Pimcore - PresentationPimcore - Presentation
Pimcore - Presentation
Divante
 
Divante eCommerce Design Studio
Divante eCommerce Design StudioDivante eCommerce Design Studio
Divante eCommerce Design Studio
Divante
 
Pimcore - Content Management System and PIM
Pimcore  - Content Management System and PIMPimcore  - Content Management System and PIM
Pimcore - Content Management System and PIM
Divante
 
Magento for Fashion
Magento for FashionMagento for Fashion
Magento for Fashion
Divante
 

More from Divante (20)

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
 
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
 
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
 
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
 
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
 
Microservices Architecture for e-Commerce
Microservices Architecture for e-CommerceMicroservices Architecture for e-Commerce
Microservices Architecture for e-Commerce
 
Pimcore - Presentation
Pimcore - PresentationPimcore - Presentation
Pimcore - Presentation
 
Divante eCommerce Design Studio
Divante eCommerce Design StudioDivante eCommerce Design Studio
Divante eCommerce Design Studio
 
Pimcore - Content Management System and PIM
Pimcore  - Content Management System and PIMPimcore  - Content Management System and PIM
Pimcore - Content Management System and PIM
 
Magento for Fashion
Magento for FashionMagento for Fashion
Magento for Fashion
 

Recently uploaded

How to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptxHow to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptx
Gal Baras
 
The+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptxThe+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptx
laozhuseo02
 
BASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptxBASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptx
natyesu
 
This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!
nirahealhty
 
Living-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptx
Living-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptxLiving-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptx
Living-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptx
TristanJasperRamos
 
Output determination SAP S4 HANA SAP SD CC
Output determination SAP S4 HANA SAP SD CCOutput determination SAP S4 HANA SAP SD CC
Output determination SAP S4 HANA SAP SD CC
ShahulHameed54211
 
test test test test testtest test testtest test testtest test testtest test ...
test test  test test testtest test testtest test testtest test testtest test ...test test  test test testtest test testtest test testtest test testtest test ...
test test test test testtest test testtest test testtest test testtest test ...
Arif0071
 
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
3ipehhoa
 
guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...
Rogerio Filho
 
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
3ipehhoa
 
Latest trends in computer networking.pptx
Latest trends in computer networking.pptxLatest trends in computer networking.pptx
Latest trends in computer networking.pptx
JungkooksNonexistent
 
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shopHistory+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
laozhuseo02
 
1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...
JeyaPerumal1
 
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
3ipehhoa
 
ER(Entity Relationship) Diagram for online shopping - TAE
ER(Entity Relationship) Diagram for online shopping - TAEER(Entity Relationship) Diagram for online shopping - TAE
ER(Entity Relationship) Diagram for online shopping - TAE
Himani415946
 
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesMulti-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Sanjeev Rampal
 

Recently uploaded (16)

How to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptxHow to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptx
 
The+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptxThe+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptx
 
BASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptxBASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptx
 
This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!
 
Living-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptx
Living-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptxLiving-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptx
Living-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptx
 
Output determination SAP S4 HANA SAP SD CC
Output determination SAP S4 HANA SAP SD CCOutput determination SAP S4 HANA SAP SD CC
Output determination SAP S4 HANA SAP SD CC
 
test test test test testtest test testtest test testtest test testtest test ...
test test  test test testtest test testtest test testtest test testtest test ...test test  test test testtest test testtest test testtest test testtest test ...
test test test test testtest test testtest test testtest test testtest test ...
 
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
 
guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...
 
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
 
Latest trends in computer networking.pptx
Latest trends in computer networking.pptxLatest trends in computer networking.pptx
Latest trends in computer networking.pptx
 
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shopHistory+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
 
1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...
 
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
 
ER(Entity Relationship) Diagram for online shopping - TAE
ER(Entity Relationship) Diagram for online shopping - TAEER(Entity Relationship) Diagram for online shopping - TAE
ER(Entity Relationship) Diagram for online shopping - TAE
 
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesMulti-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
 

vue-storefront - PWA eCommerce for Magento2 MM17NYC presentation

  • 1. vue-storefront Progressive, mobile first, offline second eCommerce web app Piotr Karwatka, CTO of Divante
  • 2. Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer non erat dui. Nam faucibus efficitur euismod. Cras ornare mi nibh, id commodo lorem maximus vitae. Vivamus ac ligula non turpis ultrices ornare at eget ipsum. eBusiness Software House operating since 2008 150 people at our office in Wroclaw, Poland Clients from Europe, Asia, Africa and the US Within your reach: 1.5h flight from London, Berlin, Oslo, Amsterdam, Paris SCRUM methodology ensuring high quality and flexible approach to the business requirements Case studies: divante.co/case-studies 2
  • 3. 3 The Agenda 1. eCommerce - what’s wrong with you? 2. Progressive Web Apps - what’s all about? 3. Project Goals 4. Design Challenges 5. Architecture 6. Framework 7. Key Concepts in practice a. PRPL & SSR b. Service Workers c. Platform agnostic / NoSQL backend d. Microservices 8. Tooling 9. Join us as Contributor! vue-storefront is an open source (MIT) project powered by cool, open source technologies:
  • 4. 1eCommerce - what’s wrong with you?
  • 5. not suited for mobile not stable during peaks not effecitve with poor internet connection long time2market eCommerces right now
  • 7. 7 Progressive Web Apps Best features of Mobile App (UX) and Web (Distribution) combined • Offline readiness - app can be used without internet access, • Mobile-first / Responsive - speed, ui, animations, push notifications, Fit any form factor: desktop, mobile, tablet. Can be added to Home screen with zero install and no app store submission, • Linkable - Easily shared via a URL and do not require complex installation • Re-engageable - Make re-engagement easy through features like push notifications. Key building blocks - ES2015/2016, IndexedDb, - Service Workers (check https://serviceworke.rs/ for recipes), - Techniques: PRPL, SSR, - Reactive frameworks (React, Vue, Polymer …) - Tooling: Webpack, Lighthouse, Supported by: Chrome, Samsung, Microsoft, Apple, Opera (https://jakearchibald.github.io/isserviceworkerready/) ● Lancôme rebuilds their mobile website as a PWA, increases conversions 17%; ● Jumia sees 33% increase in conversion rate, 12X more users on PWA; ● Alibaba.com increases conversions on the mobile web by 76% with PWA; ● Housing.com increases lowers bounce rate by 40% with new PWA; ● Forbes, OLX, Twitter cases. Source: https://www.quora.com/What-are-the-advantages-and-disadvantages-of-Progressi ve-Web-Apps-over-Native-Apps
  • 8. 8 Progressive Web Apps Best features of Mobile App (UX) and Web (Distribution) combined • Offline readiness - app can be used without internet access, • Mobile-first / Responsive - speed, ui, animations, push notifications, Fit any form factor: desktop, mobile, tablet. Can be added to Home screen with zero install and no app store submission, • Linkable - Easily shared via a URL and do not require complex installation • Re-engageable - Make re-engagement easy through features like push notifications. Key building blocks - ES2015/2016, IndexedDb, - Service Workers (check https://serviceworke.rs/ for recipes), - Techniques: PRPL, SSR, - Reactive frameworks (React, Vue, Polymer …) - Tooling: Webpack, Lighthouse, Supported by: Chrome, Samsung, Microsoft, Apple, Opera (https://jakearchibald.github.io/isserviceworkerready/) ● Lancôme rebuilds their mobile website as a PWA, increases conversions 17%; ● Jumia sees 33% increase in conversion rate, 12X more users on PWA; ● Alibaba.com increases conversions on the mobile web by 76% with PWA; ● Housing.com increases lowers bounce rate by 40% with new PWA; ● Forbes, OLX, Twitter cases. Source: https://addyosmani.com/blog/getting-started-with-progressive-web-apps/
  • 10. 10 Project Goals To create fault-tolerant, bleeding edge, progressive eCommerce app. And have fun. Lot of fun in the process :) • Fault-tolerant, 100% offline, Black-Friday ready :) Because this storefront can be run without alive web-server (offline mode) there is no such traffic peak that can stop users from making orders. • Progressive We aimed at giving user full benefits of Progressive Web App - with all this push notifications, service workers, native experience etc. • Blazing fast It should render at no time. Always. • Platform agnostic You should be able to work with Magento2, Shopify Plus, Pimcore, <You name it> platform of choice as CMS. • Always Open Source (MIT) The project is broad. We believe in Open Source and that success is possible only when more than one company will contribute. • Bleeding edge, scalable technology ES2016, Node.js, Vue.js, Elastic More on our motivation: https://www.linkedin.com/pulse/magento2-nosql-database-pwa-support-piotr-ka rwatka/ https://github.com/DivanteLtd/vue-storefront
  • 12. 12 Design Challenges For the prototype we decided to design PWA for a fashion brand • Figma We used Figma for its collaboration features to design the mockups (designs will be also MIT licensed), with grid, mobile interactions • UX Challenges ○ Payments while offline? ○ Stock quantities while offline? ○ Seamless experience on many devices, ○ Cart/dynamic promo rules, ○ ... • 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. Read more: https://www.linkedin.com/pulse/designing-pwa-ecommerce-karl-bzik/
  • 14. 14 Architecture Loose Coupling, Microservices, Horizontally scalable • vue-storefront is Vue.js eCommerce frontend It doesn’t require any database support (server side), it’s Webpack app which can be statically rendered (SSR) and served even from CDN, • vue-storefront-api is Express.js backend It uses Elastic as data store (NoSQL) and serves all the products, categories, order history, accounts (oauth2) for the frontend, then it sends orders and other data back to eCommerce CMS of choice, • mage2nosql is a tool :-) … for synchronizing Magento (and any given platform via switchable adapters) to Elastic OR MongoDB database. Supports products, categories, product-to-category links so far.
  • 15. 15 Architecture Loose Coupling, Microservices, Horizontally scalable • vue-storefront is Vue.js eCommerce frontend It doesn’t require any database support (server side), it’s Webpack app which can be statically rendered (SSR) and served even from CDN, • vue-storefront-api is Express.js backend It uses Elastic as data store (NoSQL) and serves all the products, categories, order history, accounts (oauth2) for the frontend, then it sends orders and other data back to eCommerce CMS of choice, • mage2nosql is a tool :-) … for synchronizing Magento (and any given platform via switchable adapters) to Elastic OR MongoDB database. Supports products, categories, product-to-category links so far. Key technologies: - Redis for kue queues (order sync 2 eCommerce) and for cache, every batch operation base on queues and can be run in parallel, - Service Workers with AppCache for caching data (offline support) and for queueing orders to backend (while offline), - Elastic as a master data store for data that can be synchronized, - Node.js multi process workers to sync data, - REST/API interactions with 3rd party systems (like Magento).
  • 17. 17 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 ...
  • 18. 18 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 ...
  • 19. 19 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 ...
  • 20. 7Key concepts in practice
  • 21. 21 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.jsfor standard SPA and server-entry.jsfor 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)
  • 22. 22 Service Workers Caching/proxy layer + background jobs • 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-notification s/) • 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
  • 23. 23 Service Workers Caching/proxy layer + background jobs • 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-notification s/) • 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.
  • 24. 24 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-apiproject 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)
  • 25. 25 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-apiproject 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)
  • 26. 26 Microservices Not everything is suitable for being synchronized offline • 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.
  • 27. 27 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.
  • 28. not suited for mobile not stable during peaks not effecitve with poor internet connection long time2market eCommerces right now RWD, mobile-first approach, PWA Caching, Vue.js Data caching, NoSQL database, PWA with Service Workers Vue, developer-friendly approach, good documentation Local Forage data caching, Vue.js, NoSQL database
  • 31. 31 Divante Sp. z o.o. Dmowskiego 17 Street 50-203 Wrocław +48 516 184 153pkarwatka@divante.co www.divante.co Become a contributor! contributors@divante.co