AMP

The AMP Project Roadmap

The ongoing development of AMP is conducted in working groups, each with knowledge or interest in a specific area of AMP.

To make their work visible to the community all groups provide regular status updates with details of what they have accomplished and what's up next.

All of the updates listed here are available as issues on GitHub and we'd love you to join the conversation there!

Select working groups

Performance

Status Update Mon May 11 2020

What was accomplished

  • Design doc and design review for validator changes needed for module/nomodule https://docs.google.com/document/d/1aD7MSHNlS8MsyBOjBx57OuLxVuIMPXVWDIrjt0ItzM8/edit#heading=h.hyyaxi8m42a
  • FixedLayer experiment merged (but turned off due to failing test on master)

Lessons Learned

  • Experiment tests do not run on PRs in CI

What's Next

  • Turn on Integration tests for module build (carry over, blocking module/nomodule launch)
  • Investigate removal of AmpCodingConvention.java
  • Investigate/resolve conflict with sidebar tests & FixedLayer experiment
  • Wrap up RAIL metrics in amp-analytics work
All details on GitHub

Performance

Status Update Mon Mar 30 2020

What was accomplished

  • Reduce size of v0.mjs to 60.07kb, as a result of landing several optimization changes.
  • Move from resorcery to @ampproject/remapping.
  • Introduce Post Closure Babel Compilation Pipeline for Multi-Pass.
  • Remove padding-top adjustment during boot on origin documents.
  • Fix accidental compilation of ES Classes in Module Build.
  • Prototype and land new local server for development, supporting Modules.
  • Test framework for Document transforms, intended for usage across different transformers (AMP Caches, Optimizer, AMP Wordpress).
  • Fix error reporting to identify module build.
  • Add module build explainer.

Lessons Learned

  • Buy a good chair for home.

What's Next

  • postHTML transforms in integration tests (in progress).
  • Start work on AMP optimizer and validator for module build changes.
  • Slight refactor of babel-plugin-transform-function-declarations.
  • Remove indirection for AMP Configuration, allowing plural AMP Caches and AMP Optimizer to support Module Builds.
  • Moving FixedLayer to extension
  • Send page load performance metrics to CSI
All details on GitHub

Performance

Status Update Mon Mar 16 2020

What was accomplished

  • add mjs files for experiments added on experiments-config.js
  • fixed single pass to work with Preact work
  • Tracked down common sources of low performance due to layout shift and high largest contentful paint and created tracking issues:
  • https://github.com/ampproject/amphtml/issues/27228
  • https://github.com/ampproject/amphtml/issues/27229
  • https://github.com/ampproject/amphtml/issues/27230

Lessons Learned

  • fast internet is expensive

What's Next

  • fix integration tests for module build (in progress)
  • build pipeline for local development automatically uses module / nomodule
All details on GitHub

Performance

Status Update Mon Mar 02 2020

What was accomplished

Kris

  • added post closure compiler transformation processing step
  • Remove doc css and base css from ESM build, which is a 10% improvement from the output size (62.61 kb <- 72.88 kb)
  • Move the ampproject from using brotli-size library to filesize (brotli compression on multiple cores, improves task on machines with higher cpu cores)

Erwin

  • Fixed render delaying extensions preloading for module builds
  • On duty (partially 1st week)
  • Ramped up module builds to 5% (seeing traffic)
  • Fixed single pass code to work with JSX (in review)

Kevin

  • Wrote proposal to move FixedLayer from runtime to viewer integration extension (save 36kb unminified, uncompressed)
  • Investigating AMP pages with poor RAIL metrics to identify areas of work for performance improvements

Lessons Learned

Kris

  • Travis VMs are lower powered than Github Actions ones.

Erwin

Kevin

What’s next

Kris

  • Assist Working Groups with Performance Analysis on real-world devices

Erwin

  • Ramp up module to 50%
  • Get all tests to work with module build
  • Add module/nomodule pattern to AMP packager

Kevin

  • Take FixedLayer proposal to design review
  • Writeup for using DOM Purify only in cache (remove from extensions on origin)
All details on GitHub