Does GitHub say how it decides what is trending?
Not in any current documentation we could find. The trending page offers a date range (Today, This week, This month) and a language filter, but it doesn’t explain how repos are ordered. We read it on Oct 23, 2026.
The only official description we found is a GitHub blog post from Aug 13, 2013. It says GitHub calculates trending data eight times a day into three buckets (daily, weekly, monthly). It says GitHub looks at “stars, forks, commits, follows, and pageviews, weighting them appropriately”, and that recency matters as well as totals. That post is more than 13 years old, and we can’t tell how much of it still applies.
A community discussion we read the same day has many theories and no GitHub staff answer. We won’t repeat them as fact. If you need to know why a repo is on GitHub’s list, the honest answer is that GitHub hasn’t said.
What does RepoTrending use instead?
We use one signal only: stars gained. It is a repo’s star count in the latest daily snapshot minus its count N days earlier, with N set to 1, 7 or 30. Nothing else goes into the rank. How we rank has the full method; this guide covers the reasoning.
The reasoning is that a single number can be checked. If a repo is ranked #3 for the week, you can take its star count on two dates, subtract, and get the same figure we did. You can’t do that with a blend of stars, forks, commits and pageviews, because we cannot read pageviews at all. We picked the weaker, checkable signal over a richer one we couldn’t show.
The cost is that stars are all we see. A repo with a burst of commits and a flat star line gets no rank from us, however interesting it is, because commits are not in our data.
Why isn’t “today” a calendar day?
On RepoTrending, Today is the last 24 hours between two real snapshots, not the span from midnight to midnight. We save one star count per repo per day (UTC), so a 24-hour window is the shortest one we can measure honestly.
There is a quirk here that matters. Snapshots aren’t always taken at the same hour. When one was taken at a clearly different time of day, we read it at the usual time by a straight line between the two real snapshots on either side of it, never beyond them. If that isn’t possible, the window waits rather than guessing. We would rather show a ranking a day late than fill a gap with a guess.
The other windows follow the same rule. This week looks seven days back and needs seven days after the first snapshot. This month looks 30 days back and needs 30 days of data. Our weekly list and monthly list are the two you’ll use most.
Why can a gain be smaller than the new stars?
Because gain is a net figure: it counts stars added minus stars removed. If a repo is starred by many people over the window and some of them unstar it, the gain is the difference, and that is what the ranking uses.
We can’t see who starred or when, only the total at each snapshot. So we can’t split a gain into “new” and “lost”, and we don’t pretend to. Ties go to the repo with more total stars, then by name, so two repos with the same gain always sort the same way.
Which repos are in the ranking at all?
A ranking can only include repos we know about. On Oct 23, 2026 we tracked 12,468 repos. They came from public searches: every repo with 5,000 stars or more, plus recently created repos above a star floor, a few topics (ai-agents, mcp, claude-code, llm) and active repos in some large languages. We skip forks, archived, disabled and private repos.
The site has a page for 2,500 of the 12,468. With no gains yet, those are simply the most starred: on Oct 23 the smallest has 18,279 stars, the median is 29,751, and 135 have more than 100,000.
- 12,468repos trackedpublic repos; forks, archived, disabled and private ones are skipped
- 2,500repos with a pagethe most starred of those tracked
- 5,000stars: the discovery floora quiet repo below it can be missed
- 135repos above 100,000 starsmedian 29,751, lowest 18,279
What did day one look like?
Every ranking was empty. On Oct 23, 2026 we had exactly one snapshot, and a gain needs two. The trending pages said “Data collecting since Oct 23, 2026” and nothing more.
So we have no measured gain to show you yet, and we aren’t going to make one up. The first ranking, Today, is due on Oct 24. This week is due on Oct 30, and This month on Nov 22. Until each is ready, a page shows what it has, marked partial. Once a window is ready, a repo we’ve watched for fewer days than the window is left out, so it isn’t compared unfairly with older entries.
What does exist on day one is the all-time view. On the most-starred list, codecrafters-io/build-your-own-x leads with 555,515 stars. That is a total, not a gain, and the difference between the two is the subject of stars gained vs total stars.
What can’t we tell you yet?
Sponsors don’t change any of this. They sit in a labeled card outside every list and never move a rank.
Frequently asked questions
Does GitHub publish how its trending page is ranked?
No. The trending page itself has no explanation of its method, and the only official description we found is a short GitHub blog post from Aug 13, 2013. Anything more exact than that is community guesswork.
What does “stars gained” measure?
It is a repo’s star count in the latest daily snapshot minus its count N days earlier, where N is 1, 7 or 30. It is net of unstars, so it can be lower than the number of new stars.
Is “today” on RepoTrending a calendar day?
No. Today means the last 24 hours, measured between two daily snapshots, so it doesn’t reset at midnight.
Can RepoTrending tell real stars from bought stars?
Not yet. We don’t check for bought or farmed stars, so a big spike on a young repo deserves a second look.
Where to look next
When the first gains arrive, this week’s list is where they’ll show up first for the 7-day window. How we rank has the method in one page, and the most-starred list shows the all-time totals that gains are measured against. To pick a window, read daily, weekly or monthly: which window to watch; for the other tools that rank repos, see GitHub trending alternatives.
Data used
| Number | Source | Date |
|---|---|---|
| 12,468 repos tracked | RepoTrending, meta.json (trackedRepos), GitHub REST API |
Oct 23, 2026 |
| 5,000-star floor | RepoTrending, collector/discover.mjs (BIG_FLOOR) |
Oct 23, 2026 |
| 2,500 repos with a page | RepoTrending, collector/compute.mjs (PUBLISH_LIMIT) |
Oct 23, 2026 |
| 18,279 lowest stars; 29,751 median; 135 repos above 100,000 stars (among the 2,500) | RepoTrending, repos.json |
Oct 23, 2026 |
| 555,515 stars, codecrafters-io/build-your-own-x | RepoTrending, repos.json |
Oct 23, 2026 |
| Windows of 1, 7 and 30 days; ready on Oct 24, Oct 30, Nov 22 | RepoTrending, /how-we-rank/ and meta.json (windows) |
Oct 23, 2026 |
| 1 snapshot so far; collecting since Oct 23, 2026 | RepoTrending, meta.json |
Oct 23, 2026 |
| Eight calculations a day; daily, weekly, monthly buckets; stars, forks, commits, follows, pageviews | GitHub Blog, “Explore what is Trending on GitHub” (published Aug 13, 2013) | Read Oct 23, 2026 |
| Trending page has no method text; date ranges Today, This week, This month | github.com/trending | Read Oct 23, 2026 |
| No GitHub staff statement of the method | GitHub community discussion #163970 | Read Oct 23, 2026 |
More guides
- How to check a GitHub repo before you depend on it
- Stars per year: comparing old and new GitHub repos
- Daily, weekly or monthly: which window to watch?
- Find Claude Code repos worth trying (Oct 2026)
- GitHub trending alternatives: what each one counts
- Open source licenses on popular GitHub repos
- Stars gained vs total stars: which says more?
- Trending badge for your README, and what it says
- What 12,468 GitHub repos look like