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
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

Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 

Recently uploaded (20)

Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 

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
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 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