What this does: a site publishes
streetlight.json at a standard path — its public traction vitals as plain JSON. Any agent reads it with one fetch: no login, no JavaScript, no cookies, no sampling, zero PII (aggregates only). The file is the API. This page renders any streetlight.json — paste one below, load one by URL, or view CWI's own.VIEW A STREETLIGHT
VITALS DASHBOARD
Loading CWI's reference streetlight.json…
PUBLISH YOUR OWN — THE STANDARD PATH
- Put your
streetlight.jsonat https://your-site/streetlight.json (root of the property). That single URL is the whole API contract. - Author it against the published schema: streetlight-schema.json (
cwi-streetlight/v1). - Counts are publisher-attested. If you have not attested a metric yet, set it to
nulland"attested": false— an honest file beats a fabricated one, and the dashboard renders nulls as "not yet attested." - Aggregates only. Never put anything in the file that could identify a person — no IPs, no cookies, no device IDs, no user agents.
WHY IT BEATS GOOGLE ANALYTICS 4
GOOGLE ANALYTICS 4
- Login + property access required
- Consent banners gate the data
- Sampled counts on large properties
- Private dashboards — agents can't read them
- Privacy burden lives with the publisher
THE STREETLIGHT
- One unauthenticated fetch, no login
- No consent banners — public aggregates by design
- Exact publisher-attested counts, never sampled
- The file IS the API — any agent reads it
- Privacy-positive by design: aggregates only, zero PII
Free forever. No tier, no token, no tracking script on your pages.