Jeremy Keith, a web developer and contributor to the web standards movement, has resigned from the AMP Advisory Committee. Keith was selected for the committee last year, despite his well-documented criticisms of the AMP project. In his resignation email, he cites Google’s control of the project and its small percentage of open source parts as reasons for his growing resentment:
I can’t in good faith continue to advise on the AMP project for the OpenJS Foundation when it has become clear to me that AMP remains a Google product, with only a subset of pieces that could even be considered open source.
If I were to remain on the advisory committee, my feelings of resentment about this situation would inevitably affect my behaviour. So it’s best for everyone if I step away now instead of descending into outright sabotage. It’s not you, it’s me.
During his time with the committee, Keith worked on defining what AMP is and pushing for clarification on whether the project encompasses more than just a collection of web components. The Google-controlled AMP cache and validation aspects of the project were the most concerning in evaluating his continued participation. Although the AMP Validator is open source, the rules for validation are controlled by Google:
I was hoping it was a marketing problem. We spent a lot of time on the advisory committee trying to figure out ways of making it clearer what AMP actually is. But it was a losing battle. The phrase “the AMP project” is used to cover up the deeply interwingled nature of its constituent parts. Bits of it are open source, but most of it is proprietary. The OpenJS Foundation doesn’t seem like a good home for a mostly-proprietary project.
When AMP joined the OpenJS Foundation in 2019, skeptics hailed the transfer as “mostly meaningless window-dressing.” What Keith witnessed during his time with the advisory committee lends credit to these early doubts about AMP being able to gain independence from Google:
Whenever a representative from Google showed up at an advisory committee meeting, it was clear that they viewed AMP as a Google product. I never got the impression that they planned to hand over control of the project to the OpenJS Foundation. Instead, they wanted to hear what people thought of their project. I’m not comfortable doing that kind of unpaid labour for a large profitable organisation.
Even worse, Google representatives reminded us that AMP was being used as a foundational technology for other Google products: stories, email, ads, and even some weird payment thing in native Android apps. That’s extremely worrying.
Keith’s experience echoes some of the claims in the ongoing antitrust lawsuit against Google, led by Texas Attorney General Ken Paxton and nine other state attorneys general. The complaint states that the transfer of the AMP project to the OpenJS Foundation was superficial:
Although Google claims that AMP was developed as an open-source collaboration, AMP is actually a Google-controlled initiative. Google originally registered and still owns AMP’s domain, ampproject.org. In addition, until the end of 2018, Google controlled all AMP decisionmaking. AMP relied on a governance model called “Benevolent Dictator For Life” that vested ultimate decision-making authority in a single Google engineer. Since then, Google has transferred control of AMP to a foundation, but the transfer was superficial. Google controls the foundation’s board and debates internally [REDACTED].
Keith was originally inspired by fellow dissenter Terence Eden to join the committee in hopes of making a difference. Eden eventually resigned from the committee in December 2020, after concluding that Google has limited interest in making AMP a better web citizen:
“I do not think AMP, in its current implementation, helps make the web better,” Eden said. “I remain convinced that AMP is poorly implemented, hostile to the interests of both users and publishers, and a proprietary and unnecessary incursion into the open web.”
Three days after Keith’s resignation, the foundation published a post titled, “An update on how AMP is served at the OpenJS Foundation.” The post seems to address Keith’s impression that Google does not intend to hand over control of the project.
“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 Foundation Executive Director Robin Ginn said. “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.”
The statement reiterated AMP’s status as an open source project multiple times. Ginn did not elaborate on the “tremendous progress” but did announce a new development – the decision to be more hands-on in hosting AMP infrastructure.
“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),” Ginn said. “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.”
The OpenJS blog had not communicated any updates on the AMP project for nearly a year. While this post seems like a reaction to the news of Keith’s resignation, it publicly confirms that the teams are still working on the infrastructure transfer. In the end, this may not be enough to convince critics that AMP is not simply a Google product with a fancy affiliation designed to make it more appealing to detractors. So far, the project’s new home at the OpenJS Foundation has done little to bolster public opinion in the face of allegations that identify AMP as having an important role in Google’s anti-competitive practices.