shipboard.lol

How scoring works

Formula v2 · in effect from 2026-09-29

shipboard.lol ranks projects by how steadily their builders ship. Everyone plays by the same rules, and the rules are all on this page. Paying lists your project. It never moves your score.

The short version

  • Show up often. Shipping a little on most days beats one huge weekend.
  • Recent work counts most. We look at the last 28 days, and a day from a week ago counts half as much as today.
  • More isn't always better. Commit counts and line counts are capped and scaled down, so 10,000 lines don't beat 100 lines by 100 times.
  • Noise doesn't count. Lockfiles, generated code, vendored folders, and bot commits are left out before we score anything.
  • Money never touches the number. No plan, price, or add-on changes a score.
  • Every score is explained. Your project page shows the exact breakdown behind your number.

Your score: four signals, 1,000 points max

SignalUp toWhat it rewards
Consistency400Days you shipped in the last 28. Recent days count more.
Velocity300Commits per week, on a curve that flattens out. Full marks at 50 a week.
Build size150Lines added and removed per week, on a curve that flattens out. Full marks at 10,000 a week.
Releases150Releases and tags. Full marks at 3 a week.

Each signal is measured against a fixed target, not against other projects. So your score only changes when you ship. Your rank can still move when others do.

What's a "shipped day"?

A day counts when it has at least one real commit on your default branch. Tiny commits (fewer than 3 meaningful lines, like a typo fix) count as a quarter each, so four of them add up to one.

Days follow UTC and use the time you pushed, not the date written on the commit. That way nobody can backfill a fake streak.

Recent days count more

Activity loses half its weight every 7 days. Shipping today is worth twice as much as shipping a week ago, and about eight times as much as three weeks ago. After 28 days it drops out of your score.

What counts, and what doesn't

Counts:

  • Commits on your default branch. A merged pull request counts once, through its own commits. The merge commit itself is skipped, so the same lines never count twice. Squash and rebase merges count as usual.
  • Releases and tags (two tags on the same commit count once).
  • Work across all of your project's repos (up to 3), added together.

Doesn't count:

  • Lockfiles, vendored and generated code, minified bundles, build output.
  • Commits by bots and CI accounts.
  • Branches that haven't been merged.
  • Lines beyond 2,000 in a single commit.
  • Clicks, visits, and stars. We show your clicks, but we never score them, so nobody gains anything by farming traffic.
  • Team size. A solo builder and a team of five are on the same curve.

Commits count the same whether you or a coding agent wrote them; the caps keep volume from paying.

Why gaming doesn't pay

We test the formula against the tricks people try. Some examples, all scored over the same 28 days:

PatternScore
2 small commits every day, a release each week760
1 commit every weekday542
The same 56 commits, crammed into one weekend87
300 commits and 60,000 lines in one giant weekend309
1,000 commits in a single day280
One 2-line commit a day to keep a streak alive121 (no shipped days)
A month of fake history, pushed all at once267 (counts as one day)
50 tags in a week165 (release credit capped at 3)
The same work split across 3 repos760 (no bonus)

Flooding every day gets you no more than a busy, steady week, because each signal is capped. Patterns like that are also reviewed by moderation (below).

Moderation

Automated checks look for four patterns in the commit data we already track:

  • Commit floods: a day far above the project's own usual pace.
  • Churn loops: lots of lines added and then removed again, with little real change.
  • Generated dumps: vendored code, build output, or other non-source files that slipped past our filters.
  • Author spoofing: commit dates or authors that don't match when and how the work was pushed.

A check never changes a score by itself. It only raises a flag, and a person reviews every flag. If a reviewer applies a penalty, it appears on the project's breakdown as a labeled line, such as "Moderation: commit flood, week of 2026-09-28", and in the project's history. There are no hidden adjustments. Penalties usually expire after 28 days, when the activity they cover has left the scoring window, and a reviewer can revoke one early. Listed projects and unclaimed entries are checked the same way. Penalties are standard for each kind of issue and sized to cancel what the pattern could have gained, so similar cases get similar outcomes. If the same issue comes back within 90 days, the penalty is larger.

Ranks and categories

  • The main board and every category board rank projects by score, highest first.
  • Projects with equal scores share a rank (1, 2, 2, 4).
  • Category boards use exactly the same formula and targets.
  • Unclaimed entries (public repos we track before their owners join, always labeled) are ranked alongside listed projects, on the same numbers and by the same formula.
  • Scores and ranks refresh every hour.

Going quiet, the Graveyard, and coming back

Projects have a life. The board reflects that honestly and kindly.

StatusWhenOn the board
ActiveShipped in the last 30 daysRanked
Fading30 to 89 days without a shipped dayStill ranked, shown as going quiet
Graveyard90 days without a shipped dayLeaves the board and rests in the Graveyard, with its last ship date and an epitaph its owner writes
RevivedA Graveyard project ships againBack on the board with a "Revived" badge for 30 days

Resting in the Graveyard is free. Your listing won't auto-renew while a project is there, and your tombstone stays up. When you ship again, the project is revived and you can resume your listing to rejoin the board.

Unclaimed entries that go quiet for 90 days simply leave the board. Tombstones and epitaphs are for owners only.

We check statuses once a day. Every change is recorded on the project page, so a comeback is part of the project's story.

Payment and your score

A listing puts your project on the board. That's all it buys. If a listing lapses, we keep tracking your activity so your score is ready the moment you renew. There's no gap, and no penalty or bonus either way.

Transparency

  • Every project page shows the full breakdown: points per signal, shipped days, the 28-day window, and the formula version.
  • The formula is versioned. Any change gets a new version number, is announced before it takes effect, and is listed below.

Changelog

v2 · 2026-09-29

  • Merge commits no longer count. A merge commit repeats the lines of the pull request it brings in, so v1 counted those pull requests twice. Squash and rebase merges are unaffected.
  • Every other rule and number is the same as v1. If your project merges pull requests with merge commits, your score may drop a little; nothing else changes.

v1 · 2026-09-28 (first public version)

  • A shipped day needs one real commit, or four tiny ones. In the draft, a single typo fix counted as a full day.
  • Build size is measured per week (full marks at 10,000 lines), on top of the 2,000-line cap per commit.
  • Releases count on their own. Deploy signals from the draft are left out until we can observe them reliably.