Accelerated Mobile Pages Project

New Google thing, aimed at unsucking the "mobile" web:

The Accelerated Mobile Pages (AMP) Project is an initiative to improve the mobile web and enhance the distribution ecosystem. If content is fast, flexible and beautiful, including compelling and effective ads, we can preserve the open web publishing model as well as the revenue streams so important to the sustainability of quality publishing.

Curious the focus is on mobile only. The web has suck problems everywhere, and really, what is "mobile" these days? If I made a version of my site out of this, is it on me to diverge my traffic to the correct version? This maybe?

Through the spec, Google suggests that developers use a limited subset of HTML (and CSS_, known as AMP HTML (e.g. no transitions, no animations, no filters...) To validate your website to this specification certain markup elements are not allowed and a boilerplate document is provided to help get developers started.

The AMP JavaScript library manages all resource loading, validating all the code to the spec and gives us access to custom AMP elements (carousels, embedded tweets, etc) which have been designed specifically with performance in mind. Zero third-party (even hand-authored) JavaScript.

The open source project reveals even more restrictions:

Primarily we are aiming at reducing the time until the content of a page can be consumed / used by the user. In concrete terms this means that:

  • HTTP requests necessary to render and fully layout the document should be minimized.
  • Resources such as images or ads should only be downloaded if they are likely to be seen by the user.
  • Browsers should be able to calculate the space needed by every resource on the page without fetching that resource.

Developers have compared this project to Facebook’s Instant Articles, but for the web at large instead of inside an app ecosystem. In a video tutorial Addy Osmani takes a look at how this might work and the resemblance to Facebook’s project is clear.

It seems this project is likely to help an awful lot of users — and don’t forget that any movement towards fixing the terrible performance problems of the web is generally A Good Thing™. Yet Tim Kadlec argues that:

AMP isn’t encouraging better performance on the web; AMP is encouraging the use of their specific tool to build a version of a web page. It doesn’t feel like something helping the open web so much as it feels like something bringing a little bit of the walled garden mentality of native development onto the web.

That troubles me. Using a very specific tool to build a tailored version of my page in order to “reach everyone” doesn’t fit any definition of the “open web” that I’ve ever heard.

For a project that seemed to fall out of the sky, there is a crapload of major publishers and technology partners involved.