TrendingRepo's trend score is deterministic and inspectable. Every input, weight, and decay constant lives in this document. No secret sauce.
Inputs (24h window)
Star delta: stars gained in the last 24h, weighted 1.0×
Cross-source mentions: count of distinct discussions on Hacker News, Reddit, Bluesky, Lobsters, Dev.to, ProductHunt, Twitter — weighted 0.6× per source
Engagement composite: combined score of comments, upvotes, retweets per mention — weighted 0.3×
Momentum decay: exponential decay over the window so a star burst 1h ago counts more than one 23h ago
Category baseline: each category (devtools, AI, frontend, etc.) has its own median; raw scores are normalized against the category median to prevent "everything in AI is trending" distortion
What we exclude
Star count alone — old, popular repos would dominate
Single-source spikes that look bot-like (anomaly detection per source)
Repos archived or marked disabled
Forks of currently-trending repos (the original gets the credit)
Update cadence
The trending pipeline runs every 20 minutes (UTC :07, :27, :47). Mention pipelines run on per-source schedules between every 6h (Hackernews) and every 24h (Dev.to / Hugging Face).
Inspect the data
Every repo's detail page (/repo/vercel/next.js for example) shows the raw signal breakdown — per-source mention counts, star deltas across windows, and the live trend score. The pipeline is open-source at github.com/0motionguy/starscreener.