← back to gallery

Lab Cadence

Live shipping-velocity tracker for frontier AI labs.

aileaderboardfrontier-labsopenaianthropicdeepseekqwenmistralshipping-velocityhuggingfacearxivhn
Open product ↗

lab-cadence

Live shipping-velocity tracker for frontier AI labs.

A self-hosted public dashboard that scores how fast each frontier AI lab
(OpenAI, Anthropic, Google DeepMind, xAI, Meta AI, DeepSeek, Alibaba/Qwen,
Mistral, Cohere, Microsoft Research) is actually shipping — papers, models,
code, blog posts, and HN headlines — and ranks them on a live "Mojo Score"
that decays with silence and spikes with releases.

Why

The frontier-lab horse race is the story of 2026. Anthropic's ARR just
eclipsed OpenAI's; OpenAI acquired Astral; DeepSeek-V4-Pro shipped to
946k+ downloads in two weeks. But there is no public dashboard that
answers the question every founder, journalist, and analyst is asking
weekly: Which lab is hot this month, which is silent, and how does that
compare to last month?

lab-cadence answers that.

Quick start

npm install
npm start
# → open http://localhost:4736/lab-cadence/

It runs with zero environment variables. The cron schedule starts
immediately and a full first pass runs ~1.5s after boot, so the
dashboard typically has live data within 2 minutes.

Real public data sources (no mocks, no seeds)

| Source | What we pull | Refresh |
|---|---|---|
| Hugging Face Hub | model uploads per lab org (last 50) | every 60 min |
| GitHub | org events: releases, tags, push bursts | every 30 min |
| HN Algolia | stories ≥ 20 points mentioning a lab alias | every 60 min |
| Lab blog RSS | five labs publish a clean RSS/Atom feed | every 4 h |
| arXiv | papers in the title/abstract per lab name | every 6 h |

Every metric on the dashboard is recomputed live from the events table.
The only static data in this repo is registry.js, which lists lab
identity facts (slug, HF org, GitHub org, RSS URL, name aliases) —
no counts, no scores, no fake numbers.

Mojo score

score = Σ_event  weight(event.type) × exp(−days_ago / 14)

Half-life is 14 days. An event from yesterday counts ~95%, an event from
14 days ago counts 50%, an event from 90 days ago counts ~1%. The score is
recomputed on every API call and never persisted.

silence_days = days since the most recent event of any type, capped at 180.
velocity_delta_7d = mojo right now minus mojo as it would have been 7
days ago. Renders as ▲ / ▼ arrows in the leaderboard.

API

All routes mounted under /lab-cadence. No auth. All endpoints public.

GET  /health
GET  /api/stats
GET  /api/labs
GET  /api/labs/:slug
GET  /api/leaderboard?sort=mojo|velocity|silence
GET  /api/feed?limit=30&before=ISO&type=…&lab=…
GET  /api/timeseries?days=30
POST /api/refresh                                  (rate-limited 1/60s)

Configuration

All env vars are optional. The product boots fully with none of them set.

| Var | Default | Purpose |
|---|---|---|
| PORT | 4736 | listening port |
| BASE_PATH | /lab-cadence | path prefix |
| LAB_CADENCE_DB | ./data/lab-cadence.db | SQLite path |
| GITHUB_TOKEN | — | raises GitHub anon limit 60/h → 5000/h |

Stack

Node.js 20 + Express 4 + better-sqlite3 (WAL) + node-cron + helmet +
compression. Vanilla JS frontend, single-file dashboard, dark theme,
Chart.js loaded from cdn.jsdelivr.net (the only third-party JS).

License

Internal RNDLAB tooling. Not currently distributed under an open license.