Confidential
I am Manu
Framework Engineer at Builder.io
OSS Team
About me
Confidential
Big O() notation
Confidential
Big O() notation for frameworks
Confidential
Sites require
more and more Javascript
Confidential
https://www.builder.io/c/performance-insights
Confidential
The bottleneck is JS
Confidential
There are two types of companies
Those that prioritize performance at all cost and
those with bad performance
Confidential
But… is this really a problem?
Confidential
Existing correlation between:
Confidential
Don’t blame developers
for what frameworks do
Confidential
Current trend is linear because
current frameworks are O(n)
Amount of JS growing as sites require more functionality
Confidential
Qwik enables O(1) apps
Correlation broken between functionality and amount of JS is broken
Confidential
Resumable
1
Progressive
2
Confidential
Hydration = replay app
Rendering runs twice. All logic needs to be downloaded.
Confidential
Resumability = resume app
Leverage what already ran in the server.
No initialization code, rendering, diffing, setting up listeners needs to run in the client.
Server serializes app state then it resumes.
Confidential
Qwik
Confidential
Server-side
cake baking
analogy
“baking a cake in a datacenter”
Confidential
Past
Current
Future
Rendering and interactivity separated
Render and interactivity united into a single framework.
Rendering done at the server by:
Interactivity:
Very performant
Slow development, error prone, duplicated logic…
Unified model, fast development, scales in complexity
Uses hydration, to enable interactivity. App runs twice.
Unified model, fast development, scales in complexity
Uses resumability, performance scales well. O(1)
App runs twice in server and client using the same tech:
App runs once, client only executes minimal bites of interactivity.
Render and interactivity united into a single framework.
DX ⬆️⬆️
PERF ⬆️⬆️
Confidential
O(1) frameworks are not new! but…
Wiz is an internal framework at Google:
Amazon can not use existing frameworks for its main site
Confidential
Superpower #1
No JS by default
TT
Superpower #2
Bundling is decoupled from code
TT
Superpower #3
Zero-cost microfrontends
TT
Superpower #4
Use other frameworks
(without JS)
TT
Superpower #5
Ship fast, fast websites
Why are we building Qwik?
CAP theorem
frontend
Capabilities
API
f
Performance
Frontend new paradigm
Capabilities
API
f
Performance
Thank you
Follow me
@manucorporat
https://qwik.builder.io
npm init qwik@latest