# gayanvoice/top-github-users: country rankings built from a follower threshold

> The repository publishes markdown leaderboards of GitHub users by country and city, ranked on public contributions, private contributions and followers. The data is generated by a separate GitHub Action, and the ranking is gated by a per-country follower minimum in config.json.

**gayanvoice/top-github-users** — Check your ranking in GitHub! Don't forget to star ⭐ this repository.

- Repository: https://github.com/gayanvoice/top-github-users
- Website: https://github.com/gayanvoice/top-github-users-action
- Stars: 4,929 · Forks: 685
- Language: Unknown
- License: not declared
- Published: 2026-09-23 · Updated: 2026-09-23 · Language: en
- Canonical page: https://hysenlabs.com/projects/gayanvoice-top-github-users

## What the ranking actually measures, and who it is for

The README describes the output as a "List of most active GitHub users based on `public contributions` `private contributions` and `number of followers` by country or state." Those three signals are combined, not presented as separate leaderboards, so a user with modest contributions but a large following can sit above a prolific committer with a small audience. The repository covers 138 countries and 674 cities, and the README states that the list was updated on 2026/9/22 3:09 AM UTC.

The audience is narrow but real. Recruiters scanning a regional market, conference organisers looking for local speakers, and developer-relations teams mapping a new territory all want the same thing: a short, ordered list of names per country. The repository delivers that as static markdown, which means it can be linked, diffed and quoted without an API key. It is not a tool for measuring your own contribution history, and it is not a directory of every GitHub account in a country.

## The follower threshold in config.json is the gate everyone misses

The README is explicit: "To get into the list you need to have minimum number of followers that varies in each country. The list can be found in config.json." That single sentence changes how the output should be read. The ranking is not computed over all users in a country and then sorted. It is computed over users who already clear a country-specific follower bar, and the bar differs from one country to the next.

This is the most consequential design decision in the project, and the README gives it one sentence. A country with a high threshold produces a short list of well-known accounts. A country with a low threshold produces a longer list that reaches further down. Comparing position 40 in one country with position 40 in another is therefore not a like-for-like comparison, because the two lists were drawn from differently sized pools. Anyone citing these tables in a report should read config.json first and state the threshold alongside the ranking.

The repository layout supports the same reading. config.json sits at the top level next to checkpoint.json, cache/, markdown/ and docs/. The markdown directory holds the generated output, the cache and checkpoint files hold state between runs, and config.json holds the inputs that decide who is eligible.

## How the data is produced: a companion action, not a script in this repo

This repository is the published artefact, not the pipeline. The README points contributors to a separate repository, gayanvoice/top-github-users-action, and the homepage field on the repository also resolves to that action. The badge at the top of the README links to a workflow file at .github/workflows/action.yml inside this repository, which is consistent with the generated markdown being committed back rather than served from a database.

So the data flow is: the action collects GitHub user data, applies the follower thresholds from config.json, writes markdown into the markdown/ directory, and commits the result. The README timestamp and the last push date on the repository are close together, which matches that pattern. What the README does not document is the collection method, the API endpoints used, the rate-limit handling, or how private contributions are obtained. Those details would live in the action repository, and anyone who needs to audit the numbers has to go there.

## Reading a country page without running anything

The fastest path is to read the generated files. Country pages live under markdown/, split by ranking basis. The README links Afghanistan to markdown/public_contributions/afghanistan.md, and the same directory pattern applies to Albania, Algeria and the rest. The README does not give a command for fetching them, and this repository carries no install instructions for the generator. The links in the README are the documented entry point: open the country row for the list you want, then the markdown file it points to.

The README does not document a CLI, a package name, a version to pin, or any environment variable used to build the lists. If you want to reproduce the pipeline rather than consume its output, the README directs you to gayanvoice/top-github-users-action, which is where the generation path lives. Anything beyond reading the committed markdown files has to be worked out from that repository.

## Where the snapshot model breaks down

The lists are committed files, so they age. The README timestamp is the only freshness signal a reader gets, and it tells you when the last run finished, not when any individual row was last verified. A user who changed their profile location, deleted their account, or stopped contributing will still appear until the next run rewrites that country's file.

The follower threshold creates a second failure mode. Because eligibility is decided before ranking, a genuinely active contributor who sits just below the bar in a high-threshold country is absent from the file entirely. There is no "near miss" section and no count of excluded users, so a reader cannot tell whether a country's list is short because few people qualify or because the bar is high. The README does not document a way to query the underlying dataset, so this cannot be checked from the published output alone.

It is also the wrong tool for anything that needs to be current or complete. If you are evaluating a specific engineer, a hiring pipeline, or a live map of activity in a region, a periodically regenerated markdown file will not answer the question. The repository is a reference table, not a monitoring service, despite the map banner and the monitor repository linked from the README.

## Alternatives and how they differ in approach

The obvious alternative is querying the GitHub API or GitHub search directly. That gives you live data and lets you define your own filters, including location strings, contribution counts and follower ranges, without inheriting someone else's threshold. The trade-off is that you own pagination, rate limits, location-string normalisation and caching, and you get no ready-made per-country table to link to. The repository has already paid those costs and published the result as static files.

A second alternative is building the same pipeline yourself on top of the companion action, gayanvoice/top-github-users-action, and pointing it at a config.json you control. That keeps the markdown output format while letting you set follower thresholds that match your own definition of a regional list. The difference from consuming this repository is that you take on the scheduled run, the token, and the storage of the generated files.

A third option, for people who only want names and not rankings, is a curated awesome-list. Those are edited by hand, so they carry editorial judgement about who belongs, but they have no consistent ranking basis and no per-country thresholds. This repository's rankings are mechanical and reproducible in principle, which is exactly what a hand-curated list is not.

## Maintenance, licence and what to check before citing it

The repository is not archived, and the last push was on 2026-09-22, one day before the README's stated update time. The README names gayanvoice as the maintainer and links to a companion action repository for contributions, so the project has a single maintainer and a separate pipeline repository to keep in sync. That is a small operational surface, but it is also a single point of failure: if the action stops running, the markdown files simply stop changing, and the only visible symptom is a stale timestamp at the top of the README.

The repository metadata does not state a licence, and neither the README nor the file listing identifies one. Without a licence file, the default position is that no permission is granted, so anyone planning to redistribute the tables, embed them in a product, or republish them at scale should treat the licensing question as unresolved and check with the maintainer rather than assume reuse is permitted. This is a factual gap in the repository, not a legal opinion.

The practical checklist before citing a row: open config.json and note the follower minimum for that country, confirm the README timestamp is recent enough for your purpose, and follow the link on the user's row to their profile to confirm the account is still the one you mean.

## Conclusion

Adopt it if you want a citable, per-country list of GitHub users and are willing to read the markdown files in the repository rather than a live API. Do not adopt it if you need a current ranking of your own organisation, or a list that includes users below the follower threshold in config.json, because those users are filtered out before ranking begins. Before relying on it, open config.json for the country you care about and check the minimum follower count, then confirm the timestamp in the README matches the update you expect, since the published list is a snapshot rather than a queryable service.

## FAQ

### Who are the most famous GitHub users according to gayanvoice/top-github-users?

The repository does not publish a single global fame ranking. It publishes per-country and per-city lists ranked on public contributions, private contributions and number of followers, with a country-specific minimum follower count defined in config.json deciding who is eligible at all.

### Who are the top contributors on GitHub in this project's lists?

The README describes the lists as the most active users by country or state, based on public contributions, private contributions and followers. Because private contributions are one of the three signals, the ordering is not a pure public-commit leaderboard.

### How many countries and cities does gayanvoice/top-github-users cover?

The README states the repository contains users from 138 countries and 674 cities, with each country page linking to a markdown file under markdown/ and listing its cities as code spans.

### What decides whether a GitHub user appears in gayanvoice/top-github-users?

A minimum number of followers that varies by country. The README says that list of thresholds can be found in config.json, so eligibility is decided before the ranking is applied.

### Where does the data in gayanvoice/top-github-users come from?

The README points contributors to the separate repository gayanvoice/top-github-users-action, which is also the repository's homepage. The README in this repository does not document the collection method or the API calls used.

## Sources

- [gayanvoice/top-github-users on GitHub](https://github.com/gayanvoice/top-github-users)
- [Issues](https://github.com/gayanvoice/top-github-users/issues)
- [Project website](https://github.com/gayanvoice/top-github-users-action)
- [README](https://github.com/gayanvoice/top-github-users/blob/main/README.md)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/gayanvoice-top-github-users
