The state of AI-built apps.

What the free health check finds on live apps — counted, never named. The numbers update as checks come in.

1 site has been counted so far. Percentages appear here once there are 10: a share of a handful of sites is an anecdote, not a finding.

Every check run at keelnest.com/scan adds one.

Method

How the numbers are made

Each number counts sites checked with the free health check: one ordinary request for the public page and its own script bundles, the way a browser makes it, and — for a Supabase app — an anonymous request for the row count of each of up to eight tables using the key the page itself ships. The table names come from the site’s own code, and a table counts as readable only when it showed rows. Nothing is logged in to and nothing is written.

A site counts once. Checked again while its earlier result is still kept (thirty days), it keeps one place in the numbers with its newest reading. Sites that did not answer are left out, because they have nothing to count, and so are Keelnest’s own domains and the example domains people use to try the button.

No address is kept for these numbers. Each check leaves one anonymous line — the builder and host recognised, which headers were missing, what the table check found — and the result with its address is deleted after thirty days, as the privacy policy says.

These are the sites people chose to check, not a census of the web. Read them as what the check finds, and as a floor rather than a ceiling: a passive check sees only what any visitor could.

Already live?

Give your app a health check.

Data exposure, money flow and reliability basics — in a few seconds, without an account. Then keep it watched, free for your first app.

Passive checks only, on sites you own or are authorised to test.

Or watch your first app free