Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
How we built Housing Go Chrome Dev Summit 2016
Search
Rahul Yadav
November 11, 2016
Technology
580
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
How we built Housing Go Chrome Dev Summit 2016
Rahul Yadav
November 11, 2016
More Decks by Rahul Yadav
See All by Rahul Yadav
Building Fast and Performant Apps.
dxtr026
5
1.1k
Other Decks in Technology
See All in Technology
go-sqletch
moznion
0
140
AIカンパニーへの転換を支えた、エンジニアの仕事の再定義
kworkdev
PRO
2
1.2k
触りたくないデータに、どう触るか AI時代のRBACアクセスガバナンス
ivry_presentationmaterials
0
260
AIがコードを書く時代に、エンジニアは何で自分の価値を証明するのか / In an era where AI writes code how do engineers prove their value
carta_engineering
3
1.1k
AI導入は済んだ。次は統制を作り替える番だ_AI×開発組織 Summit 2026
techtekt
PRO
0
220
JAWS-UGグッズ職人仕事の流儀
kentapapa
0
100
宣言型部分更新は何を解決しどこへ向かうのか
shuta13
1
450
re:Invent初参加で変わったこと、2回目にやってみたいこと(JAWS-UG彩の国埼玉 #12)
mhrtech
2
220
パッチ更新でterraform initが落ちた日
grimoh
1
140
オントロジーって 結局なにもの? AI エージェントに「意味」を渡す知識設計の話
greenmidori
0
190
Kiro Crewをはじめよう
kizawa2020
1
160
その Valkey 使いこなしていますか?
onk
PRO
5
1.5k
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
450
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Google's AI Overviews - The New Search
badams
0
1.6k
Evolving SEO for Evolving Search Engines
ryanjones
0
330
Build your cross-platform service in a week with App Engine
jlugia
234
19k
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
870
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
59k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
520
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
430
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
950
Transcript
How we built it !
Rahul Yadav Team Lead, Front-end, Housing.com @dxtr026
“Home buying is a one-time activity for majority of our
users”
Challenges Low end phones
Old Website Monolithic Architecture Code Bloat Performance Suffered
Better Discovery
Cost 0 150 300 Native App Mobile Web INR 250
INR 5
Browser Support
30% faster page load 10% longer average session 40% lower
bounce rate 38% more conversions tinyurl.com/housingPWA Housing Go
Ritesh Kumar Front-end developer, Housing.com @ritz078
• Assets delivery • First [Meaningful] Paint • First JS
enabled interaction • Returning user experience
Assets Delivery
Traditional website waterfall HTML CSS JS Render Starts Document Interactive
HTML Streaming
Partial HTML - 4.2 KB preconnect preload inline-css
Full HTML - 15 KB
Preload
First [Meaningful] Paint
First Paint First Meaningful Paint
Server Side Rendering
App Shell Model - First Load Nexus 5 - 3G
(1.6 Mbps/768 Kbps 300 ms RTT) Loading Screen of Purgatory White screen of death Meaningful Content 2.2s 7s
SSR enabled White screen of death Meaningful Content Nexus 5
- 3G (1.6 Mbps/768 Kbps 300 ms RTT) 2.3s
Basic Meaningful content without JavaScript
Lazy Load & JS enabled interaction “Lesser the JS, faster
the interaction time”
Code Splitting using
JS & CSS Sharding Hash: 3385819cba20c36c8271 Version: webpack 2.1.0-beta.25 Time:
26022ms Asset Size Chunks Chunk Names manifest.js.gz 1.4 kB 25 [emitted] manifest vendor.js.gz 64 kB 21, 25 [emitted] vendor app.js.gz 39.6 kB 22, 25 [emitted] app homeView.js.gz 11.5 kB 2, 25 [emitted] homeView searchView.js.gz 32.1 kB 1, 25 [emitted] searchView filterView.js.gz 14 kB 8, 25 [emitted] filterView notifyView.js.gz 9.21 kB 9, 25 [emitted] notifyView projectsDedicatedView.js.gz 30.5 kB 0, 25 [emitted] projectsDedicatedView resaleDedicatedView.js.gz 23.9 kB 5, 25 [emitted] resaleDedicatedView pushNotificationsView.js.gz 1.81 kB 17, 25 [emitted] pushNotificationsView offlineView.js.gz 1.81 kB 18, 25 [emitted] offlineView app.css.gz 1.37 kB 22, 25 [emitted] app lazyView.css.gz 3.79 kB 23, 25 [emitted] lazyView homeView.css.gz 2.54 kB 2, 25 [emitted] homeView searchView.css.gz 2.89 kB 1, 25 [emitted] searchView filterView.css.gz 1.5 kB 8, 25 [emitted] filterView notifyView.css.gz 1.16 kB 9, 25 [emitted] notifyView pushNotificationsView.css.gz 1.48 kB 17, 25 [emitted] pushNotificationsView resaleDedicatedView.css.gz 4.22 kB 5, 25 [emitted] resaleDedicatedView projectsDedicatedView.css.gz 6.82 kB 0, 25 [emitted] projectsDedicatedView offlineView.css.gz 368 bytes 18, 25 [emitted] offlineView
Route Based Chunks
<Route name="search" path="search" getComponent={(location, cb) => { require.ensure([], (require) =>
{ require('views/searchView') requireStyle("searchView").then(() => { cb(null, require("views/searchView").default) loadView("detailsView") }) }, "searchView") }} />
Intent Based Chunks
notifyView.js loads once this is clicked 32 KB
First [Meaningful] Paint JS enabled interaction Nexus 5 - 3G
(1.6 Mbps/768 Kbps 300 ms RTT) 2.3 s 4.2 s
Push Render Pre-cache Lazy-load
Returning Users
Pre-cache using Service Workers importScripts('sw-toolbox.js') // pre caching const resources
= ['filterView.js','detailsView.js','searchView.js'] toolbox.precache(resources) // runtime caching toolbox.router.get('(.*).js', toolbox.cacheFirst, { origin: /.housingcdn.com/, mode: 'cors', cache: { name: 'js-assets', maxEntries: 20 } })
First Visit First meaningful paint : 712 ms JS enabled
interaction : 1.1 s First meaningful paint : 2.2s JS enabled interaction : 4.2 s Repeated Visit Nexus 5 - 3G (1.6 Mbps/768 Kbps 300 ms RTT)
Add to Home Screen Push Notifications Better Conversions
Offline Navigation Active link. Navigation allowed in offline mode
Credential Management API
Maintenance
Continuous Integration
File sizes
Route based Statistics
Network Waterfall & TimeLine http://tinyurl.com/housingPWACi
Whats’s Next ?
React preact + preact-compat
PWA AMP http://tinyurl.com/housingAMP
Thank You! Rahul Yadav @dxtr026 Ritesh Kumar @ritz078 @housingengg @engineering-housing