SlideShare a Scribd company logo
Instant Mobile Web: An AMP Primer
Lisa Huang

Oct 2017

Slides: bit.ly/SVCC_AMP

Twitter/Github: @lisaychuang
INSTANT MOBILE WEB: AN AMP PRIMER
Hello LRTF!
▸ Financial analyst > Digital Marketer > Fullstack
Engineer
▸ Flatiron School alumnae
▸ Taiwan + Singapore + South Africa + USA
▸ Basic Android phone & buying data by MBs
▸ Discovered AMP project through a SEO course
on FrontEndMasters.com
INSTANT MOBILE WEB: AN AMP PRIMER
Shift Towards Mobile
▸ Oct 2016 - Mobile page views has
overtaken Desktop for the first time
globally
▸ March 2017 - Android device page
views has overtaken Windows
▸ Momentum in this direction is only
growing!
INSTANT MOBILE WEB: AN AMP PRIMER
Performance === 💰💸
➡ wpostats.com ⬅
▸ Google: 800ms page load time results in $1M daily revenue loss
▸ Pinterest: Reduced wait time by 40% increased signups 15%
▸ BBC: Every +1s of page load time reduces engagement 10%
▸ Financial Times: faster ft.com showed 30% more user engagement
INSTANT MOBILE WEB: AN AMP PRIMER
▸ AMP is an open source framework to build really fast
mobile pages
▸ Create instantly loading mobile pages
▸ 2 Billion+ pages, 900K+ domains, 100+ languages
▸ May 2017: Google mobile search AMP Top Stories
Carousel global rollout
https://www.ampproject.org/
https://techcrunch.com/2016/02/24/google-now-highlights-amp-pages-in-its-mobile-search-results/
INSTANT MOBILE WEB: AN AMP PRIMER
Content Platforms AMP Works On
https://www.ampproject.org/support/faqs/supported-platforms
▸ Facebook
▸ Twitter
▸ WordPress
▸ Google
▸ Medium
▸ Pinterest
▸ LinkedIn
▸ Reddit
▸ Nuzzel
▸ Hatena
▸ Squarespace
▸ Ghost
▸ Drupal
▸ Fastcommerce
▸ Canvas
INSTANT MOBILE WEB: AN AMP PRIMER
Who uses AMP Today?
INSTANT MOBILE WEB: AN AMP PRIMER
Google I/O May 2017 announcements
▸ Before: focused on static content
▸ Now: interactive content, moving towards an
interactive framework
▸ Future: ecommerce, highly interactive
experiences
▸ AMP to PWA!
INSTANT MOBILE WEB: AN AMP PRIMER
To AMP or not to AMP
▸ Feel locked into Google ecosystem
▸ Direct traffic vs Google cache

https://www.google.com/amp/s/
amp.theguardian.com/world/2017/oct/05/
nobel-peace-prize-2017-who-are-the-likely-
nominees
▸ Restrictive branding / styling
▸ Limited analytics data
▸ AMP analytics API supports 

34 analytics platforms!
https://www.ampproject.org/docs/guides/analytics/analytics-vendors
INSTANT MOBILE WEB: AN AMP PRIMER
Mobile Web Challenges
📱 Most devices are not powerful
📡 Cellular networks make connections slowly
' JS is usually doing all the heavy lifting
INSTANT MOBILE WEB: AN AMP PRIMER
📱 Challenge #1: Most devices are not powerful
INSTANT MOBILE WEB: AN AMP PRIMER
🐢 Where does the slow come from?
▸ Complex CSS animations
▸ Video viewing
▸ Data download & processing
▸ Background Processes (Web Worker)
▸ Push notifications
▸ GPS
▸ Sensors: accelerometer, gyroscope,
magnetometer requests
https://developer.apple.com/library/content/documentation/Perf
INSTANT MOBILE WEB: AN AMP PRIMER
Case Study: CSS Animations
▸ First, let’s animate the ball by iteratively setting the
left position
▸ This triggers re-layout calculations, and the
resulting animation is “janky”
▸ This experience is never desirable, but how could
we enforce it on a per-page basis?
INSTANT MOBILE WEB: AN AMP PRIMER
Case Study: CSS Animations
▸ Next, let’s animate the ball by iteratively setting
the transform: translateX() transformation
▸ This is GPU optimized, and does not trigger a re-
layout
▸ Only re-composition is required
INSTANT MOBILE WEB: AN AMP PRIMER
AMP approach: Subset CSS
▸ Only subset of CSS allowed
▸ Max. 50KB total CSS
▸ Animation: only GPU-accelerated properties allowed
▸ Use transform and opacity changes
https://developers.google.com/web/fundamentals/performance/rendering/stick-to-compositor-only-properties-and-manage-layer-count
➡ https://csstriggers.com/ ⬅
INSTANT MOBILE WEB: AN AMP PRIMER
AMP custom components
▸ <amp-img>
▸ specified fixed height & width
▸ includes placeholder, and a fallback
▸ srcset: Serves appropriate image for screen’s pixel density (resolution)
▸ <amp-iframe>
▸ Sandboxed
▸ Only request resources via HTTPS
https://www.ampproject.org/docs/
INSTANT MOBILE WEB: AN AMP PRIMER
📡 Challenge #2: Cellular networks make connections slowly
▸ Slow to initiate network connection
▸ Mobile network requests are extra expensive, and involve extra latency
▸ 2G: 300 - 1000ms, 3G: 200 - 400ms extra, 4G: 50 - 100ms extra
INSTANT MOBILE WEB: AN AMP PRIMER
So many network requests!
📱
🖥
50% of pages involve > 76 requests
INSTANT MOBILE WEB: AN AMP PRIMER
🐢 Where does the slow come from?
▸ Large numbers of requests, many of which are on the critical path!
▸ Javascript framework
▸ CSS as an external stylesheet
▸ Assets (images, custom fonts)
▸ Multi-step process for new domains (DNS) and establishing a SSL connection
▸ Cellular provider “round robin”
https://developer.apple.com/library/content/documentation/Perfo
Tested From: Dulles, VA, “Good 2G speed”
Chrome - Emulated Motorola G (Gen 4)📱 webpagetest.org
Case Study: Adobe Typekit Blog
INSTANT MOBILE WEB: AN AMP PRIMER
AMP Cache
▸ Your AMP pages may be
cached when they’re discovered
(or updates are found)
▸ This saves the overhead of DNS
resolution & SSL handshake
▸ AMP implementors may
optimize this even more in the
future!
https://medium.com/@cramforce/why-amp-html-does-not-take-full-advantage-of-the-preload-scanner-7e7f788aa94e
https://developers.google.com/amp/cache/overview
INSTANT MOBILE WEB: AN AMP PRIMER
AMP approach: Inlined CSS
▸ Inlined CSS stylesheet!
▸ When HTML lands —> Mobile page is ready for basic use!
https://medium.com/@cramforce/why-amp-html-does-not-take-full-advantage-of-the-preload-scanner-7e7f788aa94e
HTML
CSS
JSSingle Page App
🌟
HTML CSS
JS
AMP Html
🌟
<style amp-custom="">...</style>
INSTANT MOBILE WEB: AN AMP PRIMER
AMP approach: Prioritize resource loading
▸ Control network requests to prioritize resources effectively
▸ Prefetches and lazy-loads resources:
▸ Resources are prefetched as early as possible (⬇ the fold), but...
▸ lazy-loaded as late as possible (CPU is only used when resources are
actually shown to users)
https://medium.com/@cramforce/why-amp-html-does-not-take-full-advantage-of-the-preload-scanner-7e7f788aa94e
INSTANT MOBILE WEB: AN AMP PRIMER
' Challenge #3: JS doing all the heavy lifting
INSTANT MOBILE WEB: AN AMP PRIMER
Where does the slow come from?
▸ <script src="..."> requires additional network requests
▸ Synchronous JS pauses HTML parsing, it resumes once download completes
▸ Parsing the downloaded JS takes time (related to code size & other factors)
▸ Finally first meaningful paint 🎨 and interactivity📱
▸ ⚠ Server-side rendering aims to help, but is incredibly complex to get right
https://developer.apple.com/library/content/documentation/Performance/Conceptual/EnergyGuide-iOS/FundamentalConcepts.html
JS
INSTANT MOBILE WEB: AN AMP PRIMER
Case Study: Apple.com
▸ "good 3G" connection
▸ 10x CPU slowdown
HTML
CSS
IMG
IMG
JS
INSTANT MOBILE WEB: AN AMP PRIMER
Case Study: Apple.com
▸ Synchronous JS, waiting for external scripts to
download
▸ 3 network requests before images
HTML
CSS
IMG
IMG
JS
INSTANT MOBILE WEB: AN AMP PRIMER
Case Study: Apple.com
▸ Not optimized for above the fold
▸ Slow time to first paint & interactivity
HTML
CSS
IMG
IMG
INSTANT MOBILE WEB: AN AMP PRIMER
AMP approach: Async JS loading & iFrames
▸ Async JS loading keeps JS off the critical path
▸ Sandbox 3rd party JS in cross-domain iframe (also async)
▸ Block form submission and script execution (eval)
▸ Cannot trigger multiple style re-calcuation
▸ Block automatically triggered features (i.e., video autoplay)
🏖📦<script async src="">
INSTANT MOBILE WEB: AN AMP PRIMER
Live code!
▸ AMP validator plugin
1. Building the AMP boilerplate code
▸ “Hello AMP!”
2. Add embedded media
▸ <amp-youtube>, <amp-image-lightbox>
3. Add user interactivity:
▸ <amp-social-share>, <amp-sidebar>
bit.ly/AMPcode
2017 Silicon Valley Code Camp: Instant Mobile Web
2017 Silicon Valley Code Camp: Instant Mobile Web
2017 Silicon Valley Code Camp: Instant Mobile Web
2017 Silicon Valley Code Camp: Instant Mobile Web
2017 Silicon Valley Code Camp: Instant Mobile Web
2017 Silicon Valley Code Camp: Instant Mobile Web
2017 Silicon Valley Code Camp: Instant Mobile Web
2017 Silicon Valley Code Camp: Instant Mobile Web
2017 Silicon Valley Code Camp: Instant Mobile Web
2017 Silicon Valley Code Camp: Instant Mobile Web
2017 Silicon Valley Code Camp: Instant Mobile Web
INSTANT MOBILE WEB: AN AMP PRIMER
Recap: Mobile web challenges
📱 Most devices are not powerful
📡 Cellular networks make connections slowly
' JS is usually doing all the heavy lifting
INSTANT MOBILE WEB: AN AMP PRIMER
AMP + Progressive Web Apps
https://www.ampproject.org/docs/guides/pwa-amp/amp-to-pwa
INSTANT MOBILE WEB: AN AMP PRIMER
AMP with PWA features
▸ Add a Web App Manifest
for users to install to home
screen
▸ Use Service Worker to
enable offline access
▸ Inject custom JS scripts
that’s not AMP-
compatible
https://www.ampproject.org/docs/guides/pwa-amp/amp-as-pwa#install-a-service-worker-to-enable-offline-access
INSTANT MOBILE WEB: AN AMP PRIMER
AMP as entry point into PWA
<amp-install-serviceworker>
▸ Installs Service Worker from
origin
▸ Let Service Worker intercept
navigation request, and respond
with a PWA
▸ Shell URL rewriting
https://www.ampproject.org/docs/guides/pwa-amp#amp-pages-with-pwa-features
INSTANT MOBILE WEB: AN AMP PRIMER
AMP as data source for PWA
▸ Build AMP pages as modular units 📦
▸ AMP as content source backend
▸ AMP HTML powers both AMP and
PWA experience
https://www.ampproject.org/docs/guides/pwa-amp/amp-in-pwa
INSTANT MOBILE WEB: AN AMP PRIMER
🎉 Thank you! 🎉
Questions? 🤔
Twitter & Github: @lisaychuang
Email: lisa.yc.huang@gmail.com

More Related Content

What's hot

Accelerated Mobile Pages (AMP) & How it will Impact your Business
Accelerated Mobile Pages (AMP) & How it will Impact your BusinessAccelerated Mobile Pages (AMP) & How it will Impact your Business
Accelerated Mobile Pages (AMP) & How it will Impact your Business
Harshavardhan MP
 
Make JavaScript Faster
Make JavaScript FasterMake JavaScript Faster
Make JavaScript Faster
Steve Souders
 
Get AMP'ed for Accelerated Mobile Pages - SEO Grail Philadelphia 1/20/16
Get AMP'ed for Accelerated Mobile Pages - SEO Grail Philadelphia 1/20/16Get AMP'ed for Accelerated Mobile Pages - SEO Grail Philadelphia 1/20/16
Get AMP'ed for Accelerated Mobile Pages - SEO Grail Philadelphia 1/20/16
Sean Malseed
 
Accelerated Mobile Pages (AMP) The Next Revolution in Mobile Web Development
Accelerated Mobile Pages (AMP) The Next Revolution in Mobile Web DevelopmentAccelerated Mobile Pages (AMP) The Next Revolution in Mobile Web Development
Accelerated Mobile Pages (AMP) The Next Revolution in Mobile Web Development
NotifyVisitors
 
Performance.now() fast but not furious
Performance.now()   fast but not furiousPerformance.now()   fast but not furious
Performance.now() fast but not furious
Anna Migas
 
Google AMP - What is it and is it right for your website? SLCSEM, Oct 2016
Google AMP - What is it and is it right for your website? SLCSEM, Oct 2016Google AMP - What is it and is it right for your website? SLCSEM, Oct 2016
Google AMP - What is it and is it right for your website? SLCSEM, Oct 2016
Jesse Semchuck
 
Planning Your Progressive Web App
Planning Your Progressive Web AppPlanning Your Progressive Web App
Planning Your Progressive Web App
Jason Grigsby
 
Accelerated Mobile Pages (AMP)
Accelerated Mobile Pages (AMP)Accelerated Mobile Pages (AMP)
Accelerated Mobile Pages (AMP)
Chris Burgess
 
Raiders of the Fast Start: Frontend Performance Archaeology - Performance.now...
Raiders of the Fast Start: Frontend Performance Archaeology - Performance.now...Raiders of the Fast Start: Frontend Performance Archaeology - Performance.now...
Raiders of the Fast Start: Frontend Performance Archaeology - Performance.now...
Katie Sylor-Miller
 
Future of web development
Future of web developmentFuture of web development
Future of web development
hedgehog lab
 
Amp your site an intro to accelerated mobile pages
Amp your site  an intro to accelerated mobile pagesAmp your site  an intro to accelerated mobile pages
Amp your site an intro to accelerated mobile pages
Robert McFrazier
 
Amp your site: An intro to accelerated mobile pages
Amp your site: An intro to accelerated mobile pagesAmp your site: An intro to accelerated mobile pages
Amp your site: An intro to accelerated mobile pages
Robert McFrazier
 
Amp Overview #YGLF 2016
Amp Overview #YGLF 2016Amp Overview #YGLF 2016
Amp Overview #YGLF 2016
Ido Green
 
Digital marketing companies
Digital marketing companiesDigital marketing companies
Digital marketing companies
vohi sharma
 
Great Lakes Area .Net UG: Optimize .Net Azure App Services
Great Lakes Area .Net UG: Optimize .Net Azure App ServicesGreat Lakes Area .Net UG: Optimize .Net Azure App Services
Great Lakes Area .Net UG: Optimize .Net Azure App Services
Brian McKeiver
 
AMP Accelerated Mobile Pages - Getting Started & Analytics
AMP Accelerated Mobile Pages - Getting Started & AnalyticsAMP Accelerated Mobile Pages - Getting Started & Analytics
AMP Accelerated Mobile Pages - Getting Started & Analytics
Vincent Koc
 
AMP and PWA
AMP and PWAAMP and PWA
AMP and PWA
Eun Cho
 
Meet.js Summit 2019 - PWA in practice
Meet.js Summit 2019 - PWA in practiceMeet.js Summit 2019 - PWA in practice
Meet.js Summit 2019 - PWA in practice
Łukasz Romanowicz
 
High Performance Web - Full Stack Toronto
High Performance Web - Full Stack TorontoHigh Performance Web - Full Stack Toronto
High Performance Web - Full Stack Toronto
Maximiliano Firtman
 
Responsive Images and Performance
Responsive Images and PerformanceResponsive Images and Performance
Responsive Images and Performance
Maximiliano Firtman
 

What's hot (20)

Accelerated Mobile Pages (AMP) & How it will Impact your Business
Accelerated Mobile Pages (AMP) & How it will Impact your BusinessAccelerated Mobile Pages (AMP) & How it will Impact your Business
Accelerated Mobile Pages (AMP) & How it will Impact your Business
 
Make JavaScript Faster
Make JavaScript FasterMake JavaScript Faster
Make JavaScript Faster
 
Get AMP'ed for Accelerated Mobile Pages - SEO Grail Philadelphia 1/20/16
Get AMP'ed for Accelerated Mobile Pages - SEO Grail Philadelphia 1/20/16Get AMP'ed for Accelerated Mobile Pages - SEO Grail Philadelphia 1/20/16
Get AMP'ed for Accelerated Mobile Pages - SEO Grail Philadelphia 1/20/16
 
Accelerated Mobile Pages (AMP) The Next Revolution in Mobile Web Development
Accelerated Mobile Pages (AMP) The Next Revolution in Mobile Web DevelopmentAccelerated Mobile Pages (AMP) The Next Revolution in Mobile Web Development
Accelerated Mobile Pages (AMP) The Next Revolution in Mobile Web Development
 
Performance.now() fast but not furious
Performance.now()   fast but not furiousPerformance.now()   fast but not furious
Performance.now() fast but not furious
 
Google AMP - What is it and is it right for your website? SLCSEM, Oct 2016
Google AMP - What is it and is it right for your website? SLCSEM, Oct 2016Google AMP - What is it and is it right for your website? SLCSEM, Oct 2016
Google AMP - What is it and is it right for your website? SLCSEM, Oct 2016
 
Planning Your Progressive Web App
Planning Your Progressive Web AppPlanning Your Progressive Web App
Planning Your Progressive Web App
 
Accelerated Mobile Pages (AMP)
Accelerated Mobile Pages (AMP)Accelerated Mobile Pages (AMP)
Accelerated Mobile Pages (AMP)
 
Raiders of the Fast Start: Frontend Performance Archaeology - Performance.now...
Raiders of the Fast Start: Frontend Performance Archaeology - Performance.now...Raiders of the Fast Start: Frontend Performance Archaeology - Performance.now...
Raiders of the Fast Start: Frontend Performance Archaeology - Performance.now...
 
Future of web development
Future of web developmentFuture of web development
Future of web development
 
Amp your site an intro to accelerated mobile pages
Amp your site  an intro to accelerated mobile pagesAmp your site  an intro to accelerated mobile pages
Amp your site an intro to accelerated mobile pages
 
Amp your site: An intro to accelerated mobile pages
Amp your site: An intro to accelerated mobile pagesAmp your site: An intro to accelerated mobile pages
Amp your site: An intro to accelerated mobile pages
 
Amp Overview #YGLF 2016
Amp Overview #YGLF 2016Amp Overview #YGLF 2016
Amp Overview #YGLF 2016
 
Digital marketing companies
Digital marketing companiesDigital marketing companies
Digital marketing companies
 
Great Lakes Area .Net UG: Optimize .Net Azure App Services
Great Lakes Area .Net UG: Optimize .Net Azure App ServicesGreat Lakes Area .Net UG: Optimize .Net Azure App Services
Great Lakes Area .Net UG: Optimize .Net Azure App Services
 
AMP Accelerated Mobile Pages - Getting Started & Analytics
AMP Accelerated Mobile Pages - Getting Started & AnalyticsAMP Accelerated Mobile Pages - Getting Started & Analytics
AMP Accelerated Mobile Pages - Getting Started & Analytics
 
AMP and PWA
AMP and PWAAMP and PWA
AMP and PWA
 
Meet.js Summit 2019 - PWA in practice
Meet.js Summit 2019 - PWA in practiceMeet.js Summit 2019 - PWA in practice
Meet.js Summit 2019 - PWA in practice
 
High Performance Web - Full Stack Toronto
High Performance Web - Full Stack TorontoHigh Performance Web - Full Stack Toronto
High Performance Web - Full Stack Toronto
 
Responsive Images and Performance
Responsive Images and PerformanceResponsive Images and Performance
Responsive Images and Performance
 

Similar to 2017 Silicon Valley Code Camp: Instant Mobile Web

E-commerce Berlin Expo 2018 - From AMP to PWA: A Modern Web User Journey
E-commerce Berlin Expo 2018 - From AMP to PWA: A Modern Web User JourneyE-commerce Berlin Expo 2018 - From AMP to PWA: A Modern Web User Journey
E-commerce Berlin Expo 2018 - From AMP to PWA: A Modern Web User Journey
E-Commerce Berlin EXPO
 
Faster web pages
Faster web pagesFaster web pages
Faster web pages
David Rodenas
 
Optimizing web performance (Fronteers edition)
Optimizing web performance (Fronteers edition)Optimizing web performance (Fronteers edition)
Optimizing web performance (Fronteers edition)
Dave Olsen
 
AMP in WordPress, the WordPress Way
AMP in WordPress, the WordPress WayAMP in WordPress, the WordPress Way
AMP in WordPress, the WordPress Way
Alberto Medina
 
Going All-In On AMP
Going All-In On AMPGoing All-In On AMP
Going All-In On AMP
Benu Aggarwal
 
2nd AMIMOTO: WordPress + Amazon Web Services Singapore
2nd AMIMOTO: WordPress + Amazon Web Services Singapore2nd AMIMOTO: WordPress + Amazon Web Services Singapore
2nd AMIMOTO: WordPress + Amazon Web Services Singapore
Kel
 
Integrating Accelerated Mobile Pages (AMP) In Drupal Websites
Integrating Accelerated Mobile Pages (AMP) In Drupal WebsitesIntegrating Accelerated Mobile Pages (AMP) In Drupal Websites
Integrating Accelerated Mobile Pages (AMP) In Drupal Websites
Excellent Webworld
 
Get AMP’ed for AMP!
Get AMP’ed for AMP!Get AMP’ed for AMP!
Get AMP’ed for AMP!
Greenlane
 
Developing for Mobile Web
Developing for Mobile WebDeveloping for Mobile Web
Developing for Mobile Web
Barbara Bermes
 
Taking Web Applications Offline
Taking Web Applications OfflineTaking Web Applications Offline
Taking Web Applications Offline
Matt Casto
 
Building for, perceiving and measuring performance for mobile web
Building for, perceiving and measuring performance for mobile webBuilding for, perceiving and measuring performance for mobile web
Building for, perceiving and measuring performance for mobile web
Robin Glen
 
SearchLeeds 2019 - Nichola stott - The state of PWAs
SearchLeeds 2019 - Nichola stott - The state of PWAsSearchLeeds 2019 - Nichola stott - The state of PWAs
SearchLeeds 2019 - Nichola stott - The state of PWAs
SearchLeeds
 
Complete SEO Report with checklist required
Complete SEO Report with checklist requiredComplete SEO Report with checklist required
Complete SEO Report with checklist required
aaimannoor5
 
7 secrets of performance oriented front end development services
7 secrets of performance oriented front end development services7 secrets of performance oriented front end development services
7 secrets of performance oriented front end development services
Katy Slemon
 
Demystifying web performance tooling and metrics
Demystifying web performance tooling and metricsDemystifying web performance tooling and metrics
Demystifying web performance tooling and metrics
Anna Migas
 
AMIMOTO: WordPress + Amazon Web Services MANILA
AMIMOTO: WordPress + Amazon Web Services MANILAAMIMOTO: WordPress + Amazon Web Services MANILA
AMIMOTO: WordPress + Amazon Web Services MANILA
Kel
 
Building Responsive Websites and Apps with Drupal
Building Responsive Websites and Apps with DrupalBuilding Responsive Websites and Apps with Drupal
Building Responsive Websites and Apps with Drupal
Four Kitchens
 
Testing installable mobile apps analogues
Testing installable mobile apps analoguesTesting installable mobile apps analogues
Testing installable mobile apps analogues
Diana Pinchuk
 
Its timetostopstalling pentabar
Its timetostopstalling pentabarIts timetostopstalling pentabar
Its timetostopstalling pentabar
Doug Sillars
 
AMP and the instant web - WebPerformance NYC MeetUp group
AMP and the instant web - WebPerformance NYC MeetUp groupAMP and the instant web - WebPerformance NYC MeetUp group
AMP and the instant web - WebPerformance NYC MeetUp group
Michael Posso
 

Similar to 2017 Silicon Valley Code Camp: Instant Mobile Web (20)

E-commerce Berlin Expo 2018 - From AMP to PWA: A Modern Web User Journey
E-commerce Berlin Expo 2018 - From AMP to PWA: A Modern Web User JourneyE-commerce Berlin Expo 2018 - From AMP to PWA: A Modern Web User Journey
E-commerce Berlin Expo 2018 - From AMP to PWA: A Modern Web User Journey
 
Faster web pages
Faster web pagesFaster web pages
Faster web pages
 
Optimizing web performance (Fronteers edition)
Optimizing web performance (Fronteers edition)Optimizing web performance (Fronteers edition)
Optimizing web performance (Fronteers edition)
 
AMP in WordPress, the WordPress Way
AMP in WordPress, the WordPress WayAMP in WordPress, the WordPress Way
AMP in WordPress, the WordPress Way
 
Going All-In On AMP
Going All-In On AMPGoing All-In On AMP
Going All-In On AMP
 
2nd AMIMOTO: WordPress + Amazon Web Services Singapore
2nd AMIMOTO: WordPress + Amazon Web Services Singapore2nd AMIMOTO: WordPress + Amazon Web Services Singapore
2nd AMIMOTO: WordPress + Amazon Web Services Singapore
 
Integrating Accelerated Mobile Pages (AMP) In Drupal Websites
Integrating Accelerated Mobile Pages (AMP) In Drupal WebsitesIntegrating Accelerated Mobile Pages (AMP) In Drupal Websites
Integrating Accelerated Mobile Pages (AMP) In Drupal Websites
 
Get AMP’ed for AMP!
Get AMP’ed for AMP!Get AMP’ed for AMP!
Get AMP’ed for AMP!
 
Developing for Mobile Web
Developing for Mobile WebDeveloping for Mobile Web
Developing for Mobile Web
 
Taking Web Applications Offline
Taking Web Applications OfflineTaking Web Applications Offline
Taking Web Applications Offline
 
Building for, perceiving and measuring performance for mobile web
Building for, perceiving and measuring performance for mobile webBuilding for, perceiving and measuring performance for mobile web
Building for, perceiving and measuring performance for mobile web
 
SearchLeeds 2019 - Nichola stott - The state of PWAs
SearchLeeds 2019 - Nichola stott - The state of PWAsSearchLeeds 2019 - Nichola stott - The state of PWAs
SearchLeeds 2019 - Nichola stott - The state of PWAs
 
Complete SEO Report with checklist required
Complete SEO Report with checklist requiredComplete SEO Report with checklist required
Complete SEO Report with checklist required
 
7 secrets of performance oriented front end development services
7 secrets of performance oriented front end development services7 secrets of performance oriented front end development services
7 secrets of performance oriented front end development services
 
Demystifying web performance tooling and metrics
Demystifying web performance tooling and metricsDemystifying web performance tooling and metrics
Demystifying web performance tooling and metrics
 
AMIMOTO: WordPress + Amazon Web Services MANILA
AMIMOTO: WordPress + Amazon Web Services MANILAAMIMOTO: WordPress + Amazon Web Services MANILA
AMIMOTO: WordPress + Amazon Web Services MANILA
 
Building Responsive Websites and Apps with Drupal
Building Responsive Websites and Apps with DrupalBuilding Responsive Websites and Apps with Drupal
Building Responsive Websites and Apps with Drupal
 
Testing installable mobile apps analogues
Testing installable mobile apps analoguesTesting installable mobile apps analogues
Testing installable mobile apps analogues
 
Its timetostopstalling pentabar
Its timetostopstalling pentabarIts timetostopstalling pentabar
Its timetostopstalling pentabar
 
AMP and the instant web - WebPerformance NYC MeetUp group
AMP and the instant web - WebPerformance NYC MeetUp groupAMP and the instant web - WebPerformance NYC MeetUp group
AMP and the instant web - WebPerformance NYC MeetUp group
 

Recently uploaded

Multimodal Retrieval Augmented Generation (RAG) with Milvus
Multimodal Retrieval Augmented Generation (RAG) with MilvusMultimodal Retrieval Augmented Generation (RAG) with Milvus
Multimodal Retrieval Augmented Generation (RAG) with Milvus
Zilliz
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
BookNet Canada
 
Chapter 6 - Test Tools Considerations V4.0
Chapter 6 - Test Tools Considerations V4.0Chapter 6 - Test Tools Considerations V4.0
Chapter 6 - Test Tools Considerations V4.0
Neeraj Kumar Singh
 
New ThousandEyes Product Features and Release Highlights: June 2024
New ThousandEyes Product Features and Release Highlights: June 2024New ThousandEyes Product Features and Release Highlights: June 2024
New ThousandEyes Product Features and Release Highlights: June 2024
ThousandEyes
 
Kubernetes Cloud Native Indonesia Meetup - June 2024
Kubernetes Cloud Native Indonesia Meetup - June 2024Kubernetes Cloud Native Indonesia Meetup - June 2024
Kubernetes Cloud Native Indonesia Meetup - June 2024
Prasta Maha
 
Chapter 5 - Managing Test Activities V4.0
Chapter 5 - Managing Test Activities V4.0Chapter 5 - Managing Test Activities V4.0
Chapter 5 - Managing Test Activities V4.0
Neeraj Kumar Singh
 
Navigating Post-Quantum Blockchain: Resilient Cryptography in Quantum Threats
Navigating Post-Quantum Blockchain: Resilient Cryptography in Quantum ThreatsNavigating Post-Quantum Blockchain: Resilient Cryptography in Quantum Threats
Navigating Post-Quantum Blockchain: Resilient Cryptography in Quantum Threats
anupriti
 
Chapter 2 - Testing Throughout SDLC V4.0
Chapter 2 - Testing Throughout SDLC V4.0Chapter 2 - Testing Throughout SDLC V4.0
Chapter 2 - Testing Throughout SDLC V4.0
Neeraj Kumar Singh
 
intra-mart Accel series 2024 Spring updates_En
intra-mart Accel series 2024 Spring updates_Enintra-mart Accel series 2024 Spring updates_En
intra-mart Accel series 2024 Spring updates_En
NTTDATA INTRAMART
 
Getting Started Using the National Research Platform
Getting Started Using the National Research PlatformGetting Started Using the National Research Platform
Getting Started Using the National Research Platform
Larry Smarr
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
UiPathCommunity
 
Distributed System Performance Troubleshooting Like You’ve Been Doing it for ...
Distributed System Performance Troubleshooting Like You’ve Been Doing it for ...Distributed System Performance Troubleshooting Like You’ve Been Doing it for ...
Distributed System Performance Troubleshooting Like You’ve Been Doing it for ...
ScyllaDB
 
Artificial Intelligence and Its Different Domains.pptx
Artificial Intelligence and Its Different Domains.pptxArtificial Intelligence and Its Different Domains.pptx
Artificial Intelligence and Its Different Domains.pptx
officialnavya2010
 
Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
Aurora Consulting
 
Chapter 1 - Fundamentals of Testing V4.0
Chapter 1 - Fundamentals of Testing V4.0Chapter 1 - Fundamentals of Testing V4.0
Chapter 1 - Fundamentals of Testing V4.0
Neeraj Kumar Singh
 
GDG Cloud Southlake #34: Neatsun Ziv: Automating Appsec
GDG Cloud Southlake #34: Neatsun Ziv: Automating AppsecGDG Cloud Southlake #34: Neatsun Ziv: Automating Appsec
GDG Cloud Southlake #34: Neatsun Ziv: Automating Appsec
James Anderson
 
Blockchain and Cyber Defense Strategies in new genre times
Blockchain and Cyber Defense Strategies in new genre timesBlockchain and Cyber Defense Strategies in new genre times
Blockchain and Cyber Defense Strategies in new genre times
anupriti
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
Vijayananda Mohire
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
Yevgen Sysoyev
 

Recently uploaded (20)

Multimodal Retrieval Augmented Generation (RAG) with Milvus
Multimodal Retrieval Augmented Generation (RAG) with MilvusMultimodal Retrieval Augmented Generation (RAG) with Milvus
Multimodal Retrieval Augmented Generation (RAG) with Milvus
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
 
Chapter 6 - Test Tools Considerations V4.0
Chapter 6 - Test Tools Considerations V4.0Chapter 6 - Test Tools Considerations V4.0
Chapter 6 - Test Tools Considerations V4.0
 
New ThousandEyes Product Features and Release Highlights: June 2024
New ThousandEyes Product Features and Release Highlights: June 2024New ThousandEyes Product Features and Release Highlights: June 2024
New ThousandEyes Product Features and Release Highlights: June 2024
 
Kubernetes Cloud Native Indonesia Meetup - June 2024
Kubernetes Cloud Native Indonesia Meetup - June 2024Kubernetes Cloud Native Indonesia Meetup - June 2024
Kubernetes Cloud Native Indonesia Meetup - June 2024
 
Chapter 5 - Managing Test Activities V4.0
Chapter 5 - Managing Test Activities V4.0Chapter 5 - Managing Test Activities V4.0
Chapter 5 - Managing Test Activities V4.0
 
Navigating Post-Quantum Blockchain: Resilient Cryptography in Quantum Threats
Navigating Post-Quantum Blockchain: Resilient Cryptography in Quantum ThreatsNavigating Post-Quantum Blockchain: Resilient Cryptography in Quantum Threats
Navigating Post-Quantum Blockchain: Resilient Cryptography in Quantum Threats
 
Chapter 2 - Testing Throughout SDLC V4.0
Chapter 2 - Testing Throughout SDLC V4.0Chapter 2 - Testing Throughout SDLC V4.0
Chapter 2 - Testing Throughout SDLC V4.0
 
intra-mart Accel series 2024 Spring updates_En
intra-mart Accel series 2024 Spring updates_Enintra-mart Accel series 2024 Spring updates_En
intra-mart Accel series 2024 Spring updates_En
 
Getting Started Using the National Research Platform
Getting Started Using the National Research PlatformGetting Started Using the National Research Platform
Getting Started Using the National Research Platform
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
 
Distributed System Performance Troubleshooting Like You’ve Been Doing it for ...
Distributed System Performance Troubleshooting Like You’ve Been Doing it for ...Distributed System Performance Troubleshooting Like You’ve Been Doing it for ...
Distributed System Performance Troubleshooting Like You’ve Been Doing it for ...
 
Artificial Intelligence and Its Different Domains.pptx
Artificial Intelligence and Its Different Domains.pptxArtificial Intelligence and Its Different Domains.pptx
Artificial Intelligence and Its Different Domains.pptx
 
Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
 
Chapter 1 - Fundamentals of Testing V4.0
Chapter 1 - Fundamentals of Testing V4.0Chapter 1 - Fundamentals of Testing V4.0
Chapter 1 - Fundamentals of Testing V4.0
 
GDG Cloud Southlake #34: Neatsun Ziv: Automating Appsec
GDG Cloud Southlake #34: Neatsun Ziv: Automating AppsecGDG Cloud Southlake #34: Neatsun Ziv: Automating Appsec
GDG Cloud Southlake #34: Neatsun Ziv: Automating Appsec
 
Blockchain and Cyber Defense Strategies in new genre times
Blockchain and Cyber Defense Strategies in new genre timesBlockchain and Cyber Defense Strategies in new genre times
Blockchain and Cyber Defense Strategies in new genre times
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
 

2017 Silicon Valley Code Camp: Instant Mobile Web

  • 1. Instant Mobile Web: An AMP Primer Lisa Huang Oct 2017 Slides: bit.ly/SVCC_AMP Twitter/Github: @lisaychuang
  • 2. INSTANT MOBILE WEB: AN AMP PRIMER Hello LRTF! ▸ Financial analyst > Digital Marketer > Fullstack Engineer ▸ Flatiron School alumnae ▸ Taiwan + Singapore + South Africa + USA ▸ Basic Android phone & buying data by MBs ▸ Discovered AMP project through a SEO course on FrontEndMasters.com
  • 3. INSTANT MOBILE WEB: AN AMP PRIMER Shift Towards Mobile ▸ Oct 2016 - Mobile page views has overtaken Desktop for the first time globally ▸ March 2017 - Android device page views has overtaken Windows ▸ Momentum in this direction is only growing!
  • 4. INSTANT MOBILE WEB: AN AMP PRIMER Performance === 💰💸 ➡ wpostats.com ⬅ ▸ Google: 800ms page load time results in $1M daily revenue loss ▸ Pinterest: Reduced wait time by 40% increased signups 15% ▸ BBC: Every +1s of page load time reduces engagement 10% ▸ Financial Times: faster ft.com showed 30% more user engagement
  • 5. INSTANT MOBILE WEB: AN AMP PRIMER ▸ AMP is an open source framework to build really fast mobile pages ▸ Create instantly loading mobile pages ▸ 2 Billion+ pages, 900K+ domains, 100+ languages ▸ May 2017: Google mobile search AMP Top Stories Carousel global rollout https://www.ampproject.org/ https://techcrunch.com/2016/02/24/google-now-highlights-amp-pages-in-its-mobile-search-results/
  • 6. INSTANT MOBILE WEB: AN AMP PRIMER Content Platforms AMP Works On https://www.ampproject.org/support/faqs/supported-platforms ▸ Facebook ▸ Twitter ▸ WordPress ▸ Google ▸ Medium ▸ Pinterest ▸ LinkedIn ▸ Reddit ▸ Nuzzel ▸ Hatena ▸ Squarespace ▸ Ghost ▸ Drupal ▸ Fastcommerce ▸ Canvas
  • 7. INSTANT MOBILE WEB: AN AMP PRIMER Who uses AMP Today?
  • 8. INSTANT MOBILE WEB: AN AMP PRIMER Google I/O May 2017 announcements ▸ Before: focused on static content ▸ Now: interactive content, moving towards an interactive framework ▸ Future: ecommerce, highly interactive experiences ▸ AMP to PWA!
  • 9. INSTANT MOBILE WEB: AN AMP PRIMER To AMP or not to AMP ▸ Feel locked into Google ecosystem ▸ Direct traffic vs Google cache
 https://www.google.com/amp/s/ amp.theguardian.com/world/2017/oct/05/ nobel-peace-prize-2017-who-are-the-likely- nominees ▸ Restrictive branding / styling ▸ Limited analytics data ▸ AMP analytics API supports 
 34 analytics platforms! https://www.ampproject.org/docs/guides/analytics/analytics-vendors
  • 10. INSTANT MOBILE WEB: AN AMP PRIMER Mobile Web Challenges 📱 Most devices are not powerful 📡 Cellular networks make connections slowly ' JS is usually doing all the heavy lifting
  • 11. INSTANT MOBILE WEB: AN AMP PRIMER 📱 Challenge #1: Most devices are not powerful
  • 12. INSTANT MOBILE WEB: AN AMP PRIMER 🐢 Where does the slow come from? ▸ Complex CSS animations ▸ Video viewing ▸ Data download & processing ▸ Background Processes (Web Worker) ▸ Push notifications ▸ GPS ▸ Sensors: accelerometer, gyroscope, magnetometer requests https://developer.apple.com/library/content/documentation/Perf
  • 13. INSTANT MOBILE WEB: AN AMP PRIMER Case Study: CSS Animations ▸ First, let’s animate the ball by iteratively setting the left position ▸ This triggers re-layout calculations, and the resulting animation is “janky” ▸ This experience is never desirable, but how could we enforce it on a per-page basis?
  • 14. INSTANT MOBILE WEB: AN AMP PRIMER Case Study: CSS Animations ▸ Next, let’s animate the ball by iteratively setting the transform: translateX() transformation ▸ This is GPU optimized, and does not trigger a re- layout ▸ Only re-composition is required
  • 15. INSTANT MOBILE WEB: AN AMP PRIMER AMP approach: Subset CSS ▸ Only subset of CSS allowed ▸ Max. 50KB total CSS ▸ Animation: only GPU-accelerated properties allowed ▸ Use transform and opacity changes https://developers.google.com/web/fundamentals/performance/rendering/stick-to-compositor-only-properties-and-manage-layer-count ➡ https://csstriggers.com/ ⬅
  • 16. INSTANT MOBILE WEB: AN AMP PRIMER AMP custom components ▸ <amp-img> ▸ specified fixed height & width ▸ includes placeholder, and a fallback ▸ srcset: Serves appropriate image for screen’s pixel density (resolution) ▸ <amp-iframe> ▸ Sandboxed ▸ Only request resources via HTTPS https://www.ampproject.org/docs/
  • 17. INSTANT MOBILE WEB: AN AMP PRIMER 📡 Challenge #2: Cellular networks make connections slowly ▸ Slow to initiate network connection ▸ Mobile network requests are extra expensive, and involve extra latency ▸ 2G: 300 - 1000ms, 3G: 200 - 400ms extra, 4G: 50 - 100ms extra
  • 18. INSTANT MOBILE WEB: AN AMP PRIMER So many network requests! 📱 🖥 50% of pages involve > 76 requests
  • 19. INSTANT MOBILE WEB: AN AMP PRIMER 🐢 Where does the slow come from? ▸ Large numbers of requests, many of which are on the critical path! ▸ Javascript framework ▸ CSS as an external stylesheet ▸ Assets (images, custom fonts) ▸ Multi-step process for new domains (DNS) and establishing a SSL connection ▸ Cellular provider “round robin” https://developer.apple.com/library/content/documentation/Perfo
  • 20. Tested From: Dulles, VA, “Good 2G speed” Chrome - Emulated Motorola G (Gen 4)📱 webpagetest.org Case Study: Adobe Typekit Blog
  • 21. INSTANT MOBILE WEB: AN AMP PRIMER AMP Cache ▸ Your AMP pages may be cached when they’re discovered (or updates are found) ▸ This saves the overhead of DNS resolution & SSL handshake ▸ AMP implementors may optimize this even more in the future! https://medium.com/@cramforce/why-amp-html-does-not-take-full-advantage-of-the-preload-scanner-7e7f788aa94e https://developers.google.com/amp/cache/overview
  • 22. INSTANT MOBILE WEB: AN AMP PRIMER AMP approach: Inlined CSS ▸ Inlined CSS stylesheet! ▸ When HTML lands —> Mobile page is ready for basic use! https://medium.com/@cramforce/why-amp-html-does-not-take-full-advantage-of-the-preload-scanner-7e7f788aa94e HTML CSS JSSingle Page App 🌟 HTML CSS JS AMP Html 🌟 <style amp-custom="">...</style>
  • 23. INSTANT MOBILE WEB: AN AMP PRIMER AMP approach: Prioritize resource loading ▸ Control network requests to prioritize resources effectively ▸ Prefetches and lazy-loads resources: ▸ Resources are prefetched as early as possible (⬇ the fold), but... ▸ lazy-loaded as late as possible (CPU is only used when resources are actually shown to users) https://medium.com/@cramforce/why-amp-html-does-not-take-full-advantage-of-the-preload-scanner-7e7f788aa94e
  • 24. INSTANT MOBILE WEB: AN AMP PRIMER ' Challenge #3: JS doing all the heavy lifting
  • 25. INSTANT MOBILE WEB: AN AMP PRIMER Where does the slow come from? ▸ <script src="..."> requires additional network requests ▸ Synchronous JS pauses HTML parsing, it resumes once download completes ▸ Parsing the downloaded JS takes time (related to code size & other factors) ▸ Finally first meaningful paint 🎨 and interactivity📱 ▸ ⚠ Server-side rendering aims to help, but is incredibly complex to get right https://developer.apple.com/library/content/documentation/Performance/Conceptual/EnergyGuide-iOS/FundamentalConcepts.html
  • 26. JS INSTANT MOBILE WEB: AN AMP PRIMER Case Study: Apple.com ▸ "good 3G" connection ▸ 10x CPU slowdown HTML CSS IMG IMG
  • 27. JS INSTANT MOBILE WEB: AN AMP PRIMER Case Study: Apple.com ▸ Synchronous JS, waiting for external scripts to download ▸ 3 network requests before images HTML CSS IMG IMG
  • 28. JS INSTANT MOBILE WEB: AN AMP PRIMER Case Study: Apple.com ▸ Not optimized for above the fold ▸ Slow time to first paint & interactivity HTML CSS IMG IMG
  • 29. INSTANT MOBILE WEB: AN AMP PRIMER AMP approach: Async JS loading & iFrames ▸ Async JS loading keeps JS off the critical path ▸ Sandbox 3rd party JS in cross-domain iframe (also async) ▸ Block form submission and script execution (eval) ▸ Cannot trigger multiple style re-calcuation ▸ Block automatically triggered features (i.e., video autoplay) 🏖📦<script async src="">
  • 30. INSTANT MOBILE WEB: AN AMP PRIMER Live code! ▸ AMP validator plugin 1. Building the AMP boilerplate code ▸ “Hello AMP!” 2. Add embedded media ▸ <amp-youtube>, <amp-image-lightbox> 3. Add user interactivity: ▸ <amp-social-share>, <amp-sidebar> bit.ly/AMPcode
  • 42. INSTANT MOBILE WEB: AN AMP PRIMER Recap: Mobile web challenges 📱 Most devices are not powerful 📡 Cellular networks make connections slowly ' JS is usually doing all the heavy lifting
  • 43. INSTANT MOBILE WEB: AN AMP PRIMER AMP + Progressive Web Apps https://www.ampproject.org/docs/guides/pwa-amp/amp-to-pwa
  • 44. INSTANT MOBILE WEB: AN AMP PRIMER AMP with PWA features ▸ Add a Web App Manifest for users to install to home screen ▸ Use Service Worker to enable offline access ▸ Inject custom JS scripts that’s not AMP- compatible https://www.ampproject.org/docs/guides/pwa-amp/amp-as-pwa#install-a-service-worker-to-enable-offline-access
  • 45. INSTANT MOBILE WEB: AN AMP PRIMER AMP as entry point into PWA <amp-install-serviceworker> ▸ Installs Service Worker from origin ▸ Let Service Worker intercept navigation request, and respond with a PWA ▸ Shell URL rewriting https://www.ampproject.org/docs/guides/pwa-amp#amp-pages-with-pwa-features
  • 46. INSTANT MOBILE WEB: AN AMP PRIMER AMP as data source for PWA ▸ Build AMP pages as modular units 📦 ▸ AMP as content source backend ▸ AMP HTML powers both AMP and PWA experience https://www.ampproject.org/docs/guides/pwa-amp/amp-in-pwa
  • 47. INSTANT MOBILE WEB: AN AMP PRIMER 🎉 Thank you! 🎉 Questions? 🤔 Twitter & Github: @lisaychuang Email: lisa.yc.huang@gmail.com