Live · 7d
Methodology

How we rank skills.

Every score on this site is computed from public GitHub data using the formula below. No editorial weighting, no vendor install counts, no pay-to-rank. The goal is simple: reward the projects people are actually using, forking, contributing to, and returning to.

Why traction, not stars

GitHub stars used to mean something. A repo with 10k+ stars signaled a mature, widely-used project — but that era is over. Investigations into GitHub's fake star economy have flagged millions of artificial stars across the ecosystem, including one VC-darling project that topped a well-known ROSS Index with 74,300 stars — nearly half flagged as artificial, with 52% of stargazers coming from zero-follower accounts and a fork-to-star ratio of just 0.052.

Once a metric becomes a target (Goodhart's Law in action), it stops being a metric. Because VCs, rankings pages, and trending lists still lean on raw star counts, an entire gray-market ecosystem of star-farms, bot accounts, and paid promotion has sprung up to game them.

Current Traction is our answer: a multi-signal 0–100 score using recent attention, sustained growth, repo activity, forks, and anti-gaming penalties. The leaderboard displays that score as a simple band label instead of showing the raw number in the table.

Formula

Recent stars are useful, but they are not enough on their own. We combine 7-day attention, 30-day sustained growth, repo activity, and forks so a star-only spike does not dominate a slower but healthier project. Each component is normalized inside the current cohort and variant, then combined into the Current Traction score.

SignalWeightRationale
Recent attention40%Stars earned in the last 7 days
Sustained growth25%30-day stars plus 7d / 30d consistency
Repo activity25%Recent commits, contributors, and push freshness
Adoption signal10%Forks and healthy fork-to-star ratio

Anti-gaming penalty

Each trigger subtracts a small dampener so obvious star-only patterns do not crowd out healthier projects. These are not fraud verdicts; they are conservative scoring rules for noisy public data.

  • Star-only burst
    20+ recent stars with <=2 forks, no recent commits, and <=1 contributor
  • Low star-to-fork ratio
    500+ lifetime stars and a star-to-fork ratio above 500:1
  • Recent star concentration
    50+ stars in 30 days, at least 80% of them inside 7 days, and low repo activity

Normalization pipeline

  1. Compute recent attention from 7-day stars.
  2. Compute sustained growth from 30-day stars and 7d / 30d consistency.
  3. Compute repo activity from recent commits, contributors, and push freshness.
  4. Compute adoption signal from forks and fork-to-star health.
  5. Normalize each component to 0-100 inside the current cohort and variant.
  6. Weight and sum per the table above.
  7. Subtract the anti-gaming dampener, then clamp the score to 0-100.

Current Traction bands

The raw score still powers sorting, ranking, and the bar fill. The visible table label is intentionally simplified to one of five score bands.

Exceptional90–100

Top-band multi-signal traction

Strong75–89

Clear traction across recent and sustained signals

Active60–74

Healthy current movement

Moderate40–59

Some traction, but below the active band

Slow0–39

Limited recent traction

Refresh cadence

  • GitHub data is stored as daily snapshots.
  • Stargazer-derived 7-day and 30-day fields update after each stargazer fetch.
  • Production pages revalidate from the data cache every 10 minutes.

What we don't do

  • No vendor install counts. We rank public GitHub signal, not marketplace telemetry.
  • No paid placement. There is no boost, ad slot, or featured tier.
  • No LLM-based ranking. Categories are LLM-classified once; the score itself is deterministic.
  • Single-skill repos and skill bundles stay available as separate focused views.
Spot a methodology issue or a repo that's being gamed? Check the trending page — anomalies surface there first.