← Back to posts

Share your repo's health in one image

Published: 8/9/2026

Every GitHub repository already has a badge culture: build passing, coverage 94%, downloads per month. What it doesn't have is a good way to say *this project answers you when you file an issue*. That number exists, it's just buried in the issue timeline where nobody will ever compute it.

So we built a card for it. Repos on GitGenius now have a Share button that renders your last 30 days as a single image, sized for the places people actually paste links.

What's on the card

Up to three tiles, strongest signal first:

Three tiles is a ceiling, not a target. The card is a highlights object, not an audit.

We fixed the star math while we were in here

Star growth used to be computed by differencing two snapshot fields taken hours apart, which is a fine way to measure the last few hours and a bad way to measure a month. It now sums the daily series across the full 30-day window.

If no history comes back, the tile is omitted entirely rather than rendering +0. A missing measurement and a measurement of zero are different claims, and only one of them is ours to make.

The card is gated, and that's worth explaining

You won't be offered a card for every repo. A repo has to clear a floor first: at least 100 stars, a median first response under 48 hours, and enough issues that the median means something — we require at least 10 samples before we'll call a number a median. At least two of the three signals have to pass.

Two things this deliberately does not do.

It never changes the numbers. Gating decides whether we ask you to share. Every figure on a rendered card is the real one. If you navigate straight to /repos/owner/name/card for a repo that wasn't offered one, you get the card anyway, with everything we have on it — including the parts that don't flatter.

It is not a quality ranking. A stable, finished library has no star growth and few issues to close, and will fail most of these checks while being better software than half the things that pass. Don't read the gate as a score. It exists so we don't email a maintainer with a two-week response time and a growing backlog asking them to please tell their followers about it.

There's a consequence worth stating out loud: because the offer is gated, the cards in circulation are a biased sample. Share volume measures our funnel, not the health of the repositories we index. We'd rather say that than let anyone quietly infer the opposite.

Preview it before you post it

A preview that doesn't match the unfurl is worse than no preview, so the on-page card and the rendered image are built from the same tile-selection code — they can't disagree. You can see a card rendered from fixtures at /og/card/preview, and the real one for any eligible repo at /repos/owner/name/card.

Where the links work

Copy link, X, LinkedIn, and the native OS share sheet on mobile. There's also a Download image button, which exists for one specific reason: LinkedIn renders organic link previews as a small thumbnail, and only sponsored posts get the full-width image. Attaching the PNG as a native image is the only way to make the card readable there.

Every outbound link carries UTM parameters so we can tell the channels apart. Network buttons are tagged social; a copied link is tagged referral, because a pasted URL can land in Slack, an email, or a doc, and calling that "social" would overstate what we know. The downloaded image carries no UTM at all — there's no URL for one to ride on.

One bug worth mentioning since it affected sharing directly: WhatsApp's in-app browser was being classified as a crawler, which meant cards shared into WhatsApp threads were being counted as bot traffic instead of people. Fixed.

What this isn't

The card page is noindex. It's a share artifact, not a landing page — left indexable it would compete with the repo page for the same queries, and the repo page is the better result.

We're also not claiming these three numbers are a complete picture of a project's health. They're three things that are measurable, comparable across repos, and currently invisible. That's a narrower claim than a badge usually makes, and we'd like to keep it that way.

Find a repo you maintain, or one you're deciding whether to depend on, and hit Share.