Skip to content
RepoRanker

How the board is ordered

The top of the board is bought. Placement starts at $3, and rank among paid rows is total dollars spent. That ordering follows the board wherever you narrow it: filter to a language or a topic and the bought rows that match still lead. Rows nobody has bought yet are sorted by the score further down this page. Both are written out here in full.

The bought rows

Every row that has been bought sits above every row that has not, as paid placement. They are ordered by total dollars spent, highest first, and by nothing else. To pass the row above you, spend more than its total. Every paid row shows the amount that bought it, on the board and on the full ladder at /placements.

Entry price

$3

Rank among paid rows

Total dollars spent

Paid rows at the top of the board

Every one that has been bought

Where that ordering applies

The board and every filtered view

Equal totals

Whoever paid first ranks higher

How long a position lasts

Until someone spends more

Subscription

None

Expiry

None

Refunds

None

Payments accumulate. Spending again adds to your total, so defending a position costs the difference while taking one costs the whole stack.

You are never removed. When someone spends more than you, you move down a row. Your listing stays on the ladder.

It buys position and nothing else. A payment does not change any term in the score below, and it does not alter or remove a review.

Unsold slots are filled, not left blank. Any of the top 5 slots nobody has bought is held by the repo with the most star growth since listing. A held row paid nothing, is labelled as held, and loses the slot to any payment.

Equal totals go to whoever paid first. Rounding puts repos on the same amount often enough that this decides a lot of the board, so it is a rule rather than a detail.

This holds on filtered views too. Narrow the board to a language, a topic, a type or any filter and the bought rows that match still rank above the unbought ones that match, by the same totals. Numbers on a narrowed view are positions in that list, not board rank.

Search leads with the best match. When you type a query, relevance decides the order and spend only separates results the search cannot tell apart. Paying does not move a repo above a better match for what you typed.

A named sort is ordered by its own column. Pick Stars, New or Trending and that column decides the order outright, with no weight given to what anyone paid. Bought rows still show their price there, because the position is not the one they bought.

Ordering the rows nobody has bought

Below the paid block, rows are sorted by GitHub activity. Same inputs, same order.

push_bonus = 25 if pushed within 7 days, 12 within 30, 4 within 90, else 0

score = max(stars_gained_since_listing, 0) × 1.0 + push_bonus

  • Stars gained is measured against the first snapshot taken when the repo was listed, not raw star count. It is clamped at zero, so losing stars does not push a repo down.
  • The score is always all time, whatever time filter is selected.
  • Ties fall to push recency, then to current star count, then to submission date.

Sort modes

  1. TopThe default. Bought rows first, ordered by total paid, then the score below. Holds on filtered and topic views too. With a search query, relevance leads and spend orders the ties. The time filter does not change this order. The home page shows the first rows of this order and nothing else; searching, filtering and every other sort live on /leaderboard.
  2. NewMost recently submitted to RepoRanker, newest first. The time filter limits which repos appear.
  3. StarsTotal GitHub stars, highest first. The time filter does not apply. On /leaderboard only.
  4. TrendingBiggest star gain across the selected window, defaulting to 7 days. On /leaderboard only.

Time filters

Today, Week, Month, Year and All Time filter by when a repo was submitted to RepoRanker, not when it was last pushed on GitHub. They change which repos appear under the New sort, and the window used by Trending. Top and Stars ignore them. Today rolls over at 12:00 PM ET.

To buy a position, read How it works and the FAQ.