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

PDF
Tools & tricks for testing React applications
PPTX
Hshsbdnxnfjfhhffbhdhhxhfhfjfhfhfhdjjdjdhfjjffjfj
PDF
Camerjam mobile for the cultural sector tesco
PDF
How we improved performance at Mixbook
PPTX
Tesco\'s Journey into Mobile Commerce
PPTX
amazon-cloneeeeeeeeeeeeeeeeeee pptd.pptx
PPTX
40 Sumit Negi.pptx
PPTX
Tesco international global marketing
Tools & tricks for testing React applications
Hshsbdnxnfjfhhffbhdhhxhfhfjfhfhfhdjjdjdhfjjffjfj
Camerjam mobile for the cultural sector tesco
How we improved performance at Mixbook
Tesco\'s Journey into Mobile Commerce
amazon-cloneeeeeeeeeeeeeeeeeee pptd.pptx
40 Sumit Negi.pptx
Tesco international global marketing

More from React London Community (6)

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

Recently uploaded (20)

PDF
Machine learning based COVID-19 study performance prediction
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Mushroom cultivation and it's methods.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Tartificialntelligence_presentation.pptx
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
Getting Started with Data Integration: FME Form 101
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Heart disease approach using modified random forest and particle swarm optimi...
Machine learning based COVID-19 study performance prediction
Mobile App Security Testing_ A Comprehensive Guide.pdf
Spectral efficient network and resource selection model in 5G networks
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Unlocking AI with Model Context Protocol (MCP)
Diabetes mellitus diagnosis method based random forest with bat algorithm
Accuracy of neural networks in brain wave diagnosis of schizophrenia
NewMind AI Weekly Chronicles - August'25-Week II
Assigned Numbers - 2025 - Bluetooth® Document
Mushroom cultivation and it's methods.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
A comparative study of natural language inference in Swahili using monolingua...
Network Security Unit 5.pdf for BCA BBA.
Tartificialntelligence_presentation.pptx
OMC Textile Division Presentation 2021.pptx
Getting Started with Data Integration: FME Form 101
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Heart disease approach using modified random forest and particle swarm optimi...
Ad

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