Skip to content

feat(site): show each feed's data licence, and widen the adopters lead - #45

Merged
hhkaos merged 1 commit into
mainfrom
feat/license-badge
Aug 30, 2026
Merged

feat(site): show each feed's data licence, and widen the adopters lead#45
hhkaos merged 1 commit into
mainfrom
feat/license-badge

Conversation

@hhkaos

@hhkaos hhkaos commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Follow-up to #44. Two changes.

Licence badge

Deciding whether to consume a feed has two halves: which spec version it speaks (#44) and what its licence permits. The second was nowhere on the site.

The catch is that feed.license is not the answer. Per the spec, an event may override the feed's licence, and an aggregator may omit feed.license entirely as long as every event declares its own — so a badge built from feed.license would be wrong precisely for the mixed feeds where a consumer most needs to know. check-feeds.mjs therefore resolves the effective licences (per event, inheritance applied) and feed-health.json reports the distinct set:

  • one licence → the SPDX id, e.g. CC0-1.0
  • several → 3 licences, with a tooltip listing them and noting that aggregating the whole feed means checking each event's, not only the feed's
  • a URL → Custom licence, URL in the tooltip; no short label can honestly summarise arbitrary terms

Failure state is still not shown publicly — health is for maintainers (issues) and for consumers via JSON.

Adopters lead

"Communities and events already exposing their data in this format" → "Communities, conferences and directories exposing their event data in this format" (and the Spanish equivalent). Conferences and directories publish here too, and what they expose is their event data.

Verification

Checked in the browser against the local site, including synthetic health data for the mixed-licence and URL-licence cases: badges, labels and tooltips render correctly in both languages. npm run validate passes.

🤖 Generated with Claude Code

"Can I consume this feed" has two halves: which spec version it speaks, and what
the licence lets me do with it. The second one was nowhere on the site.

The health check now resolves the licences a consumer actually ends up with —
per event, with feed-level inheritance applied — instead of reporting
feed.license. That distinction is the whole point: an event may override the
feed's licence, and an aggregator feed may omit feed.license entirely as long as
every event carries its own, so a badge built from feed.license alone would be
wrong exactly for the mixed feeds where the question matters most. A feed with
one effective licence shows it; a feed with several says "3 licences" and the
tooltip lists them and points out that aggregating means checking each event.

A licence given as a URL has no honest short label, so it reads "custom licence"
with the URL in the tooltip.

Also: the adopters lead said "communities and events", which undersold who the
registry is for — conferences and directories publish here too, and what they
expose is their event data.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@hhkaos
hhkaos merged commit c6137fc into main Aug 30, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant