SlideShare a Scribd company logo
Tesco International
Grocery Home Shopping
and React.js
@stuartharris
Tesco and React
Tesco is the world’s third largest retailer,
handling half the world’s online grocery
shopping.
React has transformed UI engineering at Tesco
and helped the retailer build large scale
isomorphic applications that are fast to run and
quick to build.
Committed to providing great UX
Tesco have great product designers that are
capable of amazing UX and visual design.
It’s crucial that we use the right tools to realise
this for their customers.
International Grocery Home Shopping
Poland, Hungary, Czech Republic, Slovakia,
Turkey, Thailand, Malaysia
● Brand
● Language
● Currency
● Timezone
● Feature switching
● Legal requirements
Isomorphic
SEO
Non JS
Fast first page load
Multiple isomorphic Single Page Applications
Presented as one
Demo
The journey
1. pre-Flux, setState()
2. Flux, own implementation
3. Flux, FB implementation
4. Immutable data
5. Cursors over immutable global application
state
6. Reflex
7. Relay + GraphQL
The problems
Multiple ‘pages’
● smaller, contained state
● easier to reason about
● less risk of memory leaks
● less need for ajax
● but less interactive
● config and translations
goal: Single Page Isomorphic
What we use
LiveScript => ES6+JSX with Babel
React.js 0.10 => 0.11 => 0.12.2 => 0.13.1
Flux homegrown => 2.0.1
Immutable.js
page.js (+ monorouter) => React Router
browserify => webpack (including component hot-loading)
i18next => node-polyglot
request => superagent => fetch
Jest => jasmine/mocha + testutils + jsdom/cheerio
(cucumber-js => cucumber/capybara) with webdriver
Some code
What we have learned
Don’t need to deliver JS to old engines
Don’t have a global dispatcher (it’ll leak on server)
Go with the flow (ES6/JSX, React Router)
Smaller more focused components
More use of context to
Where to now?
Single Page isomorphic app
Wrap components in containers for increased portability
Component composition over mixins
Continuous delivery using docker containers
Share parts of the application with React Native apps

More Related Content

Similar to Building the worlds largest grocery shopping site with React

Resume
ResumeResume
Resume
Ken Leong
 
Would React js Remain To Prevail in 2019?
Would React js Remain To Prevail in 2019?Would React js Remain To Prevail in 2019?
Would React js Remain To Prevail in 2019?
Mobiloitte
 
Introduction to backbone_js
Introduction to backbone_jsIntroduction to backbone_js
Introduction to backbone_js
Mohammed Saqib
 
Project Proposel Documentation
Project Proposel  DocumentationProject Proposel  Documentation
Project Proposel Documentation
Abid Afsar Khan Malang Falsafi
 
Developing For The Web
Developing For The WebDeveloping For The Web
Developing For The Web
aleemb
 
Mercado Libre Case Study
Mercado Libre Case StudyMercado Libre Case Study
Mercado Libre Case Study
VMware Tanzu
 
Front end web & app development
Front end web & app developmentFront end web & app development
Front end web & app development
Tarannum shaikh
 
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJSMicro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
KNOWARTH - Software Development Company
 
COMP6210 Web Services And Design Methodologies.docx
COMP6210 Web Services And Design Methodologies.docxCOMP6210 Web Services And Design Methodologies.docx
COMP6210 Web Services And Design Methodologies.docx
write31
 
Universal apps lightning talk
Universal apps lightning talk Universal apps lightning talk
Universal apps lightning talk
Elyse Kolker Gordon
 
Java-J2ee_Resume
Java-J2ee_ResumeJava-J2ee_Resume
Java-J2ee_Resume
Rajesh Kumar
 
Vue Or React - Which One is the Best_.pptx
Vue Or React - Which One is the Best_.pptxVue Or React - Which One is the Best_.pptx
Vue Or React - Which One is the Best_.pptx
75waytechnologies
 
Mern Stack App Development: What Does the Future Hold?
Mern Stack App Development: What Does the Future Hold?Mern Stack App Development: What Does the Future Hold?
Mern Stack App Development: What Does the Future Hold?
Pixel Crayons
 
why_choose_react_js_development_for_building_websites_in_2023.pdf
why_choose_react_js_development_for_building_websites_in_2023.pdfwhy_choose_react_js_development_for_building_websites_in_2023.pdf
why_choose_react_js_development_for_building_websites_in_2023.pdf
sarah david
 
React.js + azure signal r
React.js  + azure signal r React.js  + azure signal r
React.js + azure signal r
Miguel Angel Teheran Garcia
 
Industrial Training.pptx
Industrial Training.pptxIndustrial Training.pptx
Industrial Training.pptx
SamraatBansal1
 
Web summit.pptx
Web summit.pptxWeb summit.pptx
Web summit.pptx
171SagnikRoy
 
AJAX vs. jQuery What Are The Differences.pdf
AJAX vs. jQuery What Are The Differences.pdfAJAX vs. jQuery What Are The Differences.pdf
AJAX vs. jQuery What Are The Differences.pdf
Laura Miller
 
PykQuery.js
PykQuery.jsPykQuery.js
PykQuery.js
Ritvvij Parrikh
 
porchelvans_DigitalM
porchelvans_DigitalMporchelvans_DigitalM
porchelvans_DigitalM
porchelvan s
 

Similar to Building the worlds largest grocery shopping site with React (20)

Resume
ResumeResume
Resume
 
Would React js Remain To Prevail in 2019?
Would React js Remain To Prevail in 2019?Would React js Remain To Prevail in 2019?
Would React js Remain To Prevail in 2019?
 
Introduction to backbone_js
Introduction to backbone_jsIntroduction to backbone_js
Introduction to backbone_js
 
Project Proposel Documentation
Project Proposel  DocumentationProject Proposel  Documentation
Project Proposel Documentation
 
Developing For The Web
Developing For The WebDeveloping For The Web
Developing For The Web
 
Mercado Libre Case Study
Mercado Libre Case StudyMercado Libre Case Study
Mercado Libre Case Study
 
Front end web & app development
Front end web & app developmentFront end web & app development
Front end web & app development
 
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJSMicro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
 
COMP6210 Web Services And Design Methodologies.docx
COMP6210 Web Services And Design Methodologies.docxCOMP6210 Web Services And Design Methodologies.docx
COMP6210 Web Services And Design Methodologies.docx
 
Universal apps lightning talk
Universal apps lightning talk Universal apps lightning talk
Universal apps lightning talk
 
Java-J2ee_Resume
Java-J2ee_ResumeJava-J2ee_Resume
Java-J2ee_Resume
 
Vue Or React - Which One is the Best_.pptx
Vue Or React - Which One is the Best_.pptxVue Or React - Which One is the Best_.pptx
Vue Or React - Which One is the Best_.pptx
 
Mern Stack App Development: What Does the Future Hold?
Mern Stack App Development: What Does the Future Hold?Mern Stack App Development: What Does the Future Hold?
Mern Stack App Development: What Does the Future Hold?
 
why_choose_react_js_development_for_building_websites_in_2023.pdf
why_choose_react_js_development_for_building_websites_in_2023.pdfwhy_choose_react_js_development_for_building_websites_in_2023.pdf
why_choose_react_js_development_for_building_websites_in_2023.pdf
 
React.js + azure signal r
React.js  + azure signal r React.js  + azure signal r
React.js + azure signal r
 
Industrial Training.pptx
Industrial Training.pptxIndustrial Training.pptx
Industrial Training.pptx
 
Web summit.pptx
Web summit.pptxWeb summit.pptx
Web summit.pptx
 
AJAX vs. jQuery What Are The Differences.pdf
AJAX vs. jQuery What Are The Differences.pdfAJAX vs. jQuery What Are The Differences.pdf
AJAX vs. jQuery What Are The Differences.pdf
 
PykQuery.js
PykQuery.jsPykQuery.js
PykQuery.js
 
porchelvans_DigitalM
porchelvans_DigitalMporchelvans_DigitalM
porchelvans_DigitalM
 

More from React London Community

Meet Microplatforms. Stuart Harris, Red Badger
Meet Microplatforms. Stuart Harris, Red BadgerMeet Microplatforms. Stuart Harris, Red Badger
Meet Microplatforms. Stuart Harris, Red Badger
React London Community
 
React for non techies
React for non techiesReact for non techies
React for non techies
React London Community
 
London React August - GraphQL at The Financial Times - Viktor Charypar
London React August - GraphQL at The Financial Times - Viktor CharyparLondon React August - GraphQL at The Financial Times - Viktor Charypar
London React August - GraphQL at The Financial Times - Viktor Charypar
React London Community
 
React London April- Fully functional: Central state is a great fit for React ...
React London April- Fully functional: Central state is a great fit for React ...React London April- Fully functional: Central state is a great fit for React ...
React London April- Fully functional: Central state is a great fit for React ...
React London Community
 
London React April- r3t & a11y : This is for everyone , Shaun Dunne.
London React April-  r3t & a11y : This is for everyone , Shaun Dunne.London React April-  r3t & a11y : This is for everyone , Shaun Dunne.
London React April- r3t & a11y : This is for everyone , Shaun Dunne.
React London Community
 
Isomorphic react in real life
Isomorphic react in real lifeIsomorphic react in real life
Isomorphic react in real life
React London Community
 

More from React London Community (6)

Meet Microplatforms. Stuart Harris, Red Badger
Meet Microplatforms. Stuart Harris, Red BadgerMeet Microplatforms. Stuart Harris, Red Badger
Meet Microplatforms. Stuart Harris, Red Badger
 
React for non techies
React for non techiesReact for non techies
React for non techies
 
London React August - GraphQL at The Financial Times - Viktor Charypar
London React August - GraphQL at The Financial Times - Viktor CharyparLondon React August - GraphQL at The Financial Times - Viktor Charypar
London React August - GraphQL at The Financial Times - Viktor Charypar
 
React London April- Fully functional: Central state is a great fit for React ...
React London April- Fully functional: Central state is a great fit for React ...React London April- Fully functional: Central state is a great fit for React ...
React London April- Fully functional: Central state is a great fit for React ...
 
London React April- r3t & a11y : This is for everyone , Shaun Dunne.
London React April-  r3t & a11y : This is for everyone , Shaun Dunne.London React April-  r3t & a11y : This is for everyone , Shaun Dunne.
London React April- r3t & a11y : This is for everyone , Shaun Dunne.
 
Isomorphic react in real life
Isomorphic react in real lifeIsomorphic react in real life
Isomorphic react in real life
 

Recently uploaded

Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Jeffrey Haguewood
 
Operating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptxOperating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptx
Pravash Chandra Das
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
fredae14
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
Shinana2
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
alexjohnson7307
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 

Recently uploaded (20)

Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
 
Operating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptxOperating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptx
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 

Building the worlds largest grocery shopping site with React

  • 1. Tesco International Grocery Home Shopping and React.js @stuartharris
  • 2. Tesco and React Tesco is the world’s third largest retailer, handling half the world’s online grocery shopping. React has transformed UI engineering at Tesco and helped the retailer build large scale isomorphic applications that are fast to run and quick to build.
  • 3. Committed to providing great UX Tesco have great product designers that are capable of amazing UX and visual design. It’s crucial that we use the right tools to realise this for their customers.
  • 4. International Grocery Home Shopping Poland, Hungary, Czech Republic, Slovakia, Turkey, Thailand, Malaysia ● Brand ● Language ● Currency ● Timezone ● Feature switching ● Legal requirements
  • 5. Isomorphic SEO Non JS Fast first page load Multiple isomorphic Single Page Applications Presented as one
  • 7. The journey 1. pre-Flux, setState() 2. Flux, own implementation 3. Flux, FB implementation 4. Immutable data 5. Cursors over immutable global application state 6. Reflex 7. Relay + GraphQL
  • 8. The problems Multiple ‘pages’ ● smaller, contained state ● easier to reason about ● less risk of memory leaks ● less need for ajax ● but less interactive ● config and translations goal: Single Page Isomorphic
  • 9. What we use LiveScript => ES6+JSX with Babel React.js 0.10 => 0.11 => 0.12.2 => 0.13.1 Flux homegrown => 2.0.1 Immutable.js page.js (+ monorouter) => React Router browserify => webpack (including component hot-loading) i18next => node-polyglot request => superagent => fetch Jest => jasmine/mocha + testutils + jsdom/cheerio (cucumber-js => cucumber/capybara) with webdriver
  • 11. What we have learned Don’t need to deliver JS to old engines Don’t have a global dispatcher (it’ll leak on server) Go with the flow (ES6/JSX, React Router) Smaller more focused components More use of context to
  • 12. Where to now? Single Page isomorphic app Wrap components in containers for increased portability Component composition over mixins Continuous delivery using docker containers Share parts of the application with React Native apps