How scoring works

This page describes the exact scoring rules used in scripts/score.mjs.

Score (0-10)

score = 0.30 utility + 0.20 maturity + 0.20 maintenance + 0.15 docs + 0.15 uniqueness

How each score component is computed

Utility
Source-specific: GitHub uses stars; npm uses quality/popularity/search score; crates.io uses recent downloads/downloads. Each source is normalized to a 0-10 utility value.
Maturity
Derived by source: GitHub uses stars + age, npm uses popularity + age, and crates.io uses downloads + age. Items map to stable, beta, or experimental.
Maintenance
Based on recency by source: GitHub uses days since last push, npm/crates.io use package/crate updated date. active (<=120 days), medium (<=365 days), otherwise low.
Docs
8 when a summary is present, otherwise 6.
Uniqueness
Derived from source-specific metadata richness (for example topics, keywords, or categories).

The weighted score formula is fixed, but component calculations are source-specific and continue to evolve.

Confidence (0-1)

confidence = 0.35 data quality + 0.25 source reliability + 0.20 signal coverage + 0.20 agreement

Current confidence inputs

Data quality
Higher when license and metadata are present.
Source reliability
GitHub, npm, and crates.io are scored as high-reliability API sources; RSS/HN are lower.
Signal coverage
Higher when source-specific signals are present (for example stars, npm score signals, or crate downloads).
Agreement
Current baseline consistency factor used by the scoring pipeline.

Automation and Review

Automation currently performs ingestion, normalization, deduplication, categorization, and scoring. Policy-level human moderation for low-confidence and legal-risk items is defined in project requirements and is being implemented in later phases.

Selection and Source Mix

The homepage renders a 60-item site catalog selected from the processed catalog. Selection uses configurable per-source minimums first, then fills remaining slots by ranking.

Current minimums are: GitHub 24, npm 12, crates.io 12, RSS 4, Hacker News 2. Within and after that selection, items are ordered by final score (with confidence as tie-breaker), then user sort/filter controls are applied in the browser.