standard.site validator siteseer.xyz
Something went wrong. Try again.
TypeScript 100%
CSS <1%
<1%
README.md
is it standard.site? #
Live at isitstandard.site.
A standard.site validator. Paste a webpage URL, see its site.standard.* records and whether the chain from page -> PDS -> .well-known verifies. Built with Hono on Cloudflare Workers.
Checks #
| Check | What it verifies |
|---|---|
| document link tag present | page declares <link rel="site.standard.document">; N/A on publication-root URLs |
| document AT-URI is well-formed | link href parses as at://{did}/{collection}/{rkey} |
| document AT-URI collection | collection segment is site.standard.document |
| document record key is valid TID | rkey is a real ATProto TID |
| resolve document PDS | document's DID resolves to a PDS via plc.directory or did:web .well-known/did.json |
| publication AT-URI is well-formed | same shape check; source can be document.value.site, a page <link> tag, or .well-known discovery |
| publication AT-URI collection | collection segment is site.standard.publication |
| publication record key is valid TID | rkey is a real ATProto TID |
| resolve publication PDS | publication's DID resolves to a PDS |
| document and publication share DID | both records live on the same identity |
| well-known round-trip | /.well-known/site.standard.publication[/path] body equals the resolved publication AT-URI (path appended for subpath publications) |
| canonical URL match | publication.url + document.path equals the inspected URL (trailing slashes normalized) |
| publication required fields | url and name are present per the lexicon |
| document required fields | site, title, publishedAt are present per the lexicon |
TODO #
- flag any unknown/wrong standard.site lexicons.
- Caching. Can use KV with expiration perhaps, and specific cache skipping.
- Cloudflare turnstile?
Develop #
bun install
bun run dev # vite + cloudflare plugin
bun run check # biome + tsc
bun run fix # biome auto-fixes
bun run deploy # vite build + wrangler deploy
AI usage disclaimer #
This project was made using Claude Code (plus some elbow grease, but it's surprising how little).