SlideShare a Scribd company logo
Building high
performance web
applications
Maurice de Beijer
@mauricedb
NEXTBUILD 2017
Topics
 What is fast?
 Tooling
 Code splitting
 Server side rendering
 Only render above the fold
© ABL - The Problem Solver 2
 Maurice de Beijer
 The Problem Solver
 MicrosoftAzure MVP
 Freelance developer/instructor
 Twitter: @mauricedb, @NG_Tutorial and @React_Tutorial
 Web: http://www.TheProblemSolver.nl
 E-mail: maurice.de.beijer@gmail.com
3
Why?
 40% of the web traffic is from mobile devices.
 Bol.com in July 2016
 Adding 100 ms of latency costs 1% of sales
 Amazon.com
© ABL - The Problem Solver 4
What is fast?
© ABL - The Problem Solver 5
It depends 
© ABL - The Problem Solver 6
“Performance is the art of
avoiding work, and
making any work you do
as efficient as possible”
-- Paul Lewis --
© ABL - The Problem Solver 7
DOMContent
Loaded
© ABL - The Problem Solver 8
First
meaningful
paint
© ABL - The Problem Solver 9
Time to
interactive
© ABL - The Problem Solver 10
But there is
more
© ABL - The Problem Solver 11
Tooling
© ABL - The Problem Solver 12
Chrome
Timeline
© ABL - The Problem Solver 13
Chrome
Audits
© ABL - The Problem Solver 14
YSlow
© ABL - The Problem Solver 15
WebPageTest
© ABL - The Problem Solver 16
WebPageTest
select the
device
© ABL - The Problem Solver 17
WebPageTest
select the
bandwidth
© ABL - The Problem Solver 18
WebPageTest
iPhone 6
© ABL - The Problem Solver 19
Lighthouse
© ABL - The Problem Solver 20
ECMAScript
imports
import _ from 'lodash';
_.forEach(data, e => console.log(e));
© ABL - The Problem Solver 21
import { forEach } from 'lodash/forEach';
forEach(data, e => console.log(e));
import rxjs from 'rxjs';
rxjs.Observable.from(data)
.map(e => 2 * e)
.subscribe(e => console.log(e));
ECMAScript
imports import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/from';
import 'rxjs/add/operator/map';
Observable.from(data)
.map(e => 2 * e)
.subscribe(e => console.log(e));
© ABL - The Problem Solver 22
Code splitting
© ABL - The Problem Solver 23
Use source-
map-explorer
© ABL - The Problem Solver 24
Right size
framework
© ABL - The Problem Solver 25
Server side
rendering
© ABL - The Problem Solver 26
Inline
critical
CSS
© ABL - The Problem Solver 27
Only render
above the fold
© ABL - The Problem Solver 28
HTTP
&
Latency
© ABL - The Problem Solver 29
Try it  http://bit.ly/fast-apps
© ABL - The Problem Solver 30
Conclusion
 Everyone loves faster web apps.
 And they are good for business
 Avoid or delay as much as possible.
 What you don’t do can’t slow you down
 Do as few request as possible to display the first page.
 The fastest HTTP request is one not made
 Use the browsers capabilities as much as possible.
© ABL - The Problem Solver 31
Maurice de Beijer
@mauricedb
maurice.de.beijer
@gmail.com
© ABL - The Problem Solver 32

More Related Content

PPTX
Building high performance web applications
PPTX
Building high performance web applications
PPT
C# Async on iOS and Android - Craig Dunn, Developer Evangelist at Xamarin
PDF
Unity global cs presentation
PDF
Get your mobile app in production in 3 months: Backend
PPTX
Building high-performance web applications with Preact
PPTX
Better React state management with Redux
PPTX
The new React
Building high performance web applications
Building high performance web applications
C# Async on iOS and Android - Craig Dunn, Developer Evangelist at Xamarin
Unity global cs presentation
Get your mobile app in production in 3 months: Backend
Building high-performance web applications with Preact
Better React state management with Redux
The new React

Similar to Building high performance web applications (20)

PDF
Machine Learning on IBM Watson Studio
PDF
Compiler tricks
PDF
XebiCon'18 - Passage à l'échelle de mes applications Kafka-Streams
PPTX
Full-stack App in half a Day: Next.js 15 Development Bootcamp
PDF
Multiplatformní aplikace: jak vyvíjet pro web i Electron?
PPTX
Building Reliable Applications Using React, .NET & Azure
PPTX
Building reliable applications with React, C#, and Azure
PDF
AWS Summit DC 2021: Improve the developer experience with AWS CDK
PPTX
Building large and scalable mission critical applications with React
PDF
Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...
PDF
Best Practices & Lessons Learned from the field on EMC Documentum xCP 2.0
PDF
How to avoid hanging yourself with Rails
PDF
Cameo Workbench
PDF
William Impey CV
PDF
Architecture for scalable Angular applications
PDF
Unit Testing 101
PPTX
The productive developer guide to React
PDF
Mechatronics engineer
PDF
Mastering React Server Components and Server Actions in React 19
Machine Learning on IBM Watson Studio
Compiler tricks
XebiCon'18 - Passage à l'échelle de mes applications Kafka-Streams
Full-stack App in half a Day: Next.js 15 Development Bootcamp
Multiplatformní aplikace: jak vyvíjet pro web i Electron?
Building Reliable Applications Using React, .NET & Azure
Building reliable applications with React, C#, and Azure
AWS Summit DC 2021: Improve the developer experience with AWS CDK
Building large and scalable mission critical applications with React
Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...
Best Practices & Lessons Learned from the field on EMC Documentum xCP 2.0
How to avoid hanging yourself with Rails
Cameo Workbench
William Impey CV
Architecture for scalable Angular applications
Unit Testing 101
The productive developer guide to React
Mechatronics engineer
Mastering React Server Components and Server Actions in React 19
Ad

More from Maurice De Beijer [MVP] (20)

PPTX
Production-ready Next.js App with Cursor AI
PPTX
Building Robust Web Applications with Test-Driven Development and Playwright:...
PPTX
Practice TypeScript Techniques Building React Server Components App
PPTX
A foolproof Way to Estimate a Software Project
PPTX
Surati Tech Talks 2022 / Build reliable Svelte applications using Cypress
PPTX
Build reliable Svelte applications using Cypress
PPTX
Building Reliable Applications Using React, .NET & Azure
PPTX
Concurrent Rendering Adventures in React 18
PPTX
Why I am hooked on the future of React
PPTX
Building reliable web applications using Cypress
PPTX
Getting started with React Suspense and concurrent rendering
PPTX
React suspense, not just for Alfred Hitchcock
PPTX
From zero to hero with the Reactive extensions for JavaScript
PPTX
Why I am hooked on the future of React
PPTX
From zero to hero with the reactive extensions for JavaScript
PPTX
Why I am hooked on the future of React
PPTX
I am hooked on React
PPTX
Create flexible React applications using GraphQL apis
PPTX
Create flexible react applications using GraphQL API's
PPTX
Docker for a .NET web developer
Production-ready Next.js App with Cursor AI
Building Robust Web Applications with Test-Driven Development and Playwright:...
Practice TypeScript Techniques Building React Server Components App
A foolproof Way to Estimate a Software Project
Surati Tech Talks 2022 / Build reliable Svelte applications using Cypress
Build reliable Svelte applications using Cypress
Building Reliable Applications Using React, .NET & Azure
Concurrent Rendering Adventures in React 18
Why I am hooked on the future of React
Building reliable web applications using Cypress
Getting started with React Suspense and concurrent rendering
React suspense, not just for Alfred Hitchcock
From zero to hero with the Reactive extensions for JavaScript
Why I am hooked on the future of React
From zero to hero with the reactive extensions for JavaScript
Why I am hooked on the future of React
I am hooked on React
Create flexible React applications using GraphQL apis
Create flexible react applications using GraphQL API's
Docker for a .NET web developer
Ad

Recently uploaded (20)

PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Empathic Computing: Creating Shared Understanding
PDF
KodekX | Application Modernization Development
PPTX
Big Data Technologies - Introduction.pptx
PDF
Machine learning based COVID-19 study performance prediction
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
A Presentation on Artificial Intelligence
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Electronic commerce courselecture one. Pdf
PPTX
MYSQL Presentation for SQL database connectivity
Spectral efficient network and resource selection model in 5G networks
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Empathic Computing: Creating Shared Understanding
KodekX | Application Modernization Development
Big Data Technologies - Introduction.pptx
Machine learning based COVID-19 study performance prediction
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Unlocking AI with Model Context Protocol (MCP)
A Presentation on Artificial Intelligence
Diabetes mellitus diagnosis method based random forest with bat algorithm
Understanding_Digital_Forensics_Presentation.pptx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Review of recent advances in non-invasive hemoglobin estimation
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Electronic commerce courselecture one. Pdf
MYSQL Presentation for SQL database connectivity

Building high performance web applications

Editor's Notes

  • #6: https://pixabay.com/nl/supersonische-vechter-vliegtuigen-63211/
  • #7: https://pixabay.com/nl/boord-blackboard-lettertype-1805318/
  • #9: https://www.pexels.com/photo/train-on-railroad-tracks-against-sky-258367/
  • #10: https://unsplash.com/photos/EXcDH29WLbg
  • #11: https://pixabay.com/nl/dolfijn-kind-kinderen-spelen-1548448/
  • #12: https://pixabay.com/nl/batterij-aa-energie-huidige-1109088/
  • #13: https://www.pexels.com/photo/grey-metal-hammer-34520/
  • #24: https://unsplash.com/search/splitting?photo=Xxd33FUBQeA
  • #26: https://pixabay.com/nl/marokko-truck-vrachtwagen-hooi-842660/
  • #27: https://pixabay.com/en/technology-servers-server-1587673/
  • #28: https://jonassebastianohlsson.com/criticalpathcssgenerator/
  • #29: https://pixabay.com/nl/sprinkhaan-viridissima-groene-193721