Standardizing lessons learned from AMP
amphtml.wordpress.com
amphtml.wordpress.com
* a leading format
* consistently excellent
* invest strongly in ...
* well-lit
* user-first
* instant-loading
* tightly-integrated
* highly-optimized
* great
* well-lit
* great
* well documented
* easily deployable
* validatable
* opinionated about user-first principles
* fast development
* constant adjustment
* more important than ever before
* invest strongly in ...
* engaging storytelling experiences
* pushing the boundaries
* deep integrations
* well under way
* super excited
* instant-loading
* well-lit
* great
* continue to invest heavily in ...
* continue to innovate on ...
* incredibly excited
* can't wait
I'm imagining a Dilbert cartoon, where this list is a cheatsheet of things you can say about your project to get approval from your pointy-haired boss...I guess the takeaway is that the garden is great, build the walls higher?
Web App: http://beta.hemingwayapp.com/
VS Code Extension: https://marketplace.visualstudio.com/items?itemName=travisth... (This uses open source libraries you can utilize to create your own version if you don't use VS Code)
http://myfreebingocards.com/bingo-card-generator/results/w5z...
Bingo!
But as I said in my post, the problem with posts like today's AMP blog post is that they're too full of jargon to be comprehensible to a general audience. The Web Packaging standard is really cool, but today's blog post just linked out to a ton of web standards without defining them or explaining how they'll work in the future.
If you've got your head deep in AMP's community, this post is quite meaningful, but to everyone else, and especially to the huge community of developers who hate AMP, it reads like Greek.
It reflects a core problem with AMP's developer outreach strategy: a refusal to accept and acknowledge criticism. There are overwhelmingly more AMP detractors than AMP promoters, and the detractors have good arguments, arguments that the AMP team even kinda sorta accepts (which is why they're trying to push through these browser standards, to address the bugs).
But you'll never hear AMP technical leaders like Malte Ubl or Paul Bakaus saying, "Yes, we accept that criticism, and the problems with AMP are really serious, and here's what we're doing to fix this. In the meanwhile, for many sites the tradeoff is worth it anyway."
The top thread in the HN thread was not whether the AMP brand was toxic but why the AMP brand is toxic. I think that if the AMP team had somebody focused on telling AMP's story, humbly and honestly, with a focus on the web developer community on HN, Reddit, Smashing, etc. it could have really helped.
Now, I think it's too late. The new Web Packaging thing shouldn't be called "AMP." The new "AMP for email" thing shouldn't be called AMP, either, because everybody knows that AMP sucks, and there's really no way to claw your way back from that.
What would that look like? "We have a gun to your head"? There are some very uncomfortable truths here about Google's near-monopoly on Web traffic.
tl;dr: iframes cause all of AMP's problems, but they provide unbeatable performance, thanks to prerendering. Prerendering is faster than http://motherfuckingwebsite.com. The Web Packaging standard will allow Google to prerender sites in search results without AMP, and without violating users' privacy.
But here's the point: most people think that Google wants to host nytimes articles on google.com, to seize control of the web's traffic. They don't. They've done a bunch of work to get out of that business while preserving the performance benefits of prerendering, but nobody knows that, because they talk about it in bizarre technical jargon like today's OP AMP blog post.
Pretending google didn't want to steal all urls requires actively ignoring the last 10 years of google's corporate decisions.
I'm just saying, they've done a lot of work on this Web Packaging thing, and it's a pretty good replacement for AMP. You should check it out.
It's hard to see why they'd do all of that work of replacing AMP if your theory is right and they just loooved stealing those URLs.
1 - they got caught with their hands in the cookie jar
2 - the internet isn't quite as dumb as google hoped
3 - thank god for the EU & Margrethe Vestager. Maybe we can talk her into adding a zero.
ps -- that status, as near as I can tell, of the amp url fix is vaporware. Deployed yet? Nope. So let's wait to get all triumphant until their supposed solution is deployed. https://www.androidpolice.com/2018/01/09/google-finally-fixi...
The user experience they wanted to achieve (provide an Apple News and Facebook Instant Articles experience on the web) was not technically possible. They added the hacks and workarounds that is AMP + AMP Cache + News carousel prerendering to Google to create something competitive.
Now they're working with the standards bodies to remove the need for the hacks they've developed. Web Packaging (for loading and verifying a bundled website - this is the preloading part) and iFrame Promotion (for 'promoting' an iFrame to the root browsing context - this is the 'clicking the search result and having the resulting page display instantly' part) is really cool and it'll be great to have this available to everyone without the downsides that Google's current solution has (URL fucking)
They're expanding the carousel of AMP links on the SERP to include content packaged using the new web packaging standard . Seems straightforward enough to me.
>The new Web Packaging thing shouldn't be called "AMP".
it isn't...
Why are all the top comments so negative?
AMP exists because Google figured out a way to make non-technical humans want to be fast and performant. It's a nice carrot to offer people who normally don't care at all about performance.
I dispute the idea that technological factors are not at play here. AMP's preloading and automatic CDN caching system have a pretty big impact on load times, and its technically-enforced restrictions on what sort of performance-impacting content publishers are allowed to include in their pages seems to do a pretty good job of ensuring pages do not become bloated.
I actually have a lot less issue with AMP as a technological solution, as I do with the Google's "our way or the highway" treatment of the Internet. Google uses both it's search monopoly and it's browser monopoly (and often, both at the same time) to force the entire world to do whatever Google wants them to.
Sometimes you might perceive the result to be "good", but that doesn't justify the behavior. That's why another technical implementation change blog doesn't improve anyone's mood about the whole thing: Because Malte Ubl is still pretending he's on #teamweb and not #teamgoogle.
This was the best solution the web could hope for that balanced open standard concerns with the necessary commercial backing that advantaged AMP's proprietary competitors.
They seem to have a vested interest in making web development harder than it needs to be.
It prevents bad actors like ISPs or public WiFi APs from injecting bullshit into it.
Do you even know what AMP is?
- Open Chrome Dev Tools
- Switch to mobile view (to force chrome open AMP pages)
- Search in Google
- Open an AMP page
- Force refresh to force reload from cold cache
I've yet to find a page below 1 MB. I've routinely seen pages anywhere from 2 to 4 MB. So much for "slimmed down performant webpages".
The only reason they are "performant" is Google preloading them while you search
Don't be evil -> do the right thing -> do what's right for Google.
First example I got (via searching Google for "news" and clicking the first AMP link).
AMP: https://www.google.com/amp/s/www.sfgate.com/crime/amp/Active... (2.4 MB, loaded in 760ms)
Non-AMP: https://m.sfgate.com/crime/article/Active-shooter-reported-a... (4.7 MB, loaded in 7 seconds)
The non-AMP page is twice as big and takes an order of magnitude longer to load. So, yes. I would _absolutely_ describe the AMP version as a "slimmed down performant webpage".
Could it be better? Of course! But users are still _much_ better off with AMP than without, at least in terms of performance. (And that's ignoring the fact that preloading is part of AMP. It's not "cheating" if it works in a real-world situation.)
Even if I follow all of Google's own performance guidelines, it won't help, as AMP pages load faster than text-only http://motherfuckingwebsite.com
> It's not "cheating" if it works in a real-world situation.
No. It's still cheating. Even if it works
It's not a simbiosis, it's parasitic relationship even though the hosts may try to pretend it is not.
Google could still be planning to keep the top banner, the left/right swipe to your competitor functionally for carousels, etc. That top banner, for example, has an [x] button that end users expect to dismiss the banner and stay on the page. Instead, it goes back to Google.
The negativity is because they aren’t being explicit as to what is actually being delivered. They are still retaining the right to run their own arbitrary JS on YOUR site, which could do almost anything they want.
TLDR: too soon to tell how genuine the message is, and Google isn’t working very hard to clear it up.
Eliminating the top banner was something AMP announced they were going to do _months_ ago, just as soon as they could do so without negatively impacting performance: https://amphtml.wordpress.com/2018/01/09/improving-urls-for-...
And AMP having "the right to run their own arbitrary JS on YOUR site" is not something that can happen when you're not even being required to use AMP in the first place:
> we now feel ready to take the next step and work to support more instant-loading content not based on AMP technology
[emphasis mine]
Web packaging does still require including a named google js url, right? With little restrictions on what it’s able to do with the DOM.
Why, for example, is there no Google source saying that the AMP page header is going away? They have not yet specified if they will only allow a very specific implementation of web packaging that allows your site into the carousel and other top of page search result URLs.
If they'd taken the same message and presented it as "we hear you: forcing you to reformat your web site using our own format sucks, and tying your search visibility to your adoption of that format sucks even harder, so we've decided to stop doing both those things," fewer people would have missed the point.
Seems encouraging. Any step away from a walled garden is good.
No trackers, no spying, no fancy multilayered parallax video scrollers, no animated video carousels, no fucking ads, no taboola shit, no related clickbait articles, no tag cloud sidebar, no ooh-so-shiny bleeding edge web frameworks that has a lifecycle of a single year (megabytes of minified angular), no isomorphic shit, just a plain site with the relevant information and minimal styling.
I used to hate PHP. Then I tried the alternatives.
From the point of view of a SRE who would have to help configure a server side implementation of web packaging, having yet another http request/response type to build and maintain seems like a bloody nightmare. And OCSP with the signature when Chrome themselves have disabled its use? It also requires custom behavior from the client, all-but-guaranteeing it won't be broadly honored.
And ultimately, I'm confused about how this replaces, or supplements AMP.
Funnily enough, Google’s own AMP fails those guidelines when not preloaded and pre-rendered from Google’s own CDN: https://ferdychristant.com/amp-the-missing-controversy-3b424...
Google will continue doing what it does: caching and preloading whatever content it prefers (select publishers, select advertisers) and penalize everyone else even if they follow all of Google’s guidelines to a T.
Web Packages, no matter how well you disguise them as a web standard, will not solve that.
It's not the first (or probably last) time that Big G's said "Do as we say, not as we do."
Heck, the blog post is hosted on WordPress instead of Google's own Blogger.
That made me chuckle, and gave me a sense of how much they value this PR chum. Please, guys; at least make a semi-convincing attempt to pretend you think we're not morons. Hosting a blog post on your own domain would cost you almost nothing. You could even load it up with your own ads to recoup the cost.
The thing that makes the web slow isn't web standards, but too many ads and too much tracking code. If only there were a company that controlled a lot of the ads and tracking code on the web...
What are you talking about? They linked like half a dozen concrete proposals in the post itself! Even provided a dashboard so you can easily track all of them: https://github.com/ampproject/amphtml/blob/master/contributi...
There's an IETF proposal for certificate-signed web content (Web Packages) which can be rendered offline. The browser address bar will no longer show the URL of the web server (e.g. Google AMP), it will show the authenticated origin of the Web Package.
2017 IETF proposal by Google: https://tools.ietf.org/html/draft-yasskin-webpackage-use-cas...
2018 Chrome demo at AMP event: https://youtube.com/watch?&t=9m03s&v=pr5cIRruBsc
There may be overlap in goals with W3C Web Publications, which is working to converge EPUB and Web: https://w3c.github.io/wpub/
There’s nothing fast, instant, or open about AMP.
The latest article debunking those myths: https://ferdychristant.com/amp-the-missing-controversy-3b424...
Google’s fully opaque process around AMP for email (yes, it’s a thing): https://github.com/ampproject/amphtml/issues/13597 and https://github.com/ampproject/amphtml/issues/13600
Why not hand AMP itself over to standards groups as well as all of the other things mentioned here? What about the proprietary GMail implementation of AMP4Email? Or the fact that none of the justifications for AMP given in this (or The Verge interview[0]) hold up as reasons for AMP4Email.
[0] https://www.theverge.com/2018/3/8/17095078/google-amp-accele...
How so? As the blog post points out, the whole thing is open-source with almost all discussion surrounding the project happening out in the open on their GitHub repo. You might not agree with the direction the project is going, but I'd say it's about as well-lit as any open source project can be.
Having it up on GitHub after that doesn't really mean much. This is the same for Android and Chrome, of course.
A project run by a "benevolent dictator for life" (like Python or Elm) is entirely compatible with open source. The same is true for a project run by a corporation (like React).
With the main answer to questions being, we can discuss this somewhere else, some-other (unknown) time in the future, usually in a more private setting. Unless pressed further.
Case in point: https://github.com/ampproject/amphtml/issues/13457#issuecomm...
Or as carmforce(Ubl) so nicely put it. "our project, our rules" but those rules keep changing, are not public and the raised issue about defining/clearing up those rules is obviously not a priority.
https://github.com/ampproject/amphtml/issues/13597#issuecomm...
Yeah, well... "Open-source" in the sense that they throw something over the wall from time to time. "Almost all discussion" in the sense that they use a heavily-moderated public newsgroup for some things. It's better than completely internal development, I guess, but don't kid yourself: it's a PR exercise coupled to a near-complete capture of the RFC process.
And in the meantime, AMP would still need to be maintained.
We've seen this before in less controversial areas. For example, SPDY was proprietary and HTTP/2 is a standard that entirely replaced it.
I'm wary of AMP4Email as well, but the process of doing something quick and dirty and then standardizing the 2.0 version (under a different name) is pretty common.
So, while all of these other components are going to be going to standards orgs, why not let them also have AMP? (A standards org is never beholden to keep an existing standard, they can always make a new one.)
iframe promotion explicitly describes how AMP pages become “fast” (through preloading on Google Search pages)
web packaging is just a way to have signed pre-rendered pages on a CDN.
Together they give Google the power to cache/promote/“speed up” pages at will
So much noise in these threads deliberating trying to concoct some hidden agenda around this rather than the obvious: the mobile web was a looming disaster, years of people advocating for writing fast pages failed, to the point that native apps were becoming silos to serve proprietary news content from. All of the macho-code jockeys here boasting how they can write fast pages don't seem to get that like 100 million pages out there are slow as molasses and efforts like AMP manage to fix A LOT of load issues that independent super-hackers didn't.
Independent efforts to spur people to optimize their sites and get some loading consistency failed -- multiple times. An industry wide effort is needed that deliberately pushes those, by carrot or whip, to improve the situation, giving them a cookie-cutter formula -- a subset of HTML and structure, validated for optimum parse, render, and caching, so that it is easy and consistent.
AMP was the first attempt at this. People don't like it because it's proprietary, don't like the UI choices, ok then, let's rectify that and get the W3C and browser vendors on board to have a neutral version. Let's address all of the problems and criticisms and make a public standard.
But stop pretending that if no one does anything the problem will go away. Yes, eventually it will go away, as more and more websites are replaced by native apps or embedded viewers in messaging or social apps like FB or WeChat, which become new proprietary browsers that eschew the web.
Accusing the AMP guys of ulterior motives is really wearing thin, AFAIK these guys love the web with a passion, they're trying to fend off an assault from native platforms. Most of these guys could go work on new hot-news at Google like new machine learning projects, they could have their pick of work, but have dedicated a lot of effort to make faster, a platform that a lot of people don't care about anymore and view as legacy.
How about a holding your gun-powder for once and see what comes out of this rather than setting off nukes.
You are confusing individual people working on the project and the corporation that ultimately decides the entire direction of the project.
You are also assuming that all people are inherently good and will immediately leave if something morally questionable is asked of them, and that people can even realise that something is morally questionable.
In no particular order:
- Google is a corporation which is driven by two metrics: advertisement revenue and Monthly Active Users. AMP is driven to improve and increase the two.
- Every single discussion outside of implementation questions have been shut down by the AMP team. The latest round was about AMP4Email where the team has gone out of the way to derail, shut down and outright ignore any direct questions: https://github.com/ampproject/amphtml/issues/13597
- A regular AMP page rarely weighs less than 1 MB when reached from cold cache. The only reason they are fast is because: Google dominates search, and Google aggressively preloads AMP pages from its own huge geographically distributed CDN.
So when you click on an AMP page it's instant only because it's already been preloaded. Meanwhile Google's own page speed tools say that AMP are not fast. And to add insult to injury, AMP is not even valid HTML5. https://ferdychristant.com/amp-the-missing-controversy-3b424...
Of course independent superhackers can't do anything because they don't have Google-level infrastructure. Because Google makes AMP appear to be faster than even http://motherfuckingwebsite.com which is just text.
Just a quote: "The performance benefit of prerendering is enormous, so enormous that prerendered pages can load hundreds of KB of JavaScript and still display “instantly” by the time the user taps on a link." https://redfin.engineering/how-to-fix-googles-amp-without-sl...
- Taking the previous bullet point further: AMP is a hack that has nothing to do with actual website performance or "slimming down" of websites. The only reason AMP exists is because of Facebook Instant Articles. It's not because of walled gardens. It's not because of "open web". It's just the desire to not be outdone by competition and the strive for ad revenue and MAUs.
It's a way to promote a few select websites and penalise every other website, even those who strictly adhere to Google's own performance guidelines: https://developers.google.com/speed/docs/insights/rules
Any and all concerns about AMP where entirely dismissed by Google (and AMP team) until a significant portion of publishers have started voicing their concerns and some have even started pulling out of AMP.
Why publishers you ask? AMP is primarily targeted at publishers and publishers are the only ones even allowed to somewhat participate in AMP. To quote "Standardizing lessons": "constant adjustment to publisher and user feedback." which is half truth at best. The only working group on AMP is amp-news-publishers (https://github.com/ampproject/amphtml/blob/master/contributi...), and any "user feedback" that is allowed is "intents to implement" and comments on how a feature is implemented. All other discussions are shut down.
- The new standards proposed by Google only seek to cement the status quo.
Web Packages is a way to store signed prerendered and preloaded pages on a CDN
iframe promotion explicitly describes how and why AMP pages are "fast": they are preloaded in invisible iframes during search. The only goal of this proposal is to help google make those frames visible and switch the browser URL when the iframe is presented to the user.
This does not actually solve any performance issues. You can still develop your 8 MB site. However, it will load instantly just because Google has preloaded it while you were searching.
Do not be fooled by the use cases. The primary benefactor of aggressive preloading and caching is Google, who already has the entire infrastructure in place, and dominates search. No mater how much you try and adhere to all the performance guidelines, you will never beat a pre-rendered and preloaded page stored on Google's CDN.
- And yes. Ultimately the AMP team in its entirety fails to accept or acknowledge any shortcoming of AMP. Even the "Standardizing lessons" spew the same easily falsifiable myths around AMP heavily sugar-coated in self-aggrandizement.
On top of that, no matter how many times they say that the process is well-lit (they say it three times in the article), the process is entirely opaque, developed by Google, for Google, and in Google's products and then presented post-factum as a "standards proposal".
What _would_ work is serving the main content immediately, then using JS to fetch user-specific stuff after the page load.
As for their implementation of AMP pages for Google's use, I think that's sound strategy. People landing on Reddit from Google are at the lowest level of engagement and a lot of sites serve more ads conditionally based on your level of engagement. Native visitors get a better experience, logged in contributors get the white glove treatment.
> From a peak of 1.9% conversion rate at around 2 seconds
This sentence and the graph it accompanies seems to imply that if your site is too fast it could reduce your conversion rate. What's going on here?
Well, at the bottom of the article that graph came from:
> What about all those fast pages with low conversion rates and high bounce rates?
> Good question. Faster pages should retain and convert more visitors, right? In general, yes, but some of the speediest pages on a site are 404/error pages, hence the poorer business metrics.
It seems like you'd want to control for this, to get statistics on bounce rates only for pages that wouldn't otherwise bounce the user anyway.
Still not entirely convinced what's supposed to work about this method.