Starling doesn't guess. Every repository on the board earned its place through the same arithmetic, applied identically to every repo, every day. Here's exactly how it works — the whole calculation, with the math.
Once a day, Starling records the star count of every public GitHub repository with at least 500 stars — roughly 120,000 of them. Over time this builds a daily history for each repo. "Trending" is entirely a question of how that number changed, so everything below is built from these daily snapshots.
The 500-star floor matters: it filters out tiny repos where a handful of stars would look like explosive percentage growth. Every repo compared is already established.
The same repo is judged over three time spans, so a slow-burn climber and an overnight sensation both get surfaced. Each window looks back a fixed number of days (L):
| Window | Looks back (L) |
|---|---|
| Today | 1 day |
| This week | 7 days |
| This month | 30 days |
For each repo and each window, Starling computes two numbers — how many stars it added, and how fast that is relative to its size:
Percentage is the star of the show. A repo going 500 → 650 (+30%) is more genuinely "trending" than one going 50,000 → 53,000 (+6%), even though the second added more stars. Ranking by percentage surfaces the risers, not the giants.
Percentage alone is noisy, so a repo has to clear both a percentage bar and an absolute-stars bar to qualify — a real rate of growth and a real number of stars. The two bars per window:
| Window | Min stars gained (A_min) | Min growth (P_min) |
|---|---|---|
| Today | 15 | 1% |
| This week | 75 | 5% |
| This month | 200 | 12% |
Every repo that clears the gate is ranked, and the top 50 in each window make the board. The ranking score is the percentage gain — with one adjustment for the daily window:
Ties are broken by absolute gain (A), then by current star count (S_now).
Take bojieli/ai-agent-book on a recent day — the actual #1 on the daily board:
Snapshots aren't always perfectly regular. Three rules keep the math honest: