Case study — 02
VibeScore
Objective scores for AI-built apps.
Sole Developer & Designervibescore.dev
A directory and leaderboard ranking AI-built apps on build data parsed straight from CLI transcripts — not self-reported, and re-ranked on every read.
cd your-project# macOSnpx --yes vibescore-cli | pbcopy# Windows PowerShellnpx --yes vibescore-cli | Set-Clipboard# Linuxnpx --yes vibescore-cli | xclip -selection clipboard✓ score copied — paste it to submit
- Problem
- “Built with AI” is a claim almost nobody backs with numbers — how long it took, how many tokens it burned, what that would have cost at API rates. The signal was sitting unused in everyone's CLI transcripts, and ranking it fairly meant surviving scrutiny: no self-reported inputs, no weighting I couldn't defend, nothing that couldn't be recomputed on demand.
- What I built
- A 1–100 composite weighs time-to-ship, token usage and API-equivalent cost against calibrated thresholds, run entirely in SQL — window functions rank each build against its cohort, CTEs assemble the components — so the leaderboard is always consistent with what it claims to measure.
- Key decision
- Scoring lives in the query, not the app. Window functions and CTEs through Drizzle mean rankings recompute on read, so a new submission reorders the board without a batch job.
- Also true
- A multi-source scraper with cross-run deduplication feeds the same pipeline, so an app discovered twice never double-counts.
Built with
- Next.js 16
- TypeScript
- Drizzle ORM
- PostgreSQL
- Stripe
- Better-Auth
- Vercel AI SDK