Method
How Pulse scores the tape
Pulse is a public dashboard for trending GitHub repositories and the AI stack. Every number on screen is observed from a public source or derived from those observations. If a source fails or a metric cannot be computed, it is omitted — never invented.
Heat score (0–100)
Let logNorm(x, cap) = min(1, log10(1+x) / log10(1+cap)). Recency is max(0, 1 − daysSincePush / 45).
- stars 0.30 — logNorm(stargazers, 80,000)
- velocity 0.45 — logNorm(stars added in the selected window, 4,000)
- recency 0.15 — days since last push (GitHub Search only)
- signal 0.10 — AI keyword hits in name, description, and topics
Missing terms are dropped and remaining weights renormalize. Hugging Face items use likes (0.55) and downloads (0.45) with the same log curve.
Sources
- GitHub Trending HTML (daily / weekly / monthly) — stars, forks, language, and window velocity (“stars today / this week / this month”).
- GitHub Search API (unauthenticated, optional GITHUB_TOKEN) — AI/LLM/ML topics, created-date filter, topics, timestamps.
- Hugging Face public API — models, datasets, spaces sorted by likes.
- arXiv Atom API — latest cs.AI submissions.
Derived metrics
Percent change is starsAdded / max(1, stars − starsAdded). Daily star rate for sparklines is starsAdded / windowDays for each window a repo actually appeared in. We do not interpolate missing days.
Refresh
Each source is cached on its own for 24 hours (unstable_cache) once it reads cleanly. 403 and 429 responses are treated as rate limits: a failed read is never kept for the day. It is retried every 10 minutes, the last good read keeps serving if there is one, and the failure is named in the sources line until it clears.