Every number on GStars.dev is derived from public GitHub data using the rules on this page. Nothing is hand-adjusted. If a formula here disagrees with what you see on the site, that is a bug — please report it.
Data collection
Each snapshot records stars, forks, watchers and open issues, plus commit and contributor counts where the GitHub API exposes them. Trending repositories and a small set of partner organizations are snapshotted daily; the rest of the tracked set is refreshed in rolling nightly batches, stalest first. The other pipelines run on the same daily schedule:
- READMEs are fetched when a repository is first tracked; the job runs once a day to fill in newly added repositories, and the stored copy is what the repository page excerpts.
- Use-case summaries are regenerated when missing and refreshed once they are older than 14 days, for repositories that have a README.
- Categories are assigned when a repository is first tracked (the job runs once a day to pick up new repositories) and are not re-evaluated afterwards.
- The sitemap and llms.txt are rebuilt at the end of each nightly pipeline run.
Growth windows
Growth is the difference between the latest snapshot and the snapshot recorded exactly 7, 30 or 90 days earlier; if that day’s snapshot is missing, growth for the window is reported as 0:
growth_7d = stars_today − stars_7_days_ago, and likewise forgrowth_30dandgrowth_90d.- Percent growth divides that difference by the earlier value, expressed as a percentage:
growth_pct_7d = growth_7d / stars_7_days_ago × 100. avg_daily_stars = growth_7d / 7.
A snapshot can be missing because the repository was first seen less than 90 days ago or because a collection run was skipped. Either way the window reports 0 rather than an estimate: under-reporting is preferred to inventing a trend.
Momentum score
The momentum score blends absolute and relative growth across all three windows:
momentum = (growth_7d × 0.5 + growth_30d × 0.3 + growth_90d × 0.1 + growth_pct_7d × 10 + growth_pct_30d × 5) / 100
The absolute terms favor large repositories, which gain more stars in raw numbers simply because more people already know about them. The percentage terms counter that: a small project doubling in a week earns a meaningful score even though its absolute gain is modest. The 7-day window carries the most weight because the site is about what is moving now.
Rankings
rank_7d, rank_30d and rank_90d order all tracked repositories by the corresponding growth window, highest first. category_rank_7d and category_rank_30d do the same within a repository’s primary category. Ranks are recomputed after every collection and stored against the current week; weeks start on Sunday. The Movers page compares the current week’s rank_7d with the previous week’s and lists the largest climbs and falls.
Health score
The health score (0–100) summarizes how actively a project is maintained. It is computed from three components, each capped at 100:
| Component | Formula |
|---|---|
| activity | min(100, commits_30d × 0.5 + contributors_30d × 2 + (prs_merged_30d / max(1, prs_opened_30d)) × 30) |
| community | 25 points each for a README, a CONTRIBUTING guide, a code of conduct, and a changelog |
| maintenance | min(100, max(0, 100 − days_since_last_release / 3.65) × 0.4 + issue_closure_rate × 0.3 + pr_merge_rate × 0.3) |
| overall | activity × 0.3 + community × 0.2 + maintenance × 0.5 |
Maintenance carries half the weight because a project that ships releases and closes issues is the strongest signal that it is safe to depend on. Community files are weighted lowest: they indicate intent, not activity. A repository that has never published a release is recorded as 999 days since its last release, so the release-recency term of its maintenance score is 0.
Use-case summaries
The “Use Cases & Benefits” section on each repository page is written by a language model from the README, the GitHub description, the topics and recent release names. Star, fork and growth figures are excluded from the prompt so the text describes function, not popularity. Summaries are regenerated when missing and refreshed once they are older than 14 days. See About for how AI is used elsewhere on the site.
Limitations
- Stars are a popularity proxy, not a quality measure. A high momentum score means people are noticing a project, not that it is correct, secure or maintained.
- Forks and archived repositories are hidden from listings and leaderboards but remain in the ranked set, so rank numbers count them.
- A repository is only tracked once it has appeared on GitHub trending or has been looked up on this site. The index is not a census of GitHub.
- Repositories from a small set of partner organizations (currently Backblaze’s open-source orgs) are always included in the index regardless of trending status.
- A missing snapshot yields 0 growth for that window, which can understate momentum for recently added repositories.
- All ranks and scores are relative to the tracked set, not to all of GitHub.
- GitHub API rate limits and outages can skip a collection run; any window anchored on that day’s snapshot then reports 0 growth.