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
How we built Housing Go Chrome Dev Summit 2016
Search
Rahul Yadav
November 11, 2016
Technology
570
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
失敗を資産に変えるClaude Code
shinyasaita
0
430
Building applications in the Gemini API family.
line_developers_tw
PRO
0
3k
LLMにもCAP定理があるという話
harukasakihara
0
290
200個のGitHubリポジトリを横断調査したかった
icck
0
110
Snowflakeと仲良くなる第一歩
coco_se
4
430
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
1.9k
機械学習を「社会実装」するということ 2026年夏版 / Social Implementation of Machine Learning June 2026 Version
moepy_stats
4
1.5k
AAIFに入ってみた ~内から見えるコミュニティ動向~
sato4
0
160
Amazon Bedrock AgentCore ワークショップ JAWS UG TOHOKU / amazon-bedrock-agentcore-workshop-jawsug-tohoku-2026
gawa
9
690
Claude Code の Sandbox 機能を Anthropic Sandbox Runtime(srt) で試そう!/lets-play-anthropic-sandbox-runtime
tomoki10
1
540
MIERUNE JCT 発表資料「宇宙から伊能忠敬ごっこ」
syuchimu
0
210
RAG を使わないという選択肢
tatsutaka
1
190
Featured
See All Featured
ラッコキーワード サービス紹介資料
rakko
1
3.6M
Crafting Experiences
bethany
1
180
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
250
My Coaching Mixtape
mlcsv
0
140
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
400
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
360
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
290
Mobile First: as difficult as doing things right
swwweet
225
10k
Abbi's Birthday
coloredviolet
2
8k
So, you think you're a good person
axbom
PRO
2
2.1k
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