HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
ampproject
amphtml
JavaScript2015–2023
ampproject / amphtml

amphtml

The AMP web component framework.

96Distinct people
146Mentions
0Explicit recommenders
14.9KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

The AMP web component framework.

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 2:17:07 AM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year146 dated mentions

Observed mentions: 2015-10-07 14:41:30 UTC to 2023-02-21 19:56:36 UTC.

01020302015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 14 mentions; 4 submissions, 10 comments20152016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 28 mentions; 2 submissions, 26 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 27 mentions; 1 submissions, 26 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 30 mentions; 5 submissions, 25 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 17 mentions; 0 submissions, 17 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 17 mentions; 0 submissions, 17 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 9 mentions; 0 submissions, 9 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments2023

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC14410
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC28226
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC27126
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC30525
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC17017
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC17017
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC909
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC101
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC312

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
AMP ⚡ ⚡⚡⚡ Tooling AMP is a web component framework for easily creating user-first websites, stories, ads, emails and more. AMP is an open source project, and we'd love your help making it better! Want to know more about AMP? amp.dev is the best place to learn more about AMP--and of course the site is made using AMP! For developers using AMP, amp.dev includes guides and tutorials examples reference docs example templates tools to make using AMP easier Having a problem using AMP? The amp.dev Support page has resources for getting help. Use Stack Overflow to ask questions about using AMP and find answers to questions others have asked. Let us know about bugs, and file feature requests to suggest improvements. AMP accepts responsible security disclosures through the Google Application Security program. Want to help make AMP better? docs/contributing.md has information on how you can help improve AMP, including ongoing participation through Slack, weekly design reviews, etc. We strongly encourage code contributions! We enthusiastically welcome new contributors to AMP even if you have no experience being part of an open source project. We've made it easy to get started contributing. Consider joining one of AMP's Working Groups, where most of the day-to-day work in AMP gets done. Other useful information AMP's release documentation provides details on how and when AMP releases new versions, including how to know when a change is live in a release. AMP's roadmap provides details on some of the significant projects we are working on. The AMP meta repository has information about the AMP open source project, including AMP's governance. AMP's code of conduct documents how all members, committers and volunteers in the community are required to act. AMP strives for a positive and growing project community that provides a safe environment for everyone.
Read the full README on GitHub

What Hacker News says

17 sources
Huh. Interesting! https://github.com/ampproject/amphtml/blob/master/spec/amp-f... says that as of April 2020 self-hosted pages don't pass validation: >The AMP Project is looking into options for validation of AMP pages that use an AMP framework hosted outside of cdn.ampproject.org (#27546). As of April 2020, these AMP pages do not pass validation. The linked issue is still open: https://github.com/ampproject/amphtml/issues/27546 And if I look at the official Specs page ( https://amp.dev/documentation/guides-and-tutorials/learn/spe... ) it says this: > Any AMP document MUST [...] contain a <script async src="https://cdn.ampproject.org/v0.js"></script> tag inside their head tag. So it seems they're planning on supporting self-hosting, but it's not there yet (and it might be complex to get working).
In I Have Resigned from the Google AMP Advisory Committee
A Google employee commented above about the design reasoning behind this, and it's worth reading and understanding the linked GitHub discussion: > It looks to me like the design for this was https://github.com/ampproject/amphtml/issues/3133 To be clear, I'm not defending Google here, but I just want to point out that it's possible to be "evil" (for whatever that means) without being malicious. That is, I don't think any Google engineer was thinking "Haha! We'll slow down all those non-AMP ads deliberately!" The thinking seems to have been "We want to be somewhat 'backwards compatible' to allow non-AMP ads, but we don't want those ads to kill AMP's performance benefits, so we'll still load them but only after the AMP content has loaded and rendered." However, this is exactly the mindset that I hate about AMP, and it drives me a little nuts
Read the rest
when I see Googlers defending it. I get that your intentions are good, but don't you realize that it's not an accident that the primary beneficiary of AMP is Google, e.g. by keeping users in the SERP instead of going off to sites where the content is hosted, and by making everything ideal for the ad network you own? Googlers have to come to realize that essentially all of their engineering decisions are constrained by what makes more money for Google, not what is best for users. Sure, faster page loads are great, but do you honestly think Google would have supported a tech that made page loads faster ig it didn't cause people to look at more Google ads? I mean, if Google really supported what was best for users, they'd support more privacy controls a la what is coming in iOS Safari, but of course they don't because that's bad for their business. I hate AMP and hope it dies, but I don't hate it because I think there aren't some user benefits to it, I hate it because it is a further attempt by a single company to own even more of the Internet.
In States bring action against Google under federal and state antitrust laws [pdf]
Read the rest
In Finding Critical Open Source Projects
A great advantage of having standards like Amp is that we can then control and limit how things behave. See criterias for autoplay video on Amp: - the video is automatically muted before autoplay starts - when the video is scrolled out of view, the video is paused - when the video is scrolled into view, the video resumes playback - when the user taps the video, the video is unmuted - if the user has interacted with the video (e.g., mutes/unmutes, pauses/resumes, etc.), and the video is scrolled in or out of view, the state of the video remains as how the user left it. For example, if the user pauses the video, then scrolls the video out of view and returns to the video, the video is still paused. Source: https://github.com/ampproject/amphtml/blob/master/spec/amp-v...
In Chrome is not the new IE
> only embed resources that are included with SRI or match a whitelist of commonly-used third-party resources that don't do this Essentially zero SAAS third-party resources are set up to be included with SRI, because (as you might expect) none of these third parties want to commit to serving one version indefinitely. > ad-blockers can't just blanket deny access to because that would break non-advertising functionality Good point! I wasn't thinking about how that played out with Google (since display ads today are served from a doubleclick domain). Pretty much anyone running an ad blocker is also going to be blocking third-party cookies, though, so routing the ad request via a proxy on the publisher domain would work even better. > Google's currently developing their own version of this, which I think they call the "AMP cache" AMP doesn'
Read the rest
t contain anti-adblocking, and an anti-adblocking-via-inscrutable-js approach would be incompatible with AMP's policy of requiring that all AMP code, including extensions, be open source. For example, this is the code that requests AdSense ads and renders the responses: https://github.com/ampproject/amphtml/blob/master/extensions...
In WebBundles are built for content-addressable networks
I don't think it's your wording that's confusing. You are contradicting the AMP documentation. AMP's documentation seems to indicate that the LTS is stable only for one month (new features released via the same URL each month), and so is not compatible with SRI (see https://github.com/ampproject/amphtml/blob/master/contributi...) You can specify a version (ie, https://cdn.ampproject.org/rtv/somenum/v0.js), but the AMP validator complains about that.
In Where Am I? NYTimes or Google?
Yes and No, mostly yes: On publisher origin, the plan-of-record does not involve any validation of the contents of the AMP javascript files. When an AMP Cache (eg: Google) crawls one of these AMP documents, the same is true - the contents of the javascript files will not be relevant to the decision of whether or not the document is considered valid AMP. The files will likely not even be crawled by the Cache. However, when the AMP Cache serves one of these files, it will rewrite them to the latest* version for serving to users. This is necessary since the javascript runs in a somewhat privileged context in search results. https://github.com/ampproject/amphtml/issues/25873 * There is also a mechanism for publishers to opt-in documents to a "Long-Term Stable" release, rather than the latest evergreen version: https://amp.dev/documentation/g
Read the rest
uides-and-tutorials/learn/spe... Lastly, and there is still some discussion around this, it is likely that Signed Exchanges may be able to load the publisher's own version of the javascript in the future, even in search results. This is because the execution context of the javascript is different for Signed Exchanges.
In Google no longer providing original URL in AMP for image search results
I want to break down this question slightly. > Can a third-party other than Google deliver an AMP page? Yes. Examples: Bing runs their own AMP cache and also delivers AMP pages. LinkedIn and Twitter also link to AMP pages, but they don't currently run a cache. IIRC, Twitter links to the Google AMP cache and LinkedIn links directly to the AMP variant on the publisher origin. They could run an AMP Cache. Cloudflare ran one for some time, but shut theirs down recently. The AMP Project maintains a list of known AMP Caches here: https://github.com/ampproject/amphtml/blob/master/build-syst... And provides some guidelines for running one here: https://github.com/ampproject/amphtml/blob/master/spec/amp-c... It's non-trivial, but absolutely supported. > Can a third-party other than Google deliver a Signed-Exchange? Yes. Cloudflare generates them f
Read the rest
or their customers who opt-in via their "AMP Real URL" product. "Generates" in this context implies delivering them. To date, I'm unaware of any large scale implementation that is delivering Signed Exchanges for third-party origins other than the Google Cache though this may change. The tech stack absolutely supports this.
In Google no longer providing original URL in AMP for image search results
Will this mean that sites will be able to finally lock in a version of AMP? The idea that there is one place right now that is required for all AMP sites that can dynamically update the behavior of all such pages is, in fact, terrifying to me; like, I went into reading this discussion thinking AMP wasn't making anything worse and being super unhappy that anyone even thought to denigrate signed exchanges (as I want those deployed everywhere in order to provide censorship resistant web caching) and then I got convinced by kbenson that this is actually a bit of a dystopia scenario for the web once you involve AMP... I even managed to find an issue about solving this problem with subresource integrity (one you were involved in) that apparently got closed with prejudice (not by you) under an insistence that this javascript injection be an "eve
Read the rest
rgreen" codebase lest somehow everything becomes super insecure, which to me just indicates a fundamental architectural flaw in the security model of AMP :/. https://github.com/ampproject/amphtml/issues/534
In Google no longer providing original URL in AMP for image search results

Showing the 15 most recent of 17 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.