How it works
Launch Index treats new software launches like a stock market. Each launched product is a stock, the votes it collects are its traction, its category is its sector, and LNCH is the whole market. Everything below is computed from real launch data — nothing is estimated or filled in. When there isn’t enough data, you’ll see “—”.
Where the data comes from
Two sources: Product Hunt (every launch, not just featured ones — about 800–1,300 a day) and Show HN on Hacker News (about 100–190 a day). For each launch we store its name, tagline, link, launch time, votes and comments.
A collection job runs about once a day (usually between 14:00 and 18:00 UTC). Each run adds new launches and re-reads the votes and comments of recent ones, saving a reading (a “snapshot”) every time. Those daily readings are what the traction charts and the “traction gained” numbers are built from. Pages refresh from the database every 10 minutes, but the numbers only move when a new run lands.
Recent launches only: votes are re-read for 48h on Product Hunt and 7 days on Show HN. With one run a day, a Product Hunt launch gets one or two readings, the last one about 31–36 hours after launch. After that its traction is frozen at the last reading. Data starts Oct 3 (Show HN) and Oct 9 (Product Hunt); readings start Oct 10.
Stocks (products)
- Stock
One launched product — a Product Hunt launch or a Show HN post. Its page shows its traction history, rank and peers.
- Traction
The product’s current votes (Product Hunt) or points (Show HN) — how many early adopters upvoted it. Nothing here costs money; traction measures attention, not money spent. Votes and points are different units: a typical Product Hunt launch collects far more on its first day than a Show HN post, so comparing PH traction to HN traction is apples to oranges. Rankings are best read within one source. When both are mixed (“All”), every screener ranks each source on its own and alternates them (PH #1, HN #1, PH #2, HN #2, …), so Product Hunt’s bigger numbers and ~7× more launches don’t crowd out Show HN; every row carries a PH / HN badge.
- Traction gained (Gained)
Votes (or points) gained between the two most recent daily runs (roughly one day).
traction gained = traction at latest run − traction at previous runIf the product launched after the previous run it starts from 0 and is marked IPO. If it wasn’t re-read in the latest run (tracking ended) it shows frozen and no gain. On a product’s own page, the gain is between its own last two readings, with the dates shown.
- Gain %
gain % = traction gained ÷ previous tractionOnly shown when the previous traction was 5 or more. Below that, tiny moves look enormous (2 → 6 votes would be +200%), so you’ll see “—”.
- Buzz
Comments gained over the same interval — a measure of how much discussion is happening. Total comments are shown too.
- Listed (IPO date)
When the product launched, shown as time ago from now (hover for the exact time). Product Hunt launches all go live at 07:01 UTC; Show HN posts arrive all day.
- Stock screeners (home page)
- Trending: most traction gained in the latest interval, among products that already had a reading at the previous run. IPOs (listed since then) are left out: their “gain” is just first-day votes, and on Oct 16 they were 15 of the top 20. They’re in New Listings.
- Top Gainers: biggest gain %, previous traction 5+.
- Most Active: most buzz (comments gained) in the latest interval.
- New Listings: launched on the latest complete UTC day or listed since the previous run (IPOs), ranked by traction.
- Top Rated 7D: highest traction among launches from the last 7 days (much of it frozen).
- Breakouts: crossed the 10-vote traction line during the latest interval (under 10 at the previous reading, 10+ now). IPOs have no previous reading, so they’re left out.
With “All” sources, each screener ranks Product Hunt and Show HN separately and alternates them. Giveaway / gift-card spam is excluded. Each screener loads its top 200 and shows 50 at a time.
What Traction is — and isn’t
What it is: early-adopter votes (Product Hunt) or points (Show HN), plus the discussion (comments) a launch gets around launch day. It’s a proxy for how much interest a launch sparked among the people who browse those sites.
What it isn’t (yet): it does not measure downloads, installs, reviews, ratings, paying customers or ongoing usage. A launch with high traction got attention at launch; it may or may not be widely used later, and a product that grows quietly after launch won’t show it here.
Signals we’d like to add later (none of these are collected today): GitHub stars for open-source launches, browser-extension user counts, app-store ratings counts, and Product Hunt reviews.
Sectors and the market
- Sector
A category of launches — 27 in all, e.g. AI Agents, AI Tools & LLM Apps, Developer Tools, Open Source & Libraries, Data & Infrastructure. Each has a ticker (like AGNT for AI Agents). Use the sector chips on the home page to filter stocks, or the Sectors page to compare sectors.
Sectors are assigned automatically by keyword rules on the name and tagline, and are right roughly 70–75% of the time. Launches that match nothing land in “Other”.
- LNCH (the Launch Index)
Every launch across every sector, treated as one market. Its headline number is how many launches there were in the selected period (see below), with the change from the comparison window. The ticker strip at the top shows the latest complete day.
- Launches (supply)
For sectors, the headline number is how many products launched. Sector numbers use whole UTC days only. Launch counts swing about 2× by weekday (Product Hunt: ~600 on a Sunday, ~1,300 on a Tuesday), so periods are chosen to avoid comparing different weekdays:
- 7D compares the latest 7 complete days with the 7 before — always the same mix of weekdays. It’s the default once both its comparisons have enough history; until then the default is 3D.
- 1D / 3D compare with the same weekdays one week earlier (e.g. a Friday with the previous Friday) when the data covers it. When it doesn’t yet, they compare with the days just before and show a “weekday effect likely” warning, because much of that change is just the day of the week.
- Settled
A launch is settled once it’s more than 48 hours old — by then most of its votes are in. Demand numbers (hit rate) only count settled launches, so they lag about two days behind launch counts.
- Hit rate / traction
A launch “hits” when it reaches 10+ votes (Product Hunt) or 10+ points (Show HN). Only about 6% of launches ever do; most get 1–2.
hit rate = settled launches with 10+ votes ÷ settled launchesThe current hit rate is shown as soon as there are settled days (for a period that doesn’t have enough history yet, over the settled days available, with their dates).
- When a hit-rate change counts (▲ / ▼)
Most sectors have a few dozen to a few hundred settled launches per window, and hit rates are small (~6%), so many changes are just chance. A hit-rate change is shown — and used in the trending score — only when both of these hold:
- each window has 100+ settled launches, and
- a two-proportion z-test gives |z| ≥ 2 (roughly 95% confidence it isn’t chance).
z = (p₂ − p₁) ÷ √( p·(1 − p)·(1/n₁ + 1/n₂) ), p = (h₁ + h₂) ÷ (n₁ + n₂)h = hits, n = settled launches, p₁ / p₂ = earlier / current hit rate. Otherwise you’ll see “—”; hover it for “not significant at current sample size” and the raw numbers. Example (1D view, Oct 16): Developer Tools going from 3 of 77 to 12 of 100 looked like +8.1pp, but it fails the first rule (77 < 100), so it shows “—”.
- Trending score (sectors)
Momentum in both launches and hits, compared with the previous equal window:
trend = 100 × ( ½·ln((S + 5) ÷ (S₀ + 5)) + ½·ln((H + 5) ÷ (H₀ + 5)) )S / S₀ = launches now / before; H / H₀ = hits now / before (settled windows). The +5 cushions keep a tiny sector going from 3 to 6 launches from looking like huge news. A score of about +10 means roughly +10% combined growth.
The attention half (H / H₀) only counts when the sector’s hit-rate change is significant (rule above); otherwise it is 0 and the score reflects launch counts only. “Other” (launches that matched no sector) isn’t ranked in Trending, Gainers or Losers.
- Sector gainers / losers
Biggest % change in launches (sectors with fewer than 10 launches in the earlier window are left out), or biggest change in hit rate.
- Volatility
How jumpy a sector’s daily launch count is:
volatility = standard deviation of day-over-day % changes in launches, over all complete daysNeeds at least 5 daily changes; only sectors averaging 5+ launches a day are ranked. It includes normal weekday/weekend swings.
Why you see “—”
- Gain % when the previous traction was under 5.
- Traction gained / buzz when a product wasn’t read in the previous run, so there’s no honest starting point.
- Comparisons that need more days of history than we have collected yet (the message says when they’ll appear).
- Hit-rate changes that aren’t statistically significant (fewer than 100 settled launches in a window, or |z| < 2) — “not significant at current sample size”.
Nothing is ever estimated to fill a gap.
Known limitations
- Sectors come from keyword rules and are roughly 70–75% accurate; some products are in the wrong sector.
- Traction stops updating after ~31–36h on Product Hunt and after 7 days on Show HN, so older traction is frozen at its last reading, and a product that keeps growing later won’t show it.
- A daily run occasionally misses some launches (on Oct 16, ~60 of the previous day’s Product Hunt launches weren’t re-read). Those show as frozen early, at their last reading.
- Only one reading a day, so charts have few points and “traction gained” covers roughly a day, not a precise 24 hours.
- Launch counts follow a weekly rhythm (fewer on weekends). Comparisons use the same weekdays where the history allows, and say “weekday effect likely” where it doesn’t; volatility still includes it.
- Product Hunt votes and Show HN points are different things and aren’t comparable.
- The history is short (days, not years), so trends are early signals, not conclusions.