Putting the AMP in Progressive Web AMPs: Meet the ShadowReader

We’ve previously written plenty about combining AMP & PWA, short for Progressive Web Apps. While the idea of preloading your PWA while the reader is reading your AMP page is fairly straightforward, the other combination pattern, where AMP is used as data-source to power your PWA, is less understood.

In my recent Google I/O talk, I claimed that you could get an AMP page to render within your PWA within a few minutes of writing code, and while that might be true, it doesn’t reflect all the work to be done in a production app. It was time to eat our own dogfood and build a production-ready PWAMP from scratch. Meet the Shadow Reader:


Contrary to our simpler previously released
React-based sample app, The ShadowReader demo app is is so-called ‘vanilla JS’ (with the exception of AMP, of course) – built from scratch to demonstrate all steps required to create the experience – and uses real-world feeds and AMP pages from The Guardian. You can experience it yourself on your phone (or via emulation) at https://amp.cards.

So what’s special about this app? For once, it demonstrates how quickly you can spin up a so-called “app shell” if you already have a corpus of AMP pages. Instead of a giant app that includes all templating logic to display articles, this app simply reads the Guardian’s RSS feeds, then delegates to AMP for rendering an existing AMP page inline when you click a card. This makes the engineering effort and app itself incredibly lightweight. More highlights:

  • Pulling in real-world data means solving real-world challenges
  • Weighs less than 10kb (~200kb if you include Guardian web fonts and AMP)
  • Smooth card transitions and skeleton UI’s to further accelerate perceived performance
  • Supports full URL-based navigation, sharing

If you’re a developer, dive through the source code and head over to my own blog to learn exactly how I’ve built each feature and element of the app, including the FLIP-based animations and the article views that seamlessly reconnect with lazy-loaded cards.

The Shadow Reader is half inspiration, half tutorial. Use it to evaluate whether the PWAMP route makes sense for your use-case, and don’t hesitate to reach out if you need help getting started. Now PWAMP all the things!

Paul Bakaus
AMP Developer Advocate, Google

Putting the AMP in Progressive Web AMPs: Meet the ShadowReader

AMP Roadmap update for end of Q2

We’ve updated the AMP Roadmap to reflect progress on existing priorities as well as several new projects. You can see the highlights below:


amp-bind, a flexible event binding system supporting more interactivity in AMP is now fully available in production. To find out more about the range of capabilities this feature brings to AMP, read our blog post. Recently we’ve also launched support for validating form inputs via AJAX (experimental but launching soon – example) and the building blocks to compose search-autosuggest using amp-bind.

We are also working on a set of features geared toward engaging experiences in AMP. Specifically, we’re planning to improve amp-image-lightbox this quarter, so developers can easily implement an immersive lightbox experience synced with amp-carousel. Scroll-bound animations are also slated to launch in the next couple months. Once that’s in place, we’ll re-purpose the general solution for parallax scrolling and contextually-displayed headers. Video will also get a new scroll-bound feature: the ability to minimize to the corner of the viewport after the inline video is scrolled away. This will enable users to seamlessly engage with other content on the page at the same time as a featured video.

In addition, we will soon make available new templates for AMP Start to help developers in more verticals make great-looking AMP pages. We’re also making it easier to configure AMP Start pages without having to edit code directly by developing an AMP Start template configurator.

Finally, we’ve started work on some longer-term features to support even more interactivity.

  • E-commerce websites in particular will benefit from dedicated client-side sorting & filtering components, as well as a date picker.
  • Those of you building responsive pages will benefit from a revamped sidebar component that has the ability to change display format based on the width of the viewport. For example, users can have a toggle-able sidebar on mobile that changes into a fixed-position header on desktop.
  • We’re expanding the capabilities of embedded content in AMP by supporting messaging between amp-iframe and other elements in the parent document.


As Q2 ended, we have begun to focus on supporting video analytics natively in amp-analytics, starting with amp-video. Available experimentally now and coming to production next week, publishers will be able to capture video-specific data that’s associated with video events like play and pause. The spec is available at the link above, so please give us any feedback on how the proposal matches up with your needs.

On other fronts, we are wrapping up work from the previous quarter to allow AMP extensions to collect data using amp-analytics, we plan to start work to support filters soon, and we expect to have various projects that add further ways to customize amp-analytics, like the reportWhen feature listed in the roadmap.


We’ve been working on helping publishers enhance ad request information for better targeting and therefore better monetization using a new feature called Real Time Config (RTC). RTC helps publishers earn more from their AMP inventory by enhancing the ad request with things like cookie-based targeting information or more broadly any audience related information in a safe and performant manner without negative consequences to the user experience. We want to ensure all targeting based use cases can be implemented using RTC. We look forward to your input on the Github Issue.

We are also addressing a long standing ask to enable sponsorship campaigns where advertisers require competitive exclusions or roadblocks in AMP pages. We’ve begun work on the ability to correlate all ad requests on an AMP page to achieve this functionality and will soon open it up for testing in experimental. Please let us know on Github if you’d like to test drive this feature.

As a reminder, we have a number of innovative AMP Ads (e.g. Lightbox ads created in AMP format) available on AMP By Example to modify and use for your own campaigns for free. With the launch of amp-animation, scroll bound animation based ads are also easy to incorporate in your direct sold campaigns.

* * *

Thanks to the AMP development community for your work and feedback. As always, please let us know if you have any issues or feature requests.

Posted by Vamsee Jasti, Product Manager, AMP Project

AMP Roadmap update for end of Q2

amp-bind brings flexible interactivity to AMP pages

We invited developers to try out amp-bind in April to experiment with greater AMP page interactivity. Today we’d like to highlight that amp-bind is generally available and take a deeper dive into the feature, in order to give you a sense of just how much this expands AMP support—especially for e-commerce.

What is amp-bind?

We introduced amp-bind in an April blog post by saying:

amp-bind fundamentally changes the model for interactivity in AMP, while retaining AMP’s essential performance and UX assurances. amp-bind works more like a coding layer on top of AMP—going beyond the AMP Project’s historical approach of limiting interactivity to scoped, use-case-driven components like amp-carousel and amp-accordion. amp-bind links user actions with triggers for different document states, giving developers much more freedom in the types of interactions they can define.

While this definition is technically accurate, it’s also pretty abstract. The feature is so flexible that a broad description doesn’t really reveal what it can actually do.

What can amp-bind do?

One good way to start is to take a look at some of the basic behaviors for the feature. After that, you can try it out yourself by tweaking some of the code in the AMP by Example playground.

Building on what you’ve learned after mastering the basics, the examples below show you some of what’s possible when you combine amp-bind with other AMP HTML features.

  • Product color and size selection (detailed example below)
  • Server-side filter & sort (detailed example below)
  • Search results without page reload (detailed example below)
  • Search auto-suggest (detailed example below)
  • Carousel slide indicators (detailed example below)
  • Trigger navigation from “select” input
  • Smart buttons that update the state of the entire page state based on “like”, “thumbs up”, “add to cart”, etc. Could reveal a carousel of personalized recommendations based on this action, increment number of items in cart or “like” count.
  • Toggle between different views (list v. grid) of an array of items.
  • Toggle overlaying UI panels to customize product options before purchase
  • Hide/show tooltips
  • Use custom sliders to filter amp-list data
  • Change currency (e.g. from US dollars to euros) w/out updating the entire page
  • And more!

Product color and size selection


This example incorporates a number of features that are commonly found on product detail pages, though these features could also be separated and used individually if you don’t need the entire interaction. Here, amp-bind coordinates events and actions between amp-form, amp-selector, amp-carousel, and some basic CSS.

  1. User makes a selection in amp-form (with inputs using amp-selector for easy customization and clear semantics)
  2. There’s an event associated with each of these selections
  3. This event is coordinated through amp-bind to do a few things:
    1. trigger CSS display of one of three different amp-carousels (one for each color of apple)
    2. trigger “disabled” attributes (and therefore style) on form inputs where a particular size isn’t available for a particular color apple
    3. trigger updates to the price, based on the color of the apple

Because the page uses amp-bind, the user has visual confirmation of their selections, so they have the best possible understanding of their purchase before submitting the form.

Server-side filter & sort


Sorting & filtering with server-side data is now possible through amp-list[src] binding. It uses amp-bind to coordinate events and actions between the “select” input and amp-list. Let’s take a look step by step:

  1. User selects a sorting or filtering rule (let’s say “low to high”)
  2. There’s an event associated with changing the “select” input state
  3. This event is coordinated through amp-bind to trigger an update to an amp-list’s src attribute, appending a query param matching the sorting rule (?sort=price-ascending), which sends a call to the server
  4. The server responds with a list of results according to the sorting rule, which are rendered by amp-list according to its defined template

Because bind events can be triggered by an array of inputs, you can use this basic pattern for many other features, like adding additional results via a “show more” button, or paginating list results, so users can explore additional items in a list without re-loading the parent page. Developers You could even implement an experience where users refresh a list of personalized recommendations.

Best practice: statically display results on first loading the page, using div[placeholder], so there is no delay before the results are displayed to the user. Then, when the user interacts with the sorting & filtering mechanism, you can use amp-bind to issue a call through amp-list to an updated URL defined in the “src” attribute to display the results.

Search results without page reload


By fetching and displaying search results inline without a full page reload, users save bandwidth and can have a more seamless experience by retaining the context of the current page. The implementation approach is another application of binding to amp-list, this time using amp-form as well.

  1. User searches for “pear” through amp-form
  2. The event triggered by this search is coordinated through amp-bind to trigger an update to amp-list’s src attribute, appending a query param matching the search query (?searchProduct=pear), which sends a call to the server
  3. The server responds with a list of results according to the search query, which are rendered by amp-list according to its defined template

Search auto-suggest


This one (code here) adds a little bit more complexity to the amp-list[src] binding. It uses amp-bind to coordinate events and actions between amp-form and amp-list.

  1. User starts typing in the search box
  2. There’s an event associated with text input into form fields (debounced, to prevent these events from getting triggered with every button press)
  3. This event is coordinated through amp-bind to do two things:
    1. trigger visibility on a hidden div containing amp-list
    2. trigger an update to that amp-list’s src attribute, which sends a call to the server containing the partial query that the user has typed into the form
  4. The server responds with a list of potential results, based on this query, which amp-list renders through its template — and the user sees these options as auto-suggestions
  5. The amp-list template coordinates tapping on any one of these suggestions to update the form field, completing the interaction

Note: remember to turn off the browser’s automatic auto-suggest if you’re building your own, to avoid overlaying two different UIs for this function at the same time

Take a look at the example on GitHub to dive more into how this works. You can just copy-and-paste the example into your own page, and customize the template and your back end to serve just about anything: on one end of simplicity you could have more granular suggestions for words that the user could search for, and on the other you could display detail-rich cards for product results with prices, pictures, and ratings.

Carousel slide indicators


Here amp-bind is simply used to coordinate the index of amp-carousel with CSS styles on a simple page indicator (those four dots in the lower-left of the carousel).

  1. User swipes the slide in the carousel
  2. There’s an event associated with the change of the visible slide
  3. This event is coordinated through amp-bind to trigger a change in CSS styles for the pagination dots

This capability means that developers can configure a wide range of affordances to indicate that the carousel is swipeable, and don’t need to rely on the amp-carousel default arrows.

What’s next?

amp-bind is stable now, but it’s still actively getting more features. Based on feedback we’ve gotten from the community, we’re adding capabilities that make the component even more powerful—without sacrificing AMP’s essential performance and UX guarantees.

Among other things, the roadmap includes: updating URL query parameters and corresponding history state from bindings, to complete the sorting/filtering use-case; enabling messaging between iframes and their parent document, to enable rich interactions that cross the boundary between what can be inlined & embedded in AMP; and updated bindings to coordinate page state with forms validated through server calls.

Go forth! Explore! (and share what you find)

In the end, developers out there will probably discover more new capabilities than what we’ve identified here on the AMP team. So go forth! Explore! Experiment with amp-bind and let us know what you find—we’d love to see what you’ve built, and share with the broader AMP community.

As always, we want your feedback for amp-bind, and for any other feature you need support for in AMP. We’re looking forward to hearing from you!

Posted by Eric Lindley, Product Manager, AMP Project

amp-bind brings flexible interactivity to AMP pages

AMP Roadmap Update for Q2

We’ve updated the AMP Roadmap with our new projects and progress on existing priorities. Specifically we are focusing on format, analytics and ads improvements. Highlights from these areas below.


We’re doubling down on e-commerce, engagement, and developer tools this quarter, with big features in all three targeting completion by the end of June.

amp-bind, a flexible event binding system supporting more interactivity in AMP, is now available via origin trials, and targeting launch later this quarter. A recent addition to amp-bind is the ability to bind to amp-list’s src parameter. This opens up a wide range of functionality, including in-place sorting, filtering, pagination, and search results pulled in from an arbitrary server without re-loading or navigating the page. In addition, we’re implementing a method to support client-side sorting and filtering. These, along with two in-progress features, asynchronous form validation and form input autocompletion, should make it a lot easier to build robust e-commerce pages in AMP.

We’re also continuing to work on creating rich, engaging experiences in AMP. First, to better support rich imagery in AMP, we’ve refocused our efforts on improving amp-image-lightbox, so developers can easily implement an immersive lightbox experience synced with amp-carousel. Second, we’re continuing to work on scroll-bound behaviors. We’ve switched up the approach a bit to start by exposing a flexible framework for scroll-bound animations. Once that’s in place, we’ll re-purpose the general solution for parallax scrolling and contextually-displayed headers.

Finally, we’re building a handful of new templates for AMP Start to help developers in more verticals quickly make great-looking AMPs. To help customize the templates on the site, we’re also making it easier to configure AMP Start pages without having to edit code directly by developing an AMP Start configurator.


Several recent improvements have extended amp-analytics capabilities, particularly to support requirements for AMP ads. Tracking element visibility is now more flexible with the introduction of a waitFor property that can be specified alongside other visibility trigger parameters. We also plan on adding support to specify when visibility data should be reported (tentatively called “reportWhen”), which is useful for totals information (data that’s accumulated throughout the page lifecycle and reported just once).

We’ve introduced a mechanism to support varying the Client ID depending on viewing context. This has been employed as part of an announced change in Google Analytics — launching soon — that will bring consistency to how users are counted across AMP and non-AMP pages served from a publisher’s domain. It is available for other analytics vendors to use as well.

During the rest of the quarter, we will focus on launching support for AMP extensions to collect data using amp-analytics. We will also work on adding filter support to transform AMP variables prior to their being sent as part of analytics hit requests.


This quarter, we are focused on improving UX behaviors of existing ads, adding more options to improve monetization, and continue focus on supporting the ability to serve AMP ads using DoubleClick for Publishers.

We listened to your feedback that the current default ad placeholder was more conspicuous than we’d like it to be. We experimented with a few different options and settled on one that is more subtle than the previous version, which will roll out soon. We are also looking into optimizing how we load non-AMP ads served to AMP pages to help minimize the time a user sees the ad placeholder.

We are always working on ways to improve publisher monetization. Next month, we expect to launch the amp-ima-video component to allow serving pre-roll ads via the IMA SDK in the built-in browser video player. When a user dwells on the page for awhile, it can make sense to swap out an ad for another. We are working on a feature to auto refresh ads after a minimum interval to allow publishers to monetize more ads for the same number of pages.

The DoubleClick team is working on correlating ad requests on a single page to allow publishers to run ads that require competitive exclusions and roadblocks. The DoubleClick formats team is also working on the ability to deliver AMP creatives using the custom creatives type, which is expected to launch by July.

* * *

Thanks to the AMP development community for your work and feedback. As always, please let us know if you have any issues or feature requests.

Posted by Rudy Galfi, Product Manager, AMP Project

AMP Roadmap Update for Q2

Bringing the speed of AMP to search & display ads

The following was posted on Google’s Inside AdWords Blog by Jerry Dischler, Vice President, Product Management, Google.

Succeeding on mobile starts with getting the basics right. People choose brands that meet their needs instantly and seamlessly. That means no matter how great your site looks, if it loads slowly, users will leave and you’ll miss out.

The open source Accelerated Mobile Pages (AMP) Project launched 18 months ago to help make the web better with faster experiences. Since then, we’ve been expanding how we surface fast-loading AMP pages on Google Search — starting with the top stories carousel and extending to organic search listings.

Today we’re introducing two new ways to harness the speed of AMP to improve advertising performance. First, we’re launching a new AdWords beta that lets you use fast-loading AMP pages as the landing pages for your search ads. Second, we’re speeding up ads served across the Google Display Network by using the same technology that makes AMP pages so fast.

Improving campaign ROI with AMP landing pages

We’ve said before that the median page load time for an AMP page from Google Search is under one second. If that wasn’t already fast enough, last week we announced that these pages are now twice as fast. No wonder AMP has been so widely adopted – more than 2 billion AMP pages have been published from 900,000 domains. Advertisers like Johnson & Johnson, Toll Brothers and eBay have already seen increased engagement with their brand by directing people to AMP pages from organic search results.

The new AdWords beta brings the performance benefits of faster mobile pages to search campaigns. Now, when advertisers link their search ads to AMP landing pages, consumers will get the fast mobile web experiences they’ve come to expect from AMP pages on Google Search. If you’re interested in participating in the beta, sign up here.

“We understand the importance of speed in delivering effective advertising campaigns. That is why we’re incredibly excited to apply the speed of AMP to our paid campaigns in AdWords,” says ‎Aaron Cocks, Online Marketing Optimization Manager at Toll Brothers

“Johnson & Johnson has seen great results in testing AMP with our product information pages. For specific pages, we’ve seen page speeds improve by 10x and engagement rates improve by 20%. J&J is looking forward to expanding our application of AMP,” says Paul Ortmayer, Head of Digital Analytics – EMEA at Johnson & Johnson

Ensuring display ads are seen with AMP

When ads load fast, people are more likely to see them. That means media budgets work more effectively and messaging strategies realize their full potential. Fast-loading ads also create better experiences for users.

To make ad experiences on the web a lot better and faster, the AMP Project launched the AMP Ads Initiative last year. The Initiative applies the technology powering fast-loading AMP pages to ads.

As of today, a significant number of ads shown on AMP pages across the Google Display Network are automatically converted and served in the new AMP ad format. We’ve found these ads load up to 5 seconds faster than regular ads even though the creative looks exactly the same. Ultimately, this ensures that your messages are actually seen by your intended audience and that the experience users have with your brand is seamless.

Speed matters. To meet the needs of today’s customers, you have to be fast. Bringing the speed and performance of AMP to advertising will help you deliver more effective campaigns that keep up with accelerating consumer expectations.

Posted by Jerry Dischler, Vice President, Product Management

Bringing the speed of AMP to search & display ads

Growing the AMP Ads Initiative

We launched the AMP Ads Initiative last year with the ambitious goal of fixing ad experiences on the web by bringing the speed and performance of AMP to advertising. AMP Ads are faster, lighter and more secure — loading up to 5 seconds faster than regular ads on AMP pages — making them more viewable and delivering better user experiences.

With a growing network of technology platforms, publishers and advertisers supporting AMP Ads, the Initiative is taking root and beginning to drive positive results for the industry. For example, native ad tech platform Triplelift helped boost Time Inc’s revenue and viewability with native AMP Ads that are 6x faster and 3x lighter than traditional native ads.

Today at Google I/O, the AMP Project shared its vision for how AMP Ads are positioned to change the way we build, serve and measure ads. Here’s how we’re making progress towards that goal.

Making it easier to build AMP Ads

Fixing advertising on the web starts with fixing the way ads are built. Just like AMP pages, AMP Ads are built in AMP-HTML, providing a streamlined framework for building creatives and avoiding the redundant scripts that slow down ads. To make it easier for advertisers and publishers to build these creatives, creative management platform Celtra now supports building AMP Ads.

Celtra’s AdCreator platform is already used by thousands of brands and publishers globally to build immersive, rich media ads. By integrating support for AMP Ads in this easy-to-use drag-and-drop software for creating ads, all of their customers can now easily create beautiful and fast AMP Ads.

“Mobile advertising campaigns today are often hampered by broken, non-viewable ads with a poor UX experience,” says Aleksander Kmetec, VP of Engineering at Celtra. “The need for better UX and fast-loading ads are not only the future of digital advertising, but a necessity for developing markets that are more sensitive to data. We are proud to join the AMP Project and believe that AMP helps pave the way for better creative, a significantly improved customer experience and higher mobile ad engagement rates.”

We hope that with Celtra’s AdCreator platform, creative developers will explore building new and interactive creatives with AMP Ads. But in case they need more inspiration, we shared six new rich formats on AMP by Example, a showcase of live examples and code using AMP in interesting ways. The new creative formats include carousels, video parallax and ‘LightBox’, which use a number of AMP components, allowing developers to build beautiful creatives while ensuring that the technical performance of the ad remains great.

Expanding support with more ways to serve AMP Ads

Okay, now you have great looking AMP Ads, but how do you get them to deliver to a web page? Last year, DoubleClick announced support for AMP Ads by allowing publishers to traffic AMP Ads as native ads in DoubleClick for Publishers. Since then, platforms like TripleLift, AdZerk and Dianomi have also built support for serving AMP Ads. Later this summer, DoubleClick is giving publishers even more flexibility to serve AMP Ads, enabling them to serve these ads as custom creatives.

Quantifying success with more tools to measure AMP Ads

We also understand the importance of measurement. After all, what good is creating and serving an AMP Ad if an advertiser can’t measure the results? In the coming months, real-time, multi-platform measurement and analytics platform Moat will support AMP Ads.

With Moat measurement, marketers and publishers will be able to quantify how much more engaging ads are when they’re faster, lighter and more secure. The integration provides Moat’s full suite of viewability and attention analytics powered by their proprietary and Moat-hosted JavaScript tag, empowering publishers to design better experiences and provide brands with greater insight into how audiences pay attention to their campaigns.

“Attention is the key to branding, and seamless ads and content that load quickly provide a better experience to capture that attention,” said Jonah Goodhart, CEO and Co-Founder of Moat. “We’ve seen consumers respond negatively when faced with slow load times or a poor user experience. The AMP Ads initiative represents a huge step forward for the industry and consumers, and we’re proud to contribute independent measurement to the AMP Project’s ambitious plans to improve web experiences.”

As the industry recognizes the need for better and faster advertising experiences, we’re looking forward to expanding the open source AMP Ads Initiative to all.

Whether you’re an advertiser, ad tech platform or publisher, deliver better ads by joining the AMP Ads Initiative today.

Posted by Vamsee Jasti, Product Manager, AMP Project

Growing the AMP Ads Initiative

Turbocharging AMP

Improving speed and user experience on the web is core to the AMP Project’s mission. Today at Google’s I/O developer conference we announced that AMP pages load twice as fast from Google Search, as we’ve cut the time it takes to render content in half from last year. Additionally, new platforms and websites have joined the AMP ecosystem, giving hundreds of millions more users the lightning-fast AMP experience.

AMP’s new speed gains in Google Search are due to several key optimizations that we made to the Google AMP Cache, such as server-side rendering of AMP components, and reducing bandwidth usage from images by 50% without affecting the perceived quality. We also used a compression algorithm called Brotli that Google launched a couple years ago, resulting in a reduced document size by an additional 10% in supported browsers.

Globally AMP continues to grow its footprint, with the news that China’s largest social network Tencent Qzone and the country’s third largest, Weibo will show AMP pages to hundreds of millions of users. This follows an announcement at the first AMP conference in March when Baidu, Sogou and Yahoo Japan said they are linking to AMP pages from their Search results, joining Bing and Google.

Other social platforms also made announcements, with Tumblr telling developers at Google I/O it is publishing 340M blogs across 500K domains in AMP. And Twitter shared that they are linking to AMP pages from their new mobile web app, and are in the process of launching AMP support in their Android and iOS apps. The global reach of these platforms further extends the availability of the 2B+ AMP pages and 900K domains with AMP on the web.

Finally, e-commerce sites are benefiting from AMP’s speed and user experience. At AMP Conf, WompMobile and Wego shared their initial success seeing 95% and 105% increase in conversion rates with AMP respectively. In the months since then, new e-commerce websites have joined the AMP ecosystem, including eBay announcing their plan to use AMP across all their product pages, Zalando implementing AMP for 250K product pages, and Myntra taking advantage of the powerful new amp-bind component. Additionally, AliExpress, one of China’s biggest online marketplaces, is having success with AMP pages, seeing a 4% uplift in conversions.

ecomm_AMP_logosSome of the e-commerce websites using AMP

Many of AMP’s e-commerce capabilities were previewed at the AMP Conf and the amp-bind component is now available for origin trials, creating a new interaction model for elements on AMP pages. To learn more, watch the interactive AMP pages talk on Friday at I/O. Additionally AMPbyExample.com has demos for amp-bind, and ampstart.com will soon have e-commerce page templates and elements.


AMPbyExample.com and templates

As always, there’s room to take AMP even further. Please reach out, share your feedback and join us during I/O! And if you’re attending I/O, be sure to stop by the mobile web sandbox booth to say hello. Finally, look out for our latest roadmap update next week which will share all of the AMP Project’s plans for the upcoming quarter.

Posted by Matt Ludwig, AMP Project Marketing Lead at Google

Turbocharging AMP