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 Tue Mar 02 2021What was accomplished
- fixed the new ts server not respecting the host and font when transforming the documents https://github.com/ampproject/amphtml/pull/33425
- ongoing work to support avif
Lessons Learned
What's Next
- additional font testing exploration focused on sub font and fallback font
Performance
Status Update Tue Jan 05 2021What was accomplished
- IntersectionObserver:
- IntersectionObserver polyfill
{root:document}
support launched: https://github.com/w3c/IntersectionObserver/pull/465 - Integration updated to select best one on a per-instance basis: https://github.com/ampproject/amphtml/pull/31453
- E2E tests for documentHeight-based viewers (gmail): https://github.com/ampproject/amphtml/pull/31526
- Removed polyfills from esm web-worker, cutting -0.3kb: https://github.com/ampproject/amphtml/pull/31494
- Removed some usages of measuring APIs (https://github.com/ampproject/amphtml/pull/31693, https://github.com/ampproject/amphtml/pull/31730, https://github.com/ampproject/amphtml/pull/31753)
- Holidays! 🎁
Lessons Learned
- Can make empty commits via: git commit --allow-empty -m "Trigger Build"
What's Next
- Continue removing usages of measuring APIs
- Resume compiler research
Performance
Status Update Fri Jan 01 2021What was accomplished
- v0.js and extensions are now more resilient to double loading of the amp library (https://github.com/ampproject/amphtml/pull/31828)
- fixed module build bug where
AMP.require
would sometimes not exist (caused by race condition https://github.com/ampproject/amphtml/pull/31988) - turned down module build to fix p0's
- added bento component generator
gulp make-component --bento --name=my-component
Lessons Learned
- separate out test features in isolated PR as they are hard to cherry pick if they are merged with runtime features/additions/removals
Performance
Status Update Mon Dec 07 2020What was accomplished
- module build rollout is in 100%
- Started privacy & legal reviews for adding CWV metrics from Google AMP cache to Page Experience tool
- exclude iOS < 11 specifically from module build insertion
Lessons Learned
What's Next
- fixes for double exec of module/nomodule in iOS < 11 in the runtime
- Working on APIs for CWV metrics from Google AMP Cache
Performance
Status Update Mon Nov 09 2020What was accomplished
- Turn on esm tests in travis https://github.com/ampproject/amphtml/pull/28336
- investigated A2HS support, but decided not to pursue further
Lessons Learned
What's Next
- mjs tracking for bundle size bot
- de-flake amp-user-notification tests
- write document for SxG experiment methodology
- ramp module/nomodule to 100%
- investigating new rules for Pixi
Performance
Status Update Mon Nov 02 2020What was accomplished
- Worked on TDD for adding AMP Cache CWV metrics to Page Experience Tool
- mjs files now need to be approved when increased in size
- build and upload esm tests when integration tests are modified
Lessons Learned
What's Next
- Developing Page Experience Tool rule to ensure placeholder inside amp-img uses only data src (no network requests)
- experiment design doc to have a hold over A/B test for module vs nomodule performance
- Fix bug in Google AMP cache transformer where the document from origin already has module/nomodule pattern in markup
Performance
Status Update Fri Oct 02 2020What was accomplished
- integration fixture files are now transformed through postHTML
- safari fix for block scoping performance regression (can be 3x to 10x slower)
- Investigated Firefox amp-sidebar FixedLayer bug, turned out to be testing setup misconfiguration (https://github.com/ampproject/amphtml/issues/30819)
- Removing
{BaseElement.viewportCallback}
: 3 PRs currently in flight, as well as a few merged (https://github.com/ampproject/amphtml/pull/30647, https://github.com/ampproject/amphtml/pull/30802, https://github.com/ampproject/amphtml/pull/30859). One already merged (https://github.com/ampproject/amphtml/pull/30761) - Various test fixes, including aligning unit tests with prod-config: https://github.com/ampproject/amphtml/pull/30535
Lessons Learned
- function definitions can be recursively redefined. (
function f() { f = () => 5; return 7}
)
What's Next
- esm to 100% (monitoring safari performance)
- esm e2e tests
- continue removing
viewportCallback
as well as associated code - research two Dynamic Mail bugs probably related to
intersect-resources
.
Performance
Status Update Thu Oct 01 2020What was accomplished
- fix esm ads performance/query tracking
- make sure to opt-out control of LTS reporting
- correctly cache busted control (this caused control to have higher cache hit rate as it was using production resources)
- make performance-impl more robust in performanceobserver observe calls https://github.com/ampproject/amphtml/pull/30554
Lessons Learned
- do not do a/b testing during the rollout phase and have a separate clean a/b testing environment