This is all way too
complicated and too much
code for a website...
My CTO from almost 10 years ago
Slide 6
Slide 6 text
This is how
we do it!
Slide 7
Slide 7 text
SPA MPA
SSG SSR Edge Rendering
(Partial) Hydration
Server Components
Resumability
Slide 8
Slide 8 text
SPA MPA
SSG SSR Edge Rendering
(Partial) Hydration
Server Components
Resumability
It's a lot!
Slide 9
Slide 9 text
No content
Slide 10
Slide 10 text
No content
Slide 11
Slide 11 text
Stefan, welcome to Canada!
Access 1 MB of data for 1 Euro!
(~1.46 CA$)
Slide 12
Slide 12 text
2013
Hello world!
10KB / 50KB
2023
Hello world!
100KB / 300KB*
Complexity
* powered by 200MB+ of text files #node_modules
Slide 13
Slide 13 text
cwvtech.report
Slide 14
Slide 14 text
Core Web Vitals Technology Report
Slide 15
Slide 15 text
No content
Slide 16
Slide 16 text
Core Web Vitals Technology Report
Slide 17
Slide 17 text
UX DX
My misconception
Slide 18
Slide 18 text
I do feel overwhelmed by the pace of change. [...]
JavaScript is meant to feel overwhelming.
It’s where we try stu! out.
It’s where stu! moves fast.
Jeremy Keith
Source: "Building" presentation
Slide 19
Slide 19 text
JavaScript
CSS
HTML
HTTP
Slide 20
Slide 20 text
The web platform
wasn't ready...
Slide 21
Slide 21 text
The web platform
still isn't ready...
Slide 22
Slide 22 text
The web platform
still isn't ready...
(but we'll get there sooner than later)
Slide 23
Slide 23 text
A cross-browser effort to reach a state where
each technology works exactly the same in every browser.
Interop
Source: wpt.fyi/interop-2023
Slide 24
Slide 24 text
A cross-browser effort to reach a state where
each technology works exactly the same in every browser.
Interop
Source: wpt.fyi/interop-2023
Slide 25
Slide 25 text
Aspect Ratio Cascade Layers
Color spaces and functions
Dialog Grid Flex Subgrid
Containment Scrolling
Interop 2022
*
* This list is not complete.
Slide 26
Slide 26 text
Container Queries
:has() Inert @property
Import Maps
Font features color-mix
:nth-child(of syntax)
Interop 2023
*
* This list is not complete.
.card {
container-type: inline-size;
.container {
display: flex;
flex-direction: column;
@container (width > 400px) {
flex-direction: row;
.header {
flex: 0 0 25cqw;
}
}
}
}
cqw 1% of a query container's width
cqh 1% of a query container's height
cqi 1% of a query container's inline size
cqb 1% of a query container's block size
cqmin The smaller value of either cqi or cqb
cqmax The larger value of either cqi or cqb
CSS has become a more
complete mature language,
that works better with the
way we build websites today.
Una Kravets
Source: The state of the CSS community