Documentation
Design Check v0.1 — free during preview. Sibling product to Preflight.
Overview
Design Check scans HTML/CSS/copy for the patterns that make AI-generated UI read as generic. Individual tropes matter (a gradient here, a pill button there), but composition matters more: does the layout vary width and background across sections, or is it one unvarying centered column the whole way down. A page can pass every individual-trope check and still read as templated.
REST API
POST /api/check
curl -X POST https://designcheck.allthepossibles.com/api/check \
-H "content-type: application/json" \
-d '{"url": "https://example.com"}'
Body — exactly one of:
| Field | Type | Description |
|---|---|---|
url | string | A page to fetch and check directly. |
html | string | Raw HTML/CSS to check without fetching anything. |
Response is a CheckReport: score (0-100, higher is more distinctive), verdict (generic / mixed / distinctive), and a findings array with severity, category, title, detail.
GET /api/stats
Aggregate verdict counts across every check run through Design Check.
GET /status
Live health check. Returns {"status": "operational"}.
MCP server
{
"mcpServers": {
"designcheck": { "url": "https://designcheck.allthepossibles.com/mcp" }
}
}
check_design takes the same input shape as /api/check and returns the report as JSON text content.
Findings & scoring
| Check | Status | Cost |
|---|---|---|
| Typography (generic font stacks) | Live | Free |
| Color (soft tech gradients) | Live | Free |
| Component (pill+arrow CTAs, eyebrows) | Live | Free |
| Layout (composition/asymmetry, uniform grids) | Live | Free |
| Copy (AI vocabulary, negative-parallel, hedge words, em-dash density) | Live | Free |
| Vision (screenshot-based gestalt critique, Claude-powered) | Paid tier, coming soon | — |
Score starts at 100 and loses points per finding by severity (critical −30, high −18, medium −10, low −4). Under 50 is generic, 50–79 is mixed, 80+ is distinctive.
Rate limits
20 checks/minute per caller IP during preview, tracked in D1. A 429 means you've hit it. Exists to keep the free tier standing with no billing yet — not meant to block legitimate use, so say something if it's in your way.
Known limitations
All current checks are structural: regex and string analysis over HTML/CSS/text, not a rendered screenshot. Real gestalt-level issues, whether a page actually looks composed once rendered, are only partially covered by the layout heuristics (width/background variation, uniform grids). The vision check closes that gap once it's enabled.
Structural HTML parsing here is regex-based, not a full DOM parser — v1, expanding as real false positives/negatives get reported.
Why the source isn't here
Same reasoning as Preflight: publishing the exact detection patterns makes them easier to write around on purpose. What's public is this documentation, the methodology, and a public repo for issues.
Support
Found a false positive, a false negative, or something broken: open an issue.