SlideShare a Scribd company logo
@stefanjudis
Did we(b development)
lose the right direction?
The state of web development
ten years ago...
Stefan Judis "Did we(b development) lose the right direction?"
Stefan Judis "Did we(b development) lose the right direction?"
yslow.org
4waisenkinder.de
Stefan Judis "Did we(b development) lose the right direction?"
Stefan Judis "Did we(b development) lose the right direction?"
Stefan Judis "Did we(b development) lose the right direction?"
I love technology and I
love writing JavaScript!
stefanjudis.com
Chrome – Cable iPhone 6 – 3G
Usually, any score above a 90
gets you in the top ~5% of
performant websites.
Lighthouse documentation
HTTP/2
Everything's compressed and minified!
github.com/webpack-contrib/webpack-bundle-analyzer
Code
splitting
www.fmboschetto.it
Stefan Judis "Did we(b development) lose the right direction?"
Stefan Judis "Did we(b development) lose the right direction?"
webpagetest.org/video/
webpagetest.org/video/view.php?id=200302_2df0157ba9ea8586f5d987f7a1c3d52ed5e2a874
Chrome – Cable
Stefan, you just
messed it up!
Maybe, but how can it
be so easy to mess up?
stefanjudis.comfmboschetto.it 4waisenkinder.de
Overall page weight 340KB / 940KB265KB / 284KB 159KB / 300KB
index.html 108KB / 340KB8KB / 32KB 6KB / 18KB
CSS resources 10 1
Images resources 0*32
(246KB / 254KB)
0*
Speed Index (LTE) 1.4s / 0.8s 2.1s / 0.7s 2.3s / 1.5s
JS resources 22
(183KB / 512KB)
6
(68KB / 177KB)
2
(2KB / 6KB)
*ignoring tracking pixel
Lighthouse Perf Score 100 97 92
Stefan Judis "Did we(b development) lose the right direction?"
3X - first contentful paint
1X - first meaningful paint
2X - first cpu idle
5X - time to interactive
4X - speed index
0X - estimated input latency
JavaScript blocks
the main-thread!
www.youtube.com/watch?v=Lx1cYJAVnzA
medium.com/dev-channel/a-netflix-web-performance-case-study-c0bcde26a9d9
A 150KB image is not
comparable to 150KB of
gzipped JavaScript!
Page weight is not
equal page weight!
That's a 340KB index file for
roughly 400 words, Stefan?
Stefan Judis "Did we(b development) lose the right direction?"
"It's great because it's fast!
And it's still lighter than the
rest of the internet..."
"It's great because it's still lighter than the
rest of the internet..."
"I'm really digging
the tech-stack!"
That's a 340KB index file for
roughly 400 words, Stefan?
window.__DATA__=function(
e,t,n,o,i,/* ... */
){ return /* ... */ )
I decided to preload/inline
22 articles ...
(at an average session length of 1.17 pages)
... for "better performance".
Making a very fast
website is extremely hard!
Making a very fast
website is extremely hard!
(But is it really?)
twitter.com/philhawksworth/status/1038440732741259265
Stefan Judis "Did we(b development) lose the right direction?"
www.youtube.com/watch?v=88K8oO_dYbI
www.youtube.com/watch?v=88K8oO_dYbI
Today, I 100% disagree
with "past me", ...
www.youtube.com/watch?v=88K8oO_dYbI
... because where is the user's
benefit from such overhead?
A common "best practice"
Universal JavaScript apps
for content-sites
<!doctype html>
<html lang="">
<head>
<meta charset="utf-8">
<title></title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="manifest" href="site.webmanifest">
<link rel="apple-touch-icon" href="icon.png">
<link rel="stylesheet" href="css/main.css">
<meta name="theme-color" content="#fafafa">
</head>
<body>
<p>Hello world!</p>
<script src="js/plugins.js"></script>
<script src="js/main.js"></script>
</body>
</html>
<!doctype html>
<html lang="">
<head>
<meta charset="utf-8">
<title></title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="manifest" href="site.webmanifest">
<link rel="apple-touch-icon" href="icon.png">
<link rel="stylesheet" href="css/main.css">
<meta name="theme-color" content="#fafafa">
</head>
<body>
<p>Hello world!</p>
<script src=“js/app-bundle-hash1.js”></script>
<script src=“js/app-bundle-hash2.js”></script>
<script src=“js/app-bundle-hash3.js”></script>
<script>window.__data__ = { greeting: "Hello world!" }</script>
</body>
</html>
<!doctype html>
<html lang="">
<head>
<meta charset="utf-8">
<title></title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="manifest" href="site.webmanifest">
<link rel="apple-touch-icon" href="icon.png">
<link rel="stylesheet" href="css/main.css">
<meta name="theme-color" content="#fafafa">
</head>
<body>
<p>Hello world!</p>
<script src="js/plugins.js"></script>
<script src="js/main.js"></script>
<script>window.__data__ = { greeting: "Hello world!" }</script>
</body>
</html>
The same code runs on the
server and on the client!
Your content
in HTML
The same content
in JavaScript
Is this really
the best way for the user?
"This architecture offers doors
to progressive enhancement!"
Base functionality Enhanced experience
If the enhancement fails, it still works!
Stefan Judis "Did we(b development) lose the right direction?"
Stefan Judis "Did we(b development) lose the right direction?"
Updated
search results
Updated URL
Submittable
form
Buzzfeed
twitter.com/philhawksworth/status/990890920672456707
"We don't have any non-JavaScript users"
No, all your users are non-JS while
they're downloading your JS.
Jake Archibald
github.com
POST github.com/stefanjudis/test/issue_comments
handles a form and AJAX submit
Five "old school"
HTML links
I’m happy with GitHub's experience.
A good site "just works".™
What's the enhancement
in the wild, though?
reactjs.org with JavaScript reactjs.org without JavaScript
527KB / 1.7MB 41KB / 121KBInitial weight
547KB / 2.3MB 200KB / 1.0MB
Weight after
4 navigations
I'm guilty of that, too!
Does this architecture
improve user experience?
Stefan Judis "Did we(b development) lose the right direction?"
You get 6MB for 2Euros
but you have only 24h to
use them! Right...
httparchive.org/reports/state-of-the-web
httparchive.org/reports/state-of-the-web
We ship more data for
the same experience...
Maybe app frameworks
are for apps after all?
Stefan Judis "Did we(b development) lose the right direction?"
5.2MB / 17MB 25KB / 40KB
Stefan Judis "Did we(b development) lose the right direction?"
The web is not as
cutting-edge as it seems...
... boring is beautiful!
(and fast)
"Benefits" of
client-side routing
Developers are "allowed"
to re-implement
an accessible navigation
twitter.com
www.gatsbyjs.org/blog/2020-02-10-accessible-client-side-routing-improvements/
Stefan Judis "Did we(b development) lose the right direction?"
github.com/sdras/page-transitions-travelapp
There’s a chance I believe
client side routing on the web
is usually not preferred.
Which is ironic.
Ryan Florence (co-author React-Router)
twitter.com/ryanflorence/status/1186515553285857280
We ship tailored experiences!
We ship tailored experiences!
But do we really?
Aka...
Could your parents deal with it?
.nav {
animation: vibrate 0.3s linear;
}
@media (prefers-reduced-motion: reduce) {
.nav {
animation: none;
}
}
window.matchMedia('(prefers-reduced-motion: reduce)')
People with vestibular disorder
People on low battery
People with limited time
.day { background: #eee; color: black; }
.night { background: #333; color: white; }
@media (prefers-color-scheme: dark) {
.day { /* ... */ }
.night { /* ... */ }
}
window.matchMedia('(prefers-color-scheme: dark)')
People sensible to bright screens
People sitting in the dark
People with a headache
.image {
background-image: url("images/heavy.jpg");
}
@media (prefers-reduced-data: reduce) {
/* Save-Data: On */
.image {
background-image: url("images/light.jpg");
}
}
navigator.connection.saveData // true
save-data: on
twitter.com
No consideration
of save-data settings.
Stefan Judis "Did we(b development) lose the right direction?"
People with LIFI
People tethering with their phone
People unable to afford much data
navigator.connection.effectiveType
// 'slow-2g', '2g', '3g', or '4g'
You can't know the
user's context.
It should be easy for the user to adjust.
Stefan Judis "Did we(b development) lose the right direction?"
https://....
Save
data
https://....
Prefer reduced
motion
Prefer a dark
interface
www.youtube.com/watch?v=_cMLVqyYCzU
Are we failing to ship
a tailored user experience
after all?
(developers, browsers and operating systems)
A great site just works.™
HTML CSS JavaScript
The foundation of the web
A great site doesn't have to be
built with React/Vue/Angular/...
I need a new site what
should I use?
You should use Framework X
with SSR, an offline strategy and
it has to run "on the edge"!
It depends...
What's your use case?
A great site can be built
with React, Vue, Angular...
A great site is
accessible, fast, secure, ...
It's "just" HTML...
HTML defines
over 100 elements
HTML defines
22 input types
css-tricks.com/a-complete-guide-to-links-and-buttons/
+4000 words!
<div aria-label="twitter" tabindex="0" role="button">
Twitter
</div>
... it's not "easy".
webaim.org/projects/million/
webaim.org/projects/million/
thenextweb.com/contributors/2018/03/10/protect-website-cryptojacking-attacks/
Content-Security-Policy: default-src 'self'; script-src 'self' just-
comments.com www.google-analytics.com production-
assets.codepen.io storage.googleapis.com; style-src 'self' 'unsafe-
inline'; img-src 'self' data: images.contentful.com images.ctfassets.net
www.gravatar.com www.google-analytics.com just-comments.com;
font-src 'self' data:; connect-src 'self' cdn.contentful.com
images.contentful.com videos.contentful.com images.ctfassets.net
videos.ctfassets.net service.just-comments.com www.google-
analytics.com; media-src 'self' videos.contentful.com
videos.ctfassets.net; object-src 'self'; frame-src codepen.io; frame-
ancestors 'self'; worker-src 'self'; block-all-mixed-content; manifest-src
'self' 'self'; disown-opener; prefetch-src 'self'; report-uri https://
stefanjudis.report-uri.com/r/d/csp/reportOnly
USE CSP DON'T USE CSP
94%
6%
httparchive.org/reports/state-of-the-web
The web loses
quality...
... but at least developers
get more productive!
Stefan Judis "Did we(b development) lose the right direction?"
Stefan Judis "Did we(b development) lose the right direction?"
exports.sayHello = async (event) => {
return 'Hello from Lambda!';
};
exports.sayHello = async (event) => {
return {
statusCode: 200,
body: JSON.stringify({"msg": "Hello from Lambda!"})
};
};
The options are limitless to build a product quickly!
Hello world!
2010
10KB / 50KB
Hello world!
2020
40KB / 130KB
Complexity
I just added two helpers to
tiny-helpers.dev.
The site is great, but that I
had to download 700MB of
Node.js stuff is brutal. :)
A text editor
A text editor, Node.js, npm, framework knowledge, …
I’ve been building on the web for
15+ years in some capacity,
and it has never been
so easy to build complex apps.
Josh Comeau
100% agree!
How many sites need to be complex apps, though?
Where are we going
with this trend?
Stefan Judis "Did we(b development) lose the right direction?"
HTML CSS JavaScript
React Vue Angular Svelte
webpack Rollup Parcel
AWS GCloud Netlify Zeit Heroku
*
* a very incomplete list
Complexity is king!
(but what for?)
twitter.com/_developit/status/1214258470226190350
(function() {
const fakeButton = document.querySelector('[data-menu-button]');
const menu = document.querySelector('[data-menu]');
const toggleMenuButton = document.createElement('button');
toggleMenuButton.textContent = fakeButton.textContent;
toggleMenuButton.setAttribute('aria-expanded', false);
toggleMenuButton.setAttribute('aria-controls', 'menu');
toggleMenuButton.classList.add('nav__toggle');
fakeButton.parentNode.replaceChild(toggleMenuButton, fakeButton);
toggleMenuButton.addEventListener('click', function() {
let expanded = this.getAttribute('aria-expanded') === 'true' || false;
this.setAttribute('aria-expanded', !expanded);
menu.hidden = !menu.hidden;
});
menu.hidden = true;
})()
justmarkup.com/articles/2019-12-04-hamburger-menu/
16 lines of hand-written JavaScript
Maybe we'll have good
enough abstractions
one day, but today…
… you still have to know
web fundamentals to create
the best user experience.
You're shaping tomorrow's job
market based on the technology
choices you make today.
Henrik Joreteg
Your job as a web developer
is to build beautiful
experiences!
Your job as a web developer is to build beautiful experiences!
Your job as a developer is to decide, to
decide what tools to use, to decide what
frameworks to use, to decide what to
prioritize, to decide what is the best way
to maintain a project.
Michael Scharnagl
Chatted with someone who’s been working
at a company as a front-end developer for
3 years. Their friend asked them to help
build a website, but they had to decline.
They didn’t know how.
Chris Coyier
(css-tricks.com)
HTML CSS JavaScript
React Vue Angular Svelte
webpack Rollup Parcel
AWS GCloud Netlify Zeit Heroku
*
* a very incomplete list
css-tricks.com/the-great-divide/
css-tricks.com/the-great-divide/
css-tricks.com/the-great-divide/
Your users don't care
about your technical
implementation.
DX(developer experience)
UX(user experience)
I love shiny tools and I
love writing JavaScript...
... but maybe we should take a step back?
And consider the right tools
for the best user experience?
... but maybe we should take a step back?
And consider the right tools
for the best user experience?
twitter.com/slightlylate/status/1232147434727280640
Maybe our focus should be more
on building sites that just work!
(And less on the technology behind these)
@stefanjudis
www.stefanjudis.com
Thanks.

More Related Content

PDF
Prebrowsing - Velocity NY 2013
PDF
Responsive images are here. Now what?
PDF
Preconnect, prefetch, prerender...
PDF
Breaking out of the Tetris mind set #btconf
PPTX
High Performance Mobile (SF/SV Web Perf)
PDF
Mobile First Responsive Web Design — BD Conf Oct 2013
PPTX
High Performance HTML5 (SF HTML5 UG)
PDF
Hungarian Web Conference: HTML5 beyond the hype - let's make it work!
Prebrowsing - Velocity NY 2013
Responsive images are here. Now what?
Preconnect, prefetch, prerender...
Breaking out of the Tetris mind set #btconf
High Performance Mobile (SF/SV Web Perf)
Mobile First Responsive Web Design — BD Conf Oct 2013
High Performance HTML5 (SF HTML5 UG)
Hungarian Web Conference: HTML5 beyond the hype - let's make it work!

What's hot (20)

PDF
Mobile Web Speed Bumps
PDF
RESS: An Evolution of Responsive Web Design
PPTX
Souders WPO Web2.0Expo
PDF
10 Web Performance Lessons For the 21st Century
KEY
Speed is Essential for a Great Web Experience
PDF
Speed is Essential for a Great Web Experience
PDF
Progressive Web Apps - Goto Chicago 2017
PDF
The Server Side of Responsive Web Design
PDF
Making Mobile Sites Faster
PPT
Augmented Reality (AR) - The Future of Mobile Applications?
KEY
Sniffing the Mobile Context
PDF
Web Performance Optimierung - DWX13
PDF
Now you see me... Adaptive Web Design and Development
PDF
Open and Accessible UI
PDF
Finding harmony in web development
PDF
The Case for HTTP/2 - Internetdagarna 2015 - Stockholm
PDF
Progressive Enhancement
KEY
Faster Frontends
PDF
Mobile First Responsive Design
PDF
SWFObject 2: The fine art of embedding Adobe Flash Player content
Mobile Web Speed Bumps
RESS: An Evolution of Responsive Web Design
Souders WPO Web2.0Expo
10 Web Performance Lessons For the 21st Century
Speed is Essential for a Great Web Experience
Speed is Essential for a Great Web Experience
Progressive Web Apps - Goto Chicago 2017
The Server Side of Responsive Web Design
Making Mobile Sites Faster
Augmented Reality (AR) - The Future of Mobile Applications?
Sniffing the Mobile Context
Web Performance Optimierung - DWX13
Now you see me... Adaptive Web Design and Development
Open and Accessible UI
Finding harmony in web development
The Case for HTTP/2 - Internetdagarna 2015 - Stockholm
Progressive Enhancement
Faster Frontends
Mobile First Responsive Design
SWFObject 2: The fine art of embedding Adobe Flash Player content
Ad

Similar to Stefan Judis "Did we(b development) lose the right direction?" (20)

PDF
Extreme Web Performance for Mobile Devices
PDF
Are Today’s Good Practices… Tomorrow’s Performance Anti-Patterns?
PDF
Extreme Web Performance for Mobile Devices - Velocity Barcelona 2014
PDF
Front-End Performance Checklist 2020
PDF
Extreme Web Performance for Mobile Devices
PDF
Progressive Web Apps – the return of the web? Goto Berlin 2016
PDF
The web is too slow
PPTX
Pearls and Must-Have Tools for the Modern Web / .NET Developer
PPTX
SearchLove San Diego 2018 | Mat Clayton | Site Speed for Digital Marketers
KEY
Optimization of modern web applications
PPTX
Mobile gotcha
PDF
implement lighthouse-ci with your web development workflow
PDF
Pablo Villalba -
PDF
Anatomy of an HTML 5 mobile web app
PDF
Extreme Web Performance for Mobile Device Fluent 2015
PDF
Everything is Awesome - Cutting the Corners off the Web
PDF
Using React for the Mobile Web
PDF
Speed Matters!
KEY
20120802 timisoara
PDF
Optimizing for Change (Henrik Joreteg)
Extreme Web Performance for Mobile Devices
Are Today’s Good Practices… Tomorrow’s Performance Anti-Patterns?
Extreme Web Performance for Mobile Devices - Velocity Barcelona 2014
Front-End Performance Checklist 2020
Extreme Web Performance for Mobile Devices
Progressive Web Apps – the return of the web? Goto Berlin 2016
The web is too slow
Pearls and Must-Have Tools for the Modern Web / .NET Developer
SearchLove San Diego 2018 | Mat Clayton | Site Speed for Digital Marketers
Optimization of modern web applications
Mobile gotcha
implement lighthouse-ci with your web development workflow
Pablo Villalba -
Anatomy of an HTML 5 mobile web app
Extreme Web Performance for Mobile Device Fluent 2015
Everything is Awesome - Cutting the Corners off the Web
Using React for the Mobile Web
Speed Matters!
20120802 timisoara
Optimizing for Change (Henrik Joreteg)
Ad

More from Fwdays (20)

PDF
"Mastering UI Complexity: State Machines and Reactive Patterns at Grammarly",...
PDF
"Effect, Fiber & Schema: tactical and technical characteristics of Effect.ts"...
PPTX
"Computer Use Agents: From SFT to Classic RL", Maksym Shamrai
PPTX
"Як ми переписали Сільпо на Angular", Євген Русаков
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
PDF
"Validation and Observability of AI Agents", Oleksandr Denisyuk
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
PPTX
"Co-Authoring with a Machine: What I Learned from Writing a Book on Generativ...
PPTX
"Human-AI Collaboration Models for Better Decisions, Faster Workflows, and Cr...
PDF
"AI is already here. What will happen to your team (and your role) tomorrow?"...
PPTX
"Is it worth investing in AI in 2025?", Alexander Sharko
PDF
''Taming Explosive Growth: Building Resilience in a Hyper-Scaled Financial Pl...
PDF
"Scaling in space and time with Temporal", Andriy Lupa.pdf
PDF
"Database isolation: how we deal with hundreds of direct connections to the d...
PDF
"Scaling in space and time with Temporal", Andriy Lupa .pdf
PPTX
"Provisioning via DOT-Chain: from catering to drone marketplaces", Volodymyr ...
PPTX
" Observability with Elasticsearch: Best Practices for High-Load Platform", A...
PPTX
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
PPTX
"Istio Ambient Mesh in production: our way from Sidecar to Sidecar-less",Hlib...
"Mastering UI Complexity: State Machines and Reactive Patterns at Grammarly",...
"Effect, Fiber & Schema: tactical and technical characteristics of Effect.ts"...
"Computer Use Agents: From SFT to Classic RL", Maksym Shamrai
"Як ми переписали Сільпо на Angular", Євген Русаков
"AI Transformation: Directions and Challenges", Pavlo Shaternik
"Validation and Observability of AI Agents", Oleksandr Denisyuk
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
"Co-Authoring with a Machine: What I Learned from Writing a Book on Generativ...
"Human-AI Collaboration Models for Better Decisions, Faster Workflows, and Cr...
"AI is already here. What will happen to your team (and your role) tomorrow?"...
"Is it worth investing in AI in 2025?", Alexander Sharko
''Taming Explosive Growth: Building Resilience in a Hyper-Scaled Financial Pl...
"Scaling in space and time with Temporal", Andriy Lupa.pdf
"Database isolation: how we deal with hundreds of direct connections to the d...
"Scaling in space and time with Temporal", Andriy Lupa .pdf
"Provisioning via DOT-Chain: from catering to drone marketplaces", Volodymyr ...
" Observability with Elasticsearch: Best Practices for High-Load Platform", A...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"Istio Ambient Mesh in production: our way from Sidecar to Sidecar-less",Hlib...

Recently uploaded (20)

PPTX
MYSQL Presentation for SQL database connectivity
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Encapsulation theory and applications.pdf
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Electronic commerce courselecture one. Pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
A Presentation on Artificial Intelligence
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Modernizing your data center with Dell and AMD
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPT
Teaching material agriculture food technology
MYSQL Presentation for SQL database connectivity
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Encapsulation theory and applications.pdf
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Network Security Unit 5.pdf for BCA BBA.
Digital-Transformation-Roadmap-for-Companies.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
Encapsulation_ Review paper, used for researhc scholars
Reach Out and Touch Someone: Haptics and Empathic Computing
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Electronic commerce courselecture one. Pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
A Presentation on Artificial Intelligence
The AUB Centre for AI in Media Proposal.docx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Modernizing your data center with Dell and AMD
Review of recent advances in non-invasive hemoglobin estimation
Teaching material agriculture food technology

Stefan Judis "Did we(b development) lose the right direction?"