# ShipReady index - 30 developer products scored

Generated 2026-11-10 by `scripts/batch.mjs` from public pages only. Scores are
opinionated, public-data hypotheses - not verdicts, and not traffic data.

**Median: 44/100** - 1 strong, 2 decent, 6 leaky, 21 failing.
Excluded as JS-rendered/unreadable: 5 (siloslabs.com, bird.jacomakes.com, vesputio.app, todaypad.vercel.app, jaxammon.com).

| Product | Score | Grade | Top fix |
|---|---|---|---|
| uplumo.com | 95 | strong | No UCP agent-commerce profile |
| phonescovered.com | 80 | decent | No separate pricing page (price only on the landing page) |
| fileoctopus.com | 79 | decent | No common signup path found |
| getmitra.com | 68 | leaky | No free trial / no-card offer in the copy |
| dropkind.app | 60 | leaky | Meta description is missing or 172 chars (aim 50-170) |
| veloworkspaces.com | 59 | leaky | No separate pricing page (price only on the landing page) |
| whizra.com | 58 | leaky | No free trial / no-card offer in the copy |
| teamonly.dev | 58 | leaky | No common signup path found |
| jobeazee.com | 57 | leaky | No price visible on the landing page |
| hirundo.io | 54 | failing | No common signup path found |
| flickfinds.ca | 52 | failing | Meta description is missing or 0 chars (aim 50-170) |
| locatic.dev | 51 | failing | Fewer than 2 clear CTAs |
| pickthewheel.com | 47 | failing | Title is missing or 89 chars (aim 10-70) |
| riffipedia.com | 45 | failing | Only 0 content posts (aim 5+) |
| aircad.com | 45 | failing | Only 1 content posts (aim 5+) |
| apptraction.dev | 44 | failing | No separate pricing page (price only on the landing page) |
| 4percentcalc.com | 42 | failing | Title is missing or 85 chars (aim 10-70) |
| search2o.com | 41 | failing | Only 0 content posts (aim 5+) |
| trilog.app | 36 | failing | No separate pricing page (price only on the landing page) |
| contentrank.app | 35 | failing | Only 0 content posts (aim 5+) |
| vgoapp.com | 35 | failing | Only 0 content posts (aim 5+) |
| getpolicypeek.com | 34 | failing | Meta description is missing or 26 chars (aim 50-170) |
| leftagraph.com | 34 | failing | Meta description is missing or 20 chars (aim 50-170) |
| practicaldata.dev | 33 | failing | No separate pricing page (price only on the landing page) |
| salesutils.app | 33 | failing | No separate pricing page (price only on the landing page) |
| basalfit.com | 30 | failing | Only 0 content posts (aim 5+) |
| getghostrunner.com | 30 | failing | No social proof language (testimonials/customers/reviews) |
| mismo.dev | 29 | failing | No common signup path found |
| eldervault.app | 28 | failing | Meta description is missing or 13 chars (aim 50-170) |
| amagi.dev | 8 | failing | Title is missing or 5 chars (aim 10-70) |

## Most common gaps

- Only 0 content posts (aim 5+) (19 of 30)
- No common signup path found (18 of 30)
- No free trial / no-card offer in the copy (17 of 30)
- No analytics visible (may be JS-injected - verify in a browser) (16 of 30)
- No price visible on the landing page (14 of 30)
- No social proof language (testimonials/customers/reviews) (12 of 30)
- No separate pricing page (price only on the landing page) (11 of 30)
- Fewer than 2 clear CTAs (10 of 30)
- No pricing page and no price on the landing page (9 of 30)
- No UCP agent-commerce profile (7 of 30)
- No Organization schema (7 of 30)
- Sitemap has 0 URLs (aim 10+) (6 of 30)

## Method and limits

- Inputs: landing HTML, robots.txt, sitemap(s), pricing/signup paths, UCP profile. No traffic, revenue or analytics data.
- Weights: clarity 20, offer/pricing 20, conversion path 20, trust 10, content/SEO 15, instrumentation 10, agent 5.
- JS-rendered pages are excluded rather than scored (5 in this batch). Analytics injected by JS may be missed.
- The sample is Hacker News launch products, not the market: selection bias is real.

## Publishing policy

Named scores are shown only for products we contacted for consent or that opt in; otherwise use aggregate numbers only.