Our view: watch This week if you check once a week, Today if you only want what is new since yesterday, and This month if you want what keeps gaining. On Oct 23, 2026 no window has a measured gain: Today is ready Oct 24, This week Oct 30 and This month Nov 22.
So this guide compares the three windows by how they are built and what each one can miss, not by results: Today needs 2 snapshots of a repo, This week 8 and This month 31, and we have 1. We’ll say where a result is our reasoning and where it is a fact.
Which window should you watch?
Watch This week for a weekly check, Today for what is new since yesterday, and This month for what keeps gaining. These pairings are our view, built on one fact: a one-day swing is the whole of Today, one seventh of This week and one thirtieth of This month. The reasons in the last column are not something we have measured.
| If you are… | Watch | Why (our view) |
|---|---|---|
| A developer who opens GitHub every morning | Today | You see what is new since yesterday, and a day later it has moved on. |
| A maintainer asking whether a spike is real | This week | A one-day spike is one seventh of the window, so it cannot decide the order alone. |
| Someone choosing a tool to try this month | This month | A repo that keeps gaining for 30 days is harder to explain with one busy day. |
| Someone judging whether a project has lasted | Best of all time | All time is a total, not a window. codecrafters-io/build-your-own-x leads it with 555,515 stars on Oct 23, ahead of sindresorhus/awesome with 523,193. |
GitHub’s own trending page offers the same three ranges, Today, This week and This month, with no method text. We read it on Oct 23, 2026.
How are the three windows built?
All three are the same subtraction with a different N. A repo’s gain is its star count in the latest snapshot minus its count N days earlier, and N is 1, 7 or 30. How we rank has the full method.
We save one snapshot per repo per day, in UTC, so each window needs a minimum number of them. Today needs 2 snapshots, This week needs 8 and This month needs 31 data points. The gain is net of unstars, so it can be lower than the number of new stars. Ties go to the repo with more total stars, then by name.
Today is not a calendar day. It is the last 24 hours between two snapshots; how GitHub trending works explains why. If a snapshot was taken at a clearly different hour, we read it at the usual hour by a straight line between the two real snapshots on either side, never beyond them, and if that is impossible the window waits.
What can each window miss?
Each window can miss something, and none of them can see bought or farmed stars. We don’t check for bought or farmed stars yet, so a big jump on a young repo needs a second look in any window.
- Today: it is one subtraction, so in our view one busy day can decide the order. Good for freshness, weak as evidence.
- This week: a spike counts for one seventh of the window, in our view. It is the first window that needs a full week of history, which is why it arrives on Oct 30.
- This month: in our view it is the slowest to react and needs the most history. It is ready on Nov 22, the last of the three.
Why can a repo be on Today but not on This week?
Because once a window is ready, a repo watched for fewer days than the window is left out of that list. The code checks that a repo has more than N data points before it can be ranked for an N-day window.
Here is a worked example with a hypothetical repo. Say our collector first meets it on Nov 10, 2026. It has 2 snapshots on Nov 11, so it can be on Today.
It reaches 8 on Nov 17, so it can join This week then. It reaches 31 data points on Dec 10, so it can join This month then. Until those dates it is missing from the longer lists on purpose, so it isn’t compared unfairly with repos that have a full window behind them. A repo missing from This week may be young to us, not quiet.
What do you see before a window is ready?
You see a partial list, labeled as partial. Until a window is ready, the page shows what we have, from the oldest snapshot to the latest, and a repo needs at least two daily snapshots to appear (partialGain in src/lib/rank.js). The page says when the full ranking starts. On Oct 23, 2026 we have one snapshot per repo, so there is nothing to show yet and the pages say “Data collecting since Oct 23, 2026”.
Once the first daily gains exist on Oct 24, the weekly and monthly lists will still say partial for six and 29 more days. That is a fact of the calendar, not a fault.
Frequently asked questions
Which trending window is best?
It depends on how often you look. In our view, This week suits a once-a-week check, Today suits a daily check for what is new, and This month suits spotting repos that keep gaining. No window has a measured gain on Oct 23, 2026.
Is Today a calendar day?
No. Today is the last 24 hours, measured between two daily snapshots, so it doesn’t reset at midnight.
Why is a repo on Today but not on This week?
Once a window is ready, a repo we have watched for fewer days than the window is left out of that list. A new repo can have the two snapshots Today needs and still lack the eight that This week needs.
Why does the weekly list say it is partial?
Until This week is ready on Oct 30, 2026, we show what we have, from the oldest snapshot to the latest, and mark the list partial. It is not a full 7-day ranking yet.
Where to look next
- This week: the 7-day list, partial until Oct 30.
- This month: the 30-day list, ready Nov 22.
- Feeds: the RSS feeds, if you’d rather follow a window than open the site.
Data used
All figures: RepoTrending, GitHub REST API (public repository search, read-only), snapshot of Oct 23, 2026.
| Number | Source | Date |
|---|---|---|
| Windows of 1, 7 and 30 days; gain net of unstars | src/lib/rank.js, /how-we-rank/ |
Oct 23, 2026 |
| One snapshot per repo per day (UTC) | /how-we-rank/ |
Oct 23, 2026 |
| Today needs 2 snapshots; This week 8; This month 31 data points | /how-we-rank/, src/lib/period.js |
Oct 23, 2026 |
| Ready dates: Oct 24 (Today), Oct 30 (This week), Nov 22 (This month) | meta.json: windows |
Oct 23, 2026 |
| 1 snapshot so far; collecting since Oct 23, 2026 | meta.json |
Oct 23, 2026 |
| A repo needs more than N data points for an N-day window | windowGain, src/lib/rank.js |
Oct 23, 2026 |
| Ties: more total stars first, then the name | rankRepos, src/lib/rank.js |
Oct 23, 2026 |
| 12,468 repos tracked | meta.json: trackedRepos |
Oct 23, 2026 |
5,000-star floor (BIG_FLOOR) |
collector/discover.mjs, /how-we-rank/ |
Oct 23, 2026 |
| 555,515 stars, codecrafters-io/build-your-own-x (a total, not a gain) | repos.json export |
Oct 23, 2026 |
| Worked example: first snapshot Nov 10, 2026 gives Today Nov 11, This week Nov 17, This month Dec 10 (hypothetical repo, computed from the snapshot counts above) | Our calculation from src/lib/period.js rules |
Oct 23, 2026 |
| Partial lists show the oldest snapshot to the latest; a repo needs at least two daily snapshots | partialGain, src/lib/rank.js |
Oct 23, 2026 |
| 523,193 stars, sindresorhus/awesome (a total, not a gain) | repos.json export |
Oct 23, 2026 |
| GitHub’s trending page offers Today, This week, This month and has no method text | github.com/trending | 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
- Find Claude Code repos worth trying (Oct 2026)
- GitHub trending alternatives: what each one counts
- How does GitHub decide what is trending?
- 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