Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
The State of Angular Deployment, SSR, and Prere...
Search
Minko Gechev
April 03, 2020
Programming
2
2.8k
The State of Angular Deployment, SSR, and Prerendering, ng-conf keynote
Minko Gechev
April 03, 2020
Tweet
Share
More Decks by Minko Gechev
See All by Minko Gechev
Change the World With Open Source Software
mgechev
0
130
Fast Angular Apps from End to End
mgechev
0
140
The State of Angular
mgechev
1
170
The State of Angular
mgechev
1
280
Software Engineering as a Superpower
mgechev
1
150
Introduction to Angular
mgechev
1
150
Internals of the Angular CLI
mgechev
2
1.2k
The State of Angular
mgechev
1
160
The Future of the Front-End Frameworks
mgechev
2
280
Other Decks in Programming
See All in Programming
CQRS+ES の力を使って効果を感じる / Feel the effects of using the power of CQRS+ES
seike460
PRO
0
140
毎日13時間もかかるバッチ処理をたった3日で60%短縮するためにやったこと
sho_ssk_
1
180
PHPで作るWebSocketサーバー ~リアクティブなアプリケーションを知るために~ / WebSocket Server in PHP - To know reactive applications
seike460
PRO
2
520
暇に任せてProxmoxコンソール 作ってみました
karugamo
2
720
短期間での新規プロダクト開発における「コスパの良い」Goのテスト戦略」 / kamakura.go
n3xem
2
170
103 Early Hints
sugi_0000
1
230
責務を分離するための例外設計 - PHPカンファレンス 2024
kajitack
6
1.5k
ブラウザ単体でmp4書き出すまで - muddy-web - 2024-12
yue4u
3
480
ある日突然あなたが管理しているサーバーにDDoSが来たらどうなるでしょう?知ってるようで何も知らなかったDDoS攻撃と対策 #phpcon.2024
akase244
1
150
Stackless и stackful? Корутины и асинхронность в Go
lamodatech
0
840
Effective Signals in Angular 19+: Rules and Helpers
manfredsteyer
PRO
0
110
フロントエンドのディレクトリ構成どうしてる? Feature-Sliced Design 導入体験談
osakatechlab
8
4.1k
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Reflections from 52 weeks, 52 projects
jeffersonlam
347
20k
Automating Front-end Workflow
addyosmani
1366
200k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
5
450
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Site-Speed That Sticks
csswizardry
2
190
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
520
A Modern Web Designer's Workflow
chriscoyier
693
190k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Transcript
@yourtwitter The State of Angular Deployment, SSR, and Prerendering ng-conf
keynote twitter.com/mgechev github.com/mgechev blog.mgechev.com Minko Gechev
@mgechev Web in 1991
twitter.com/mgechev @mgechev
@mgechev CGI
twitter.com/mgechev Request page HTML @mgechev
twitter.com/mgechev Execute program Request page HTML @mgechev LCP
@mgechev Largest Contentful Paint (LCP) is a user-centric metric for
estimating when the page is useful for the user. web.dev/lcp
@mgechev Each interaction requires complete page reload
twitter.com/ mgechev
twitter.com/mgechev Execute program Request page HTML @mgechev LCP
twitter.com/mgechev Execute program Request page HTML @mgechev Loading Request scripts
JS LCP TTI
twitter.com/mgechev Execute program Request page HTML @mgechev Fetch data (ajax)
Loading Request scripts LCP TTI JS
twitter.com/ mgechev @mgechev
@mgechev @mgechev
@mgechev
@mgechev @mgechev
twitter.com/mgechev Request / HTML @mgechev
twitter.com/mgechev Request / Loading Request scripts HTML JS @mgechev
twitter.com/mgechev Request / Loading Request scripts Loading Execute scripts HTML
JS @mgechev
twitter.com/mgechev Request / Loading Request scripts Loading Execute scripts HTML
JS @mgechev TTI LCP
twitter.com/mgechev Request / Loading Request scripts Loading Execute scripts HTML
JS @mgechev
twitter.com/ mgechev
@mgechev Sometimes the bundle just can’t get any smaller Minko
Gechev
@mgechev What if the server…was a browser?
twitter.com/mgechev Request / Run app on server HTML @mgechev Request
scripts JS
twitter.com/ mgechev
twitter.com/mgechev
twitter.com/mgechev @mgechev
@yourtwitter Angular Universal in Crunchbase Amanda Cifaldi Senior Staff Engineer
twitter.com/algcifaldi
Our Mission: Democratize access to company information and provide solutions
that guide our users to their next opportunities Angular Universal +
Our Mission: Democratize access to company information and provide solutions
that guide our users to their next opportunities Angular Universal +
Our Mission: Democratize access to company information and provide solutions
that guide our users to their next opportunities
some pages took seconds to load 20 20 But...
// TODO: // access + information => // opportunities?
DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA
DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA
None
biggest funding rounds this year
DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA
DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA
biggest funding rounds this year
First wave: Crawls any source that can be requested and
any links in that source
Second wave: Renders and crawls JS- generated content, and can
be hours or weeks behind the first
https://www.crunchbase.com
recent series a funding in sf tech
None
recent series a funding in sf tech 70% organic traffic
recent series a funding in sf tech
None
recent series a funding in sf tech
recent series a funding in sf tech data science companies
in new york
DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA
DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA
2K pages per minute
2K pages per minute 1M visitors per week
2K pages per minute 1M visitors per week 6 continents
served
2K pages per minute 1M visitors per week 6 continents
served 150 milliseconds per request
None
Our Mission: Democratize access to company information and provide solutions
that guide our users to their next opportunities Angular Universal +
@mgechev Challenges with Universal • Change-refresh time • Deployment
@yourtwitter $ ng add @nguniversal/express-engine $ ng run [PROJECT_NAME]:serve-ssr New
in v9!
@yourtwitter $ ng update @nguniversal/express-engine
twitter.com/mgechev @ManfredSteyer @AlanAgius4 @mgechev
twitter.com/mgechev Deployment
twitter.com/ mgechev New in @angular/fire
New in @angular/fire
twitter.com/ mgechev New in @angular/fire
twitter.com/mgechev Request / HTML @mgechev Request scripts JS TTI Run
app on server LCP
twitter.com/mgechev Request / HTML @mgechev Request scripts JS TTI Run
app on server LCP If not cached Return from the cache Cache LCP
@mgechev Prerendering
@yourtwitter $ ng add @nguniversal/express-engine $ ng run [PROJECT_NAME]:prerender Using
Universal at build-time New in v9!
@mgechev Building the app Prerendering <2s for 800 pages ng
run app:prerender
twitter.com/mgechev
twitter.com/mgechev @mgechev JAMStack By HeroDevs
twitter.com/mgechev @mgechev
@mgechev Thank you! twitter.com/mgechev github.com/mgechev blog.mgechev.com Survey: mgv.io/talk