Methodology

How the rankings are made

Every table on this site comes from the same pipeline: a scheduled collector queries the official GitHub API for each country, ranks the results and writes a JSON snapshot that this site renders at build time. No numbers are estimated, interpolated or hand-edited.

The tracked set

Each country’s search query includes the country and its listed cities. The global total adds the saved country lists, not distinct GitHub accounts, so a profile can appear on more than one country page.

New collections request up to 500 users per country. Existing snapshots may contain more. The minimumFollowers field records the cutoff produced for that snapshot. The full set of country and city query entries comes from the repository’sconfig.json.

Metric definitions

Contribution data comes from the same contribution calendar; those two tabs reorder an identical set of users. Followers are read separately from each GitHub profile.

MetricDefinition
FollowersThe lifetime follower count shown on the GitHub profile.
Public contributionsThe contribution calendar total minus restricted and private contributions. What other users can see on the profile.
Total contributionsThe full contribution calendar total, including private contributions the profile owner can see.
Private contributionsRestricted contributions counted inside the total but outside the public count. Not a ranking metric on its own.

Freshness

Each country’s snapshot carries its own collectedAt timestamp. The snapshots in this build cover 138 countries and 117,935 country-ranking entries; The newest available snapshot was taken on Oct 31, 2026. Each successful run refreshes timestamps for its country batch and updates the checkpoint, even when ranking values are unchanged. Unrelated country snapshots remain untouched.

Each UTC date stores one summary of the user count, follower cutoff and three metric leaders in that country’s history file. This data powers the trend view on every country page. If another run collects the same country that date, it replaces that date’s entry.

Accessing the data

Every snapshot is served as plain JSON from this site. One file per country, no key, no rate limit beyond normal page hosting. This build currently exposes 138 files.

URL pattern/top-github-users/data/<country>.json, where country is the normalized country key from config.json, lowercased, trimmed, and with whitespace runs replaced by underscores
Country and city listconfig.json in the repository

Official documentation

The collector uses only documented GitHub API surfaces. Read the primary references here.

Counts show the profiles saved in each country snapshot. New collections request up to 500 profiles, so a snapshot may contain only part of the users matching GitHub’s search. Existing snapshots may contain more than 500.