Survival curve
Of all apps discovered at least T days ago, what % is alive right now?
No discovery results yet — the first cron pass usually fills this within a minute.
Platform leaderboard
| Platform | Apps | Alive now | T+7 | T+30 | T+90 |
|---|
Recent funerals
Apps whose status most recently flipped from alive → dead.
Long-livers
Oldest apps that are still responding.
Methodology
Discovery
Every 30 minutes we query the public Hacker News Algolia search API for each tracked platform's domain
(lovable.app, v0.app, v0.dev, bolt.host, replit.app, replit.dev, a0.dev, databutton.com, create.xyz),
paginate through the results, normalize each URL, and insert any new app we haven't seen before.
Health checks
Every 12 hours we send a HEAD request to every tracked app URL (with a 10-second timeout and a small concurrency pool).
If the host rejects HEAD, we fall back to GET with Range: bytes=0-0. Any 2xx or 3xx response counts as alive; anything else, or a timeout / DNS failure, counts as dead.
Survival math
For each age cut-off T, we compute alive_now / discovered_at_least_T_days_ago. This is a current-snapshot approximation — not a Kaplan–Meier estimate — but it's an honest summary of the publicly observable fate of each cohort.
What we don't do
No fake data, no Math.random(), no synthetic backfill. If discovery returns zero results, the dashboard shows zero. If a host blocks our user agent, we mark it dead — that's the real observable outcome for a public agent crawler.