Skip to content

DocsBuilding on HEY

Badges

The embeddable badge: what it states, what it never states, how to add it.

Every published project has a badge. It states what HEY verified and nothing else: activity status, last ship, Still Building when it applies, Verified Builder when the project page shows it, and any distinction the HEY team awarded. Never a score, a rank, a price, or a prediction.

The status uses the same words as the project page, its share image and the API. A project with a ship on record but no source HEY can keep reading says "Activity not measurable": HEY saw something ship, but has nothing it can read building from today. Linking a repository, changelog or feed from the project's own site fixes it (see the builder guide). Verified Builder is a row of its own (24 px), above an award's row; the snippets state the badge's real height (120 px, plus 24 for each row).

A badge is verified by Hey Research Lab from public evidence — not a Robinhood certification. The badge page and /badges say so in those words (2026-10-10, Robinhood Chain Terms of Service §5.11(b): no claim of Robinhood sponsorship, endorsement, partnership or certification). Please do not describe it as one where you show it.

The image (README or site)

Use the image URL, /api/badge/<slug>. It returns a self-contained SVG for READMEs and sites that cannot frame a page. Options: ?theme=dark, ?style=pill. It is cached for five minutes in a browser and an hour in a shared cache. An unpublished project is a 404.

[![Chit on HEY Research Lab](https://heyresearch.xyz/api/badge/chit)](https://heyresearch.xyz/project/chit?utm_source=badge&utm_medium=readme)
<a href="https://heyresearch.xyz/project/chit?utm_source=badge&utm_medium=html"><img src="https://heyresearch.xyz/api/badge/chit" alt="Chit on HEY Research Lab" height="120"></a>

/badge/<slug> (without /api) is a page, not an image: it shows the badge in both themes and hands out these snippets for your project. Pointing an <img> at it shows nothing.

Every snippet links the project page with utm_source=badge and where it was pasted as utm_medium, so HEY can tell a reader who came from a badge apart from one who came from GitHub. No reader is identified.

Framing

/badge/<slug>?embed=1 renders only the badge, for an <iframe>; a click opens the project page in the top window. For a richer live widget use the Embed Kit or the open-source @hey-research-lab/embed package (<hey-project project="your-slug">). These frames and the badge page are the only HEY pages another site may frame.

Awards

The HEY team can add one distinction of each kind to a project:

Kind Meaning
HEY team pick Chosen by the HEY team. Not a ranking, never paid.
Builder of the week The most consistent verified shipping HEY saw this week.
Ship of the week One release the team thought worth pointing at this week.

An award lasts 7 days, 30 days, or until removed; re-awarding the same kind replaces the live one. Awards always carry the words "Awarded by the HEY team", and only published projects can carry one. Every award and removal is recorded.

What the badge gives you (2026-10-14)

Readers and a backlink. Every snippet links the project page with utm_source=badge, so a click from a README or a site is counted as a badge visit, and /badge/<slug> tells the builder what the badge sent: "Your badge sent N readers to this page in the last 7 days" (badgeReaders, packages/domain/src/distribution/badge-readers.ts: distinct daily-salted visitor digests on page_views with utm_source=badge for that page, counts only, never who). With none it says so plainly. The /badges list is a thank-you — alphabetical, and not a benefit: it changes nothing else on HEY — and the badge page and the builders' guide now say exactly that.

Neutrality

A badge, an award or a badge click never changes research: no activity status, ranking, Radar or discovery order reads them, and a test fails HEY's build if one ever does.

Badge emails to the owner (2026-10-10)

When HEY finds a project's badge on its own website or GitHub README for the first time, or no longer finds a badge it had found (two reads in a row without it), the project's verified owner gets one email about it — and only the verified owner: never a reader, a follower or anyone else.

  • "HEY found your badge on [where], [date]. Projects showing it are listed on heyresearch.xyz/badges. It changes nothing in HEY's research or ranking."
  • "HEY no longer finds your badge on [where] (checked twice). If you moved it, there is nothing to do: HEY lists it again once it finds it."

Each links to your account, where "Your projects" shows the badge's state. One email per change: a second badge on another source sends nothing, a badge that comes back sends nothing, and one that goes again later is a new change. The emails go only to an address you confirmed, under the "Ownership claims" email setting, and every one has its own unsubscribe link. Like the badge itself, they change nothing in HEY's research: no status, score, ranking, Featured pick or alert reads them.