skip to content
vibcod.dev
┌─── /vibe · the index ──────────

vibe-index

Every project on vibcod gets a single number — 0 to 100 — that rolls up traffic, engagement, freshness, and craft into one signal. We don't hide the formula; here it is, term by term.

The seven terms

Each term has a cap (so no single signal dominates) and uses a log scale or exp decay where it makes sense (so going from 10 clicks to 100 matters as much as 100 → 1 000, and a 1-week-old project doesn't outpoint a 1-day-old one by 7×).

termwhat it measuresmathmax
clickspeople clicking through to your live demolog10, saturates ~10 00030
votesvisitors running $ vibe-check (1 per IP per day)log10, saturates ~50025
viewsraw project-page viewslog10, saturates ~50 00010
craftlines of code declared at submissionlog10, saturates ~20 000 loc10
stacknumber of distinct technologies listedlinear, caps at 85
freshhow recently the project was postedexp decay, 30-day e-fold10
activetime since last changelog entryexp decay, 14-day e-fold10
total ceiling100

The three badges

Badges are derived from the same inputs — no extra storage, no admin overhead. They surface next to the score on the detail page and are awarded automatically.

★ active
triggers: a changelog entry within the last 14 days
rewards builders who actually keep their project up to date — and gives the /manage flow somewhere to land
★ viral
triggers: vote-to-click ratio > 5% with at least 50 clicks
catches projects that punch above their traffic — high engagement-per-visitor, not just raw reach
★ rare-stack
triggers: ≥2 stack items each shared by fewer than 5 other projects
rewards experimentation. if you're shipping with tech the rest of the directory hasn't touched, that's worth surfacing

Worked example · top scorer

Here's how the math plays out on mahjong rise, currently the highest-scoring project in the directory. Numbers refresh in real time — vote on it, watch the score move.

★ #1

mahjong rise

A calm Android mahjong solitaire with a small yard that grows between boards

clicks: 0
views: 19
votes: 1
loc: 60400
stack size: 3
↗ open project
vibe-index
/ 100
35
rare-stack
$ vibe-index --explain
────────────────────────────────────────────────────────
clicks    log10           0                      0 / 30
votes     log10           1                    2.8 / 25
views     log10           19                   2.8 / 10
craft     loc · log10     60400 loc             10 / 10
stack     linear          3 tech               1.9 / 5
fresh     30d e-fold      3d old               9.1 / 10
active    14d e-fold      no updates           8.1 / 10
────────────────────────────────────────────────────────
                                         total    35 / 100

Worked example · the middle

For contrast, the directory's median project. Most cards sit somewhere around here — the top end gets pulled up by time, engagement, and active changelog use.

Claude Skills y MCP Servers en español - Skills Agentes

Directorio en español de Claude Skills, Agent Skills y MCP Servers: qué hace cada uno de verdad, qué credenciales pide y cómo instalarlo.

clicks: 1
views: 94
votes: 1
loc: 34310
stack size: 9
↗ open project
vibe-index
/ 100
27
rare-stack
$ vibe-index --explain
────────────────────────────────────────────────────────
clicks    log10           1                    2.3 / 30
votes     log10           1                    2.8 / 25
views     log10           94                   4.2 / 10
craft     loc · log10     34310 loc             10 / 10
stack     linear          9 tech                 5 / 5
fresh     30d e-fold      42d old              2.4 / 10
active    14d e-fold      no updates           0.5 / 10
────────────────────────────────────────────────────────
                                         total    27 / 100

FAQ

can I game it?
The log scale flattens hard. Going from 100 to 1 000 votes is ~7 points; 1 000 to 10 000 is another ~7. The IP-per-day cap on votes plus the 30-day freshness decay mean grinding doesn't pay. Building something people actually return to does.
why does my score change every day even if nothing happens?
The freshness and activity terms use continuous exp decay, not snapped buckets. A project posted yesterday loses a few thousandths of a point overnight; that adds up to ~3 points/month at the start, near zero by month four.
how does activity work for a project with no changelog?
If you've never posted to /manage, activity falls back to the project's createdAt — so a brand-new project still gets a high activity score for the first couple weeks. Once you post your first changelog entry, the timer resets and that becomes the baseline going forward.
why isn't the score materialized?
At our current scale it's cheap enough to compute on every page load. The breakdown panel proves the score is honest — no caching means no stale numbers. We'll revisit once the real directory crosses a few thousand projects.