SlideShare a Scribd company logo
1 of 12
Download to read offline
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

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_jsMohammed Saqib
 
Developing For The Web
Developing For The WebDeveloping For The Web
Developing For The Webaleemb
 
Mercado Libre Case Study
Mercado Libre Case StudyMercado Libre Case Study
Mercado Libre Case StudyVMware Tanzu
 
Front end web & app development
Front end web & app developmentFront end web & app development
Front end web & app developmentTarannum shaikh
 
COMP6210 Web Services And Design Methodologies.docx
COMP6210 Web Services And Design Methodologies.docxCOMP6210 Web Services And Design Methodologies.docx
COMP6210 Web Services And Design Methodologies.docxwrite31
 
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_.pptx75waytechnologies
 
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.pdfsarah david
 
Industrial Training.pptx
Industrial Training.pptxIndustrial Training.pptx
Industrial Training.pptxSamraatBansal1
 
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.pdfLaura Miller
 
porchelvans_DigitalM
porchelvans_DigitalMporchelvans_DigitalM
porchelvans_DigitalMporchelvan 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 BadgerReact 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 CharyparReact 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
 

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

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 

Recently uploaded (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 

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