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 stack behind Flipkart Lite | Modern Web Summit
Search
Boopathi Rajaa
February 04, 2016
Programming
1
120
The stack behind Flipkart Lite | Modern Web Summit
Talk by me on "The Stack behind Flipkart Lite" @ Modern Web Summit ( Feb 4, 2016 ).
Boopathi Rajaa
February 04, 2016
Tweet
Share
More Decks by Boopathi Rajaa
See All by Boopathi Rajaa
Compiling GraphQL to be Fast
boopathi
0
94
Git Internals and Git Rebasing
boopathi
1
110
Other Decks in Programming
See All in Programming
テストカバレッジ100%を10年続けて得られた学びと品質
mottyzzz
2
600
速いWebフレームワークを作る
yusukebe
5
1.7k
「手軽で便利」に潜む罠。 Popover API を WCAG 2.2の視点で安全に使うには
taitotnk
0
860
ファインディ株式会社におけるMCP活用とサービス開発
starfish719
0
1.4k
OSS開発者という働き方
andpad
5
1.7k
アプリの "かわいい" を支えるアニメーションツールRiveについて
uetyo
0
270
AWS発のAIエディタKiroを使ってみた
iriikeita
1
190
開発チーム・開発組織の設計改善スキルの向上
masuda220
PRO
20
11k
「待たせ上手」なスケルトンスクリーン、 そのUXの裏側
teamlab
PRO
0
530
AI時代のUIはどこへ行く?
yusukebe
18
8.9k
Kiroで始めるAI-DLC
kaonash
2
590
1から理解するWeb Push
dora1998
7
1.9k
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
The Power of CSS Pseudo Elements
geoffreycrofte
77
6k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
GitHub's CSS Performance
jonrohan
1032
460k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
It's Worth the Effort
3n
187
28k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
840
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Transcript
Modern Web Summit THE STACK BEHIND FLIPKART LITE Boopathi Rajaa
@heisenbugger
Modern Web Summit ???
Modern Web Summit We write lots of JavaScript
Modern Web Summit HTML Page Shells
Modern Web Summit Loading state (Pre data) Loaded State (Post
data) SHELL SHELL + Content
Modern Web Summit Loading state (Pre data) Loaded State (Post
data) SHELL SHELL + Content
Modern Web Summit Perceived > Actual
Modern Web Summit CLIENT SIDE ONLY SERVER SIDE RENDERING HTML
PAGE SHELLS SHELLS + SERVICE WORKERS response rendering starts
Modern Web Summit React.renderToString()
Modern Web Summit componentDidMount
Modern Web Summit /:slug/p/:itemid /(.*)/pr /search /accounts/(.*)
Modern Web Summit ReactRouter
Modern Web Summit /:slug/p/:itemid /(.*)/pr /search /accounts/(.*) /:slug/p/:itemid /(.*)/pr /search
/accounts/(.*)
Modern Web Summit function convertParams(p) { return PathUtils.injectParams(p, { splat:
'splat', slug: 'slug', itemId: 'itemId', sellerName: 'sellerName', sellerId: 'sellerId' }); } Hackity Hack Hack
Modern Web Summit Route Defined Route To Render Shell /:slug/p/:itemid
→ /slug/p/itemId → product /(.*)/pr → /splat/pr → browse /search → /search → search /accounts/(.*) → /accounts/splat → accounts injectParams
Modern Web Summit Bundle to Static assets
Modern Web Summit webpack
Modern Web Summit vendor.config.js react, react-router, phrontend, etc… client.config.js client.js
→ routes.js → root server.config.js server.js → routes.js → root hbs.config.js hbs-loader → hbs.bundle.js → <shell>.hbs sw.config.js sw.js + build props from client & vendor
Modern Web Summit Two level templating
Modern Web Summit index.hbs browse.hbs product.hbs search.hbs accounts.hbs build time
render React.renderToString() hbs-loader /:slug/p/:itemid /(.*)/pr /search /accounts/(.*) runtime - express js
Modern Web Summit client bundle app.<hash>.js main.<hash>.css sw.js sw.bundle.<hash>.js (byte
diff)
Modern Web Summit css-modules
Modern Web Summit .header { } .02jei { }
Modern Web Summit babel
Modern Web Summit phrontend github.com/flipkart-incubator/phrontend
Modern Web Summit Monorepo vs Repo per feature
Modern Web Summit Thank you Boopathi Rajaa @heisenbugger