AMP

An update on how AMP is served at the OpenJS Foundation

Developer Experience

Editor’s Note: the following blog post was originally published to the OpenJS Foundation Blog

When the AMP project moved to the OpenJS Foundation in 2019, our technical governance leaders shared a plan to separate the AMP runtime from the Google AMP Cache, and host the AMP runtime infrastructure at the vendor-neutral OpenJS Foundation. OpenJS is happy to report that this complex task of re-architecting the AMP infrastructure is making tremendous progress thanks to input and guidance from the AMP Technical Steering Committee (TSC) and AMP Advisory Committee, as well as thanks to the AMP Project and OpenJS teams for coming together despite the work and life challenges that were sometimes faced during the pandemic.

About AMP

AMP is a multi-stakeholder open source project used across a broad range of organizations to increase web performance. It’s a web component framework with a collection of complementary technologies that help publishers easily create websites that load quickly and predictably on different networks and devices.

Today AMP powers nearly 10 billion web pages worldwide, and is implemented by Google, Microsoft Bing, Pinterest and Pantheon, among others.

An AMP Cache is a cache of validated AMP documents published to the web, which allows the documents to be served more quickly than if they were generated by the original site each time they were displayed. Two of the largest AMP Caches are operated by Google and Microsoft, each of whom use the foundations developed by the AMP open source project to build their own commercial AMP Cache. This is a similar model to how most commercial products are built today with open source projects such as Linux and other JavaScript technologies such as Electron and Node.js.

Understanding how the AMP runtime will be served moving forward

The AMP runtime is a piece of JavaScript technology that a developer can add to their website to be able to use AMP components for building their website. By using AMP components, their pages become eligible to be hosted by an AMP cache. Some websites may choose to host the AMP runtime files themselves, while others may want to rely upon the AMP runtime soon hosted by the OpenJS Foundation to deliver the latest version of the code on demand. Ultimately, the choice is up to the developer. Please note that  documents served from the Microsoft or Google AMP Caches will still download the runtime from the specific AMP Cache itself.

The AMP runtime itself is developed openly and transparently in the AMP Performance Working Group. This part of AMP will not change, as the goal in moving to the OpenJS Foundation was to ensure this work could continue under a vendor-neutral nonprofit, and this is still a high priority. What’s new is that after disentangling the AMP runtime from the Google AMP Cache, the OpenJS Foundation will manage the servers that deliver the AMP runtime files (the download server and the CDN). As planned, the OpenJS Foundation has been involved in the implementation of hosting the CDN and has been spending additional time to fully understand the technical requirements.

Hosting project infrastructure is a core service of our Foundation – it’s one of many ways we help maintainers manage the stability and delivery of their open source projects. The way OpenJS hosts the AMP runtime infrastructure will be very much like how we support the infrastructure for the popular jQuery CDN, which performs a similar function and distributes 2.2 petabytes of jQuery libraries per month. We are working with Cloudflare to host the AMP runtime CDN. OpenJS Foundation projects benefit from the goodwill of Cloudflare’s contribution to open source through its free Cloudflare Enterprise program, in addition to other CDN providers who support other OpenJS communities. 

As an umbrella organization, the OpenJS Foundation has a governance model that gives a strong voice to its projects. Each of the projects are run independently at the direction of their core maintainers or Technical Steering Committees, as is this case with the AMP TSC. At the same time, OpenJS takes on the non-development aspects of the projects, ranging from infrastructure support to marketing, to help our projects grow and get better every day.

We are thrilled to be making this change to help the open source AMP Project continue to grow and diversify its contributors as they all work to make great experiences for the web.

If you have any questions about OpenJS please reach out to me at rginn@openjsf.org, or on our Slack workspaces: OpenJS Foundation or AMP. If you have any AMP Project specific questions please feel free to reach out via GitHub.

Posted by Robin Ginn, Executive Director, OpenJS Foundation