SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

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 successfulDivante
 
Omnichannel - 5 success factors
Omnichannel - 5 success factorsOmnichannel - 5 success factors
Omnichannel - 5 success factorsDivante
 
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 CaseBigCommerce
 
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 eBusinessDivante
 
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 ExperienceCA 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 DivanteDivante
 
E-Commerce Case Studies
E-Commerce Case StudiesE-Commerce Case Studies
E-Commerce Case StudiesDivante
 
Omnichannel Architecture - OroCRM, PimCore, Magento
Omnichannel Architecture - OroCRM, PimCore, MagentoOmnichannel Architecture - OroCRM, PimCore, Magento
Omnichannel Architecture - OroCRM, PimCore, MagentoDivante
 
Programming languages used for ecommerce development
Programming languages used for ecommerce developmentProgramming languages used for ecommerce development
Programming languages used for ecommerce developmentEmma Jhonson
 
Ism ecompany ecommerce software comparison
Ism ecompany  ecommerce software comparisonIsm ecompany  ecommerce software comparison
Ism ecompany ecommerce software comparisonvalantic 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 CloudVarunNehra
 
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 businessesWebConnect Pvt Ltd
 
B2B Magento vs. Hybris
B2B Magento vs. HybrisB2B Magento vs. Hybris
B2B Magento vs. HybrisUrszula 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 RetailingMeet 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
 

Was ist angesagt? (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...
 

Andere mochten auch

Require js and Magento2
Require js and Magento2Require js and Magento2
Require js and Magento2Irene 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 PHPSTORMAndra 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 fly2Mage Titans ES
 
Magento2 Varnish Integration | Magento2 Speed & Optimization
Magento2 Varnish Integration | Magento2 Speed & OptimizationMagento2 Varnish Integration | Magento2 Speed & Optimization
Magento2 Varnish Integration | Magento2 Speed & OptimizationWebkul Software Pvt. Ltd.
 
Magento2 Search insights by Klevu
Magento2 Search insights by KlevuMagento2 Search insights by Klevu
Magento2 Search insights by KlevuDivante
 

Andere mochten auch (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
 

Ähnlich wie 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 speechDivante
 
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 2018Bhavesh 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.pdfLaura 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.pptAsad 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 pptkiran 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 StudioCedCommerce
 
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
 

Ähnlich wie 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
 

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

Mehr von 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
 

Kürzlich hochgeladen

2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge GraphsEleniIlkou
 
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...SUHANI PANDEY
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...tanu pandey
 
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
 
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445ruhi
 
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...tanu pandey
 
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...SUHANI PANDEY
 
Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...
Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...
Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...SUHANI PANDEY
 
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...Neha Pandey
 
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...SUHANI PANDEY
 
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.soniya singh
 
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...Escorts Call Girls
 
Real Escorts in Al Nahda +971524965298 Dubai Escorts Service
Real Escorts in Al Nahda +971524965298 Dubai Escorts ServiceReal Escorts in Al Nahda +971524965298 Dubai Escorts Service
Real Escorts in Al Nahda +971524965298 Dubai Escorts ServiceEscorts Call Girls
 
Microsoft Azure Arc Customer Deck Microsoft
Microsoft Azure Arc Customer Deck MicrosoftMicrosoft Azure Arc Customer Deck Microsoft
Microsoft Azure Arc Customer Deck MicrosoftAanSulistiyo
 
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
 
Pirangut | Call Girls Pune Phone No 8005736733 Elite Escort Service Available...
Pirangut | Call Girls Pune Phone No 8005736733 Elite Escort Service Available...Pirangut | Call Girls Pune Phone No 8005736733 Elite Escort Service Available...
Pirangut | Call Girls Pune Phone No 8005736733 Elite Escort Service Available...SUHANI PANDEY
 

Kürzlich hochgeladen (20)

6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
 
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
Russian Call Girls in %(+971524965298  )#  Call Girls in DubaiRussian Call Girls in %(+971524965298  )#  Call Girls in Dubai
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
 
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
 
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
 
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
 
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
 
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...
 
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
 
Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...
Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...
Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...
 
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
 
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
 
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
 
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
 
Real Escorts in Al Nahda +971524965298 Dubai Escorts Service
Real Escorts in Al Nahda +971524965298 Dubai Escorts ServiceReal Escorts in Al Nahda +971524965298 Dubai Escorts Service
Real Escorts in Al Nahda +971524965298 Dubai Escorts Service
 
Microsoft Azure Arc Customer Deck Microsoft
Microsoft Azure Arc Customer Deck MicrosoftMicrosoft Azure Arc Customer Deck Microsoft
Microsoft Azure Arc Customer Deck Microsoft
 
📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱
📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱
📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱
 
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
 
Pirangut | Call Girls Pune Phone No 8005736733 Elite Escort Service Available...
Pirangut | Call Girls Pune Phone No 8005736733 Elite Escort Service Available...Pirangut | Call Girls Pune Phone No 8005736733 Elite Escort Service Available...
Pirangut | Call Girls Pune Phone No 8005736733 Elite Escort Service Available...
 
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
 

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