How the feed is ranked
gawk.dev aggregates publicly verifiable data — it does not invent metrics. The feed’s severity is a deterministic sort key over already-aggregated public data, not an invented score. Every card cites a primary public source. The formula below is pre-committed in code and declared on this page; a threshold change is one git commit.
Severity formula
| Card type | Severity | Fires when |
|---|---|---|
| TOOL_ALERT | 100 | Any tracked tool (Claude Code, Claude API, OpenAI API, Codex, Copilot, Windsurf) reporting a status that is not 'operational' on its public status page, OR an active incident on a status page that still reads green overall. |
| MODEL_MOVER | 80 | An OpenRouter top-30 model whose week-over-week rank delta exceeds the threshold (strictly greater than). |
| NEW_RELEASE | 70 | A HuggingFace text-generation model published in the last 48h by an org in the major-lab allowlist (Anthropic, OpenAI, Google, DeepSeek, Moonshot AI, Meta-Llama, Mistral AI, Qwen, xAI, Cohere, Alibaba, Microsoft, NVIDIA, Perplexity, Amazon) with at least 5 likes — likes are first-paint social proof; the rolling 30d download counter starts at 0 for brand-new repos. |
| SDK_TREND | 60 | A tracked package (PyPI / npm / crates / Docker / Brew / VS Code Marketplace) whose week-over-week download delta absolute value exceeds the threshold. |
| PRODUCT_LAUNCH | 50 | A most-upvoted launch in Product Hunt's Artificial Intelligence topic over the last 7 days (ordered by community upvotes, above a vote floor), read from the Product Hunt API. Cites the public launch page. |
| PRESS | 45 | An AI article from a tracked regional publisher (The Register, Heise, MarkTechPost, MIT Technology Review, latent.space, Analytics Vidhya) published in the last 12h — at most 2 per publisher per window, in the publisher's own order, headline unedited. Publication-wide feeds are filtered by whole-word AI keywords. |
| NEWS | 40 | A Hacker News AI-filtered story whose points exceed the threshold within the configured time window, or a top post of the day from a tracked AI subreddit (at most a few per subreddit per window; the subreddit's own curation is trusted, not scored). Hacker News stories come first, because they passed a points threshold and a subreddit post passed none; then newest first. |
| RESEARCH | 20 | An arXiv paper in the current top-5-by-recency snapshot for cs.AI + cs.LG. |
| LAB_HIGHLIGHT | 10 | The single curated AI lab with the highest 7-day GitHub event total in the current snapshot. |
Numeric thresholds
- MODEL_MOVER fires when |currentRank − previousRank| > 3 (strictly greater).
- SDK_TREND fires when |week-over-week %| > 10% (strictly greater).
- NEWS fires when HN points > 100 AND age ≤ 6h.
- NEW_RELEASE fires when a HuggingFace model’s
createdAtage ≤ 48h AND likes ≥ 5 AND the publishing org is in the major-lab allowlist.
Sort order
Cards are sorted by severity descending. Within one severity, a story covered by more outlets and threads comes first; within News, Hacker News stories come before subreddit posts; then the newest event first. No more than two cards of one kind run in a row: the next place goes to another kind, and that place rotates among the kinds, the one shown least recently first. Sort is deterministic and stable; identical inputs produce identical orderings.
One story, one card
When publisher articles, Hacker News posts or subreddit posts from the last 48 hours report the same story, they fold into one card. Two items are the same story when they link to the same article, or share a name (a product, model or company) and enough rare words; two articles from one publisher, or two posts in one subreddit, are never merged. The card kept is the earliest publisher article, headline unedited; the others are listed on it as sources and discussion, each linked. Nothing is scored and no headline is rewritten.
Quiet days
When zero cards with severity ≥ 40 land in the last 24 hours, the feed shows a quiet-day banner with the current state of the dashboard (top model, tool-health green/total, latest paper). The feed never fabricates cards to fill a slow day.
Sources
Every card cites the public source the underlying number was read from. The full source registry — names, governance, transparency notes — is published at /sources.
Regional bias on the map
Geographic placement on the live globe and flat map relies on a deterministic geocoder that resolves location strings from public GitHub and Hacker News profile fields. Coverage currently sits at around 21% of raw events and is biased toward English-speaking developer profiles. Chinese, Indian, and other non-English developer activity is systematically underrepresented in the geographic view — the events still land in the Wire feed and panel aggregates, but they don’t become dots until the geocoder can resolve their author’s self-declared location.
The AI Publishers wire (MarkTechPost IN, Analytics Vidhya IN, Heise DE, The Register UK, MIT Technology Review US) and the curated AI Labs registry partially address this — both layers carry verifiable HQ coordinates and surface non-SF activity directly without depending on the geocoder. The sixth AI Publisher slot (latent.space) sits in San Francisco and adds practitioner-grade signal rather than regional counterweight. They are a counterweight, not a fix. Additional non-English sources are on the roadmap; suggestions are welcome via the community link in the header.
Auditability
The severity formula and trigger thresholds live in src/lib/feed/thresholds.ts. Any threshold change requires a git commit and is therefore auditable in the public repository’s history.