SlideShare a Scribd company logo
© ABL - The Problem Solver 1
Building large and
scalable mission critical
applications with React
Maurice de Beijer - @mauricedb
Topics
 JavaScript versusTypeScript
 Hosting
 Test-driven development
 API types and updates
 GitWorkflow
 Feature Flags
 Runtime errors
© ABL - The Problem Solver 3
Opinions
Ahead 
© ABL - The Problem Solver 4
Swiss
Cheese
Model
© ABL - The Problem Solver 5
 Maurice de Beijer
 The Problem Solver
 Microsoft MVP
 Freelance lead/developer/instructor
 Twitter: @mauricedb
 Web: http://www.TheProblemSolver.nl
 E-mail: maurice.de.beijer@gmail.com
6
© ABL - The Problem Solver
The React
Newsletter
© ABL - The Problem Solver 7
JavaScript versusTypeScript
© ABL - The Problem Solver 8
TypeScript
© ABL - The Problem Solver 9
Language
features
 Type Unions
 Tuples
 OptionalChaining
 Nullish Coalescing operator
© ABL - The Problem Solver 10
JS Doc  Annotate your JavaScript with JS Doc types
 If you made the mistake of not starting withTypeScript 
© ABL - The Problem Solver 11
MappedTypes
 type RT = Readonly<T>
 type PT = Partial<T>
 type MyProps = React.ComponentProps<typeof MyComponent>
 type Returns = ReturnType<typeof someFunction>;
 type Args = Parameters<typeof someFunction>
© ABL - The Problem Solver 12
ES Modules  Named imports instead of import default
 Better with tooling and discoverability
© ABL - The Problem Solver 13
React and
import default
© ABL - The Problem Solver 14
ESBuild
© ABL - The Problem Solver 15
Hosting the front-end
During development
© ABL - The Problem Solver 16
Vite
© ABL - The Problem Solver 17
Hosting the front-end
In production
© ABL - The Problem Solver 18
Azure Blob
Storage
© ABL - The Problem Solver 19
AzureCDN
© ABL - The Problem Solver 20
Routing Rules
© ABL - The Problem Solver 21
Deploy
From
GitHub
© ABL - The Problem Solver 22
Test-Driven Development
© ABL - The Problem Solver 23
The traditional
testing
pyramid
Manual
End to End
Integration testing
Unit testing
Both windows
are fine
Source
A sturdy latch
Source
A better
testing
pyramid for
the web
Manual
End to End
Integration testing
Unit testing
Cypress
© ABL - The Problem Solver 28
Testing
Front & Back
End
© ABL - The Problem Solver 29
Intercepting
AJAX
Requests
© ABL - The Problem Solver 30
APITypes andUpdates
© ABL - The Problem Solver 31
OpenAPI
© ABL - The Problem Solver 32
Swashbuckle
for the
Azure Function
© ABL - The Problem Solver 33
NSwag
Generates
TypeScript
Interfaces
© ABL - The Problem Solver 34
APIVersion
© ABL - The Problem Solver 35
Required
ValueTypes
© ABL - The Problem Solver 36
ValidateAPI
 Validate all data that crosses an external boundary
 User input
 Data from an API
© ABL - The Problem Solver 37
Type Mapping
© ABL - The Problem Solver 38
Long living
clients
 Some users never close their browser
 The same old version of the SPA can remain active
 Even when a newer version is available on the server
 Send the client version the server with each AJAX request
© ABL - The Problem Solver 39
Checking the
version
© ABL - The Problem Solver 40
AJAX requests
 The public internet is unreliable
 Some requests will fail for random reasons
 Use a retry policy to handle network errors
© ABL - The Problem Solver 41
Retry Policy
© ABL - The Problem Solver 42
Workflow
© ABL - The Problem Solver 43
Workflow
 Use short-lived Git feature branches
 A few hours at most
 Hide new or risky code behind a feature flag
 Initially only available for developers/testers
© ABL - The Problem Solver 44
Release
Strategy
 Release new features to a subset of users first
 Fast Ring with user opt in
 Percentage of users
 One or more companies
 One or more regions/countries
© ABL - The Problem Solver 45
Feature Flags
© ABL - The Problem Solver 46
Feature Flags
 A simple feature flag system is not hard
 But can become quite elaborate
 Consider using a service like Azure App Configuration
 Or a service like LaunchDarkly
© ABL - The Problem Solver 47
Azure
Configuration
Function
© ABL - The Problem Solver 48
React
Configuration
Provider
© ABL - The Problem Solver 49
Conditional
Rendering
© ABL - The Problem Solver 50
Runtime errors
© ABL - The Problem Solver 51
Runtime errors
 Runtime errors need to be tracked
 There is no code without bugs 
 Features like LocalStorage will be disabled for some users
 Services like Azure Application Insights or Sentry.io works well
 Tracks unhandled exceptions
 Add an Error Boundary and track component errors
© ABL - The Problem Solver 52
Runtime errors
© ABL - The Problem Solver 53
Application
Insights
© ABL - The Problem Solver 54
Application
Insights
© ABL - The Problem Solver 55
Conclusion
 TypeScript is a must have
 For any serious development
 Use BLOB storage & CDN
 Easy, fast and cheap hosting
 Test-driven development prevents bugs
 Use an End to End tool like Cypress
 API types and updates
 Automate the client types
 Always validate the incoming data
 Workflow
 Use small and very short lived branches
 Use feature flags to hide new code in production
 Runtime errors will happen
 Make sure you track them
© ABL - The Problem Solver 56
Maurice de Beijer
@mauricedb
maurice.de.beijer
@gmail.com
© ABL - The Problem Solver 57

More Related Content

What's hot (20)

PPTX
Modern software testing and processes 2019
Karim Fanadka
 
PDF
Virtual Dreamin Salesforce DevOps Top 10
Richard Clark
 
PDF
Alexey Kupriyanenko "Release Early, Often, Stable"
Fwdays
 
PDF
140 releases per month
Manuel Vacelet
 
PDF
Feature Toggle
Bryan Liu
 
PDF
Tests for Every Branch Using CircleCI and Sauce Labs to Continuously Test CS ...
Sauce Labs
 
PDF
Angular2 Upgrade
WealthBar Financial Services
 
PPTX
Unit Testing Asp.net and Asp.net MVC
Gil Zilberfeld
 
PDF
How to Build Single Page HTML5 Apps that Scale
Phil Leggetter
 
PDF
Amsterdam JUG - Continuous performance
Bert Jan Schrijver
 
PDF
Codemotion tech pills - Continuous performance
Bert Jan Schrijver
 
PDF
Canadian Cloud Summit 2022 - SharePoint Framework Tests Introduction
Laurent Sittler
 
PDF
Test & Dynamics CRM - extremeCRM Berlin 2012
Wael Hamze
 
PDF
Patterns of a "Good" Test Automation Framework, Locators & Data
Agile Testing Alliance
 
PDF
Rspec and Capybara Intro Tutorial at RailsConf 2013
Brian Sam-Bodden
 
PPTX
Using REST with VSTS and TFS
Jeff Bramwell
 
PPTX
Feature toggles
Anand Agrawal
 
PDF
Continuous Delivery for Dynamics 365/CRM
Wael Hamze
 
PPTX
Building Extensions in VSTS and TFS
Jeff Bramwell
 
PDF
Introduction cypress
Oim Trust
 
Modern software testing and processes 2019
Karim Fanadka
 
Virtual Dreamin Salesforce DevOps Top 10
Richard Clark
 
Alexey Kupriyanenko "Release Early, Often, Stable"
Fwdays
 
140 releases per month
Manuel Vacelet
 
Feature Toggle
Bryan Liu
 
Tests for Every Branch Using CircleCI and Sauce Labs to Continuously Test CS ...
Sauce Labs
 
Unit Testing Asp.net and Asp.net MVC
Gil Zilberfeld
 
How to Build Single Page HTML5 Apps that Scale
Phil Leggetter
 
Amsterdam JUG - Continuous performance
Bert Jan Schrijver
 
Codemotion tech pills - Continuous performance
Bert Jan Schrijver
 
Canadian Cloud Summit 2022 - SharePoint Framework Tests Introduction
Laurent Sittler
 
Test & Dynamics CRM - extremeCRM Berlin 2012
Wael Hamze
 
Patterns of a "Good" Test Automation Framework, Locators & Data
Agile Testing Alliance
 
Rspec and Capybara Intro Tutorial at RailsConf 2013
Brian Sam-Bodden
 
Using REST with VSTS and TFS
Jeff Bramwell
 
Feature toggles
Anand Agrawal
 
Continuous Delivery for Dynamics 365/CRM
Wael Hamze
 
Building Extensions in VSTS and TFS
Jeff Bramwell
 
Introduction cypress
Oim Trust
 

Similar to Building large and scalable mission critical applications with React (20)

PPTX
Production-ready Next.js App with Cursor AI
Maurice De Beijer [MVP]
 
PDF
Continuous Deployment of your Application @JUGtoberfest
Marcin Grzejszczak
 
PPTX
Practice TypeScript Techniques Building React Server Components App
Maurice De Beijer [MVP]
 
PDF
Continuous Deployment of your Application @SpringOne
ciberkleid
 
PDF
Continuous Deployment To The Cloud @DevoxxPL 2017
Marcin Grzejszczak
 
PPTX
Better React state management with Redux
Maurice De Beijer [MVP]
 
PPTX
Continuous Deployment to the cloud
VMware Tanzu
 
PDF
Continuous Deployment of your Application @jSession#5
Marcin Grzejszczak
 
PPTX
Why I am hooked on the future of React
Maurice De Beijer [MVP]
 
PPTX
The new React
Maurice De Beijer [MVP]
 
PPTX
Legacy On Premise Apps Got You Down? No Problem - DevOps for All
Muly Gottlieb
 
PPTX
Building high-performance web applications with Preact
Maurice De Beijer [MVP]
 
PPTX
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Simplilearn
 
PDF
Get Mapped: Using Value Stream Mapping to Create a DevOps Adoption Roadmap
IBM UrbanCode Products
 
PPTX
Coordinating Micro-Services with Spring Cloud Contract
Omri Spector
 
PPTX
Dev/Test scenarios in DevOps world
Davide Benvegnù
 
PDF
Live Webinar- Making Test Automation 10x Faster for Continuous Delivery- By R...
RapidValue
 
PPT
Understand release engineering
gaoliang641
 
PPTX
Change management in hybrid landscapes
Chris Kernaghan
 
PPTX
Modernizing Web Apps with .NET 6.pptx
Ed Charbeneau
 
Production-ready Next.js App with Cursor AI
Maurice De Beijer [MVP]
 
Continuous Deployment of your Application @JUGtoberfest
Marcin Grzejszczak
 
Practice TypeScript Techniques Building React Server Components App
Maurice De Beijer [MVP]
 
Continuous Deployment of your Application @SpringOne
ciberkleid
 
Continuous Deployment To The Cloud @DevoxxPL 2017
Marcin Grzejszczak
 
Better React state management with Redux
Maurice De Beijer [MVP]
 
Continuous Deployment to the cloud
VMware Tanzu
 
Continuous Deployment of your Application @jSession#5
Marcin Grzejszczak
 
Why I am hooked on the future of React
Maurice De Beijer [MVP]
 
The new React
Maurice De Beijer [MVP]
 
Legacy On Premise Apps Got You Down? No Problem - DevOps for All
Muly Gottlieb
 
Building high-performance web applications with Preact
Maurice De Beijer [MVP]
 
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Simplilearn
 
Get Mapped: Using Value Stream Mapping to Create a DevOps Adoption Roadmap
IBM UrbanCode Products
 
Coordinating Micro-Services with Spring Cloud Contract
Omri Spector
 
Dev/Test scenarios in DevOps world
Davide Benvegnù
 
Live Webinar- Making Test Automation 10x Faster for Continuous Delivery- By R...
RapidValue
 
Understand release engineering
gaoliang641
 
Change management in hybrid landscapes
Chris Kernaghan
 
Modernizing Web Apps with .NET 6.pptx
Ed Charbeneau
 
Ad

More from Maurice De Beijer [MVP] (20)

PPTX
Full-stack App in half a Day: Next.js 15 Development Bootcamp
Maurice De Beijer [MVP]
 
PPTX
Building Robust Web Applications with Test-Driven Development and Playwright:...
Maurice De Beijer [MVP]
 
PDF
Mastering React Server Components and Server Actions in React 19
Maurice De Beijer [MVP]
 
PPTX
A foolproof Way to Estimate a Software Project
Maurice De Beijer [MVP]
 
PPTX
Surati Tech Talks 2022 / Build reliable Svelte applications using Cypress
Maurice De Beijer [MVP]
 
PPTX
Build reliable Svelte applications using Cypress
Maurice De Beijer [MVP]
 
PPTX
Building Reliable Applications Using React, .NET & Azure
Maurice De Beijer [MVP]
 
PPTX
Concurrent Rendering Adventures in React 18
Maurice De Beijer [MVP]
 
PPTX
Why I am hooked on the future of React
Maurice De Beijer [MVP]
 
PPTX
Building reliable web applications using Cypress
Maurice De Beijer [MVP]
 
PPTX
Getting started with React Suspense and concurrent rendering
Maurice De Beijer [MVP]
 
PPTX
React suspense, not just for Alfred Hitchcock
Maurice De Beijer [MVP]
 
PPTX
From zero to hero with the Reactive extensions for JavaScript
Maurice De Beijer [MVP]
 
PPTX
Why I am hooked on the future of React
Maurice De Beijer [MVP]
 
PPTX
From zero to hero with the reactive extensions for JavaScript
Maurice De Beijer [MVP]
 
PPTX
Create flexible React applications using GraphQL apis
Maurice De Beijer [MVP]
 
PPTX
Create flexible react applications using GraphQL API's
Maurice De Beijer [MVP]
 
PPTX
Docker for a .NET web developer
Maurice De Beijer [MVP]
 
PPTX
From zero to hero with the reactive extensions for JavaScript
Maurice De Beijer [MVP]
 
PPTX
The productive developer guide to React
Maurice De Beijer [MVP]
 
Full-stack App in half a Day: Next.js 15 Development Bootcamp
Maurice De Beijer [MVP]
 
Building Robust Web Applications with Test-Driven Development and Playwright:...
Maurice De Beijer [MVP]
 
Mastering React Server Components and Server Actions in React 19
Maurice De Beijer [MVP]
 
A foolproof Way to Estimate a Software Project
Maurice De Beijer [MVP]
 
Surati Tech Talks 2022 / Build reliable Svelte applications using Cypress
Maurice De Beijer [MVP]
 
Build reliable Svelte applications using Cypress
Maurice De Beijer [MVP]
 
Building Reliable Applications Using React, .NET & Azure
Maurice De Beijer [MVP]
 
Concurrent Rendering Adventures in React 18
Maurice De Beijer [MVP]
 
Why I am hooked on the future of React
Maurice De Beijer [MVP]
 
Building reliable web applications using Cypress
Maurice De Beijer [MVP]
 
Getting started with React Suspense and concurrent rendering
Maurice De Beijer [MVP]
 
React suspense, not just for Alfred Hitchcock
Maurice De Beijer [MVP]
 
From zero to hero with the Reactive extensions for JavaScript
Maurice De Beijer [MVP]
 
Why I am hooked on the future of React
Maurice De Beijer [MVP]
 
From zero to hero with the reactive extensions for JavaScript
Maurice De Beijer [MVP]
 
Create flexible React applications using GraphQL apis
Maurice De Beijer [MVP]
 
Create flexible react applications using GraphQL API's
Maurice De Beijer [MVP]
 
Docker for a .NET web developer
Maurice De Beijer [MVP]
 
From zero to hero with the reactive extensions for JavaScript
Maurice De Beijer [MVP]
 
The productive developer guide to React
Maurice De Beijer [MVP]
 
Ad

Recently uploaded (20)

PDF
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PDF
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PDF
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
PPTX
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
PDF
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PPTX
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
PDF
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PPTX
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
PDF
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PPTX
Digital Circuits, important subject in CS
contactparinay1
 
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
Digital Circuits, important subject in CS
contactparinay1
 

Building large and scalable mission critical applications with React

Editor's Notes

  • #3: Repository: http://bit.ly/pro-hooks-2021 Slides: http://theproblemsolver.nl/pro-hooks-2021.pdf