Weird Science
All work

Designlint

A UX linter that checks a web app against its declared behavior.

Year
2026
Type
Dev tools
Platform
Terminal
Status
In progress
Built with
TypeScript, Playwright, Zod, Cytoscape, React

You declare an expected graph of states and transitions in a contract. Designlint drives a real browser, records the observed graph and reports the differences in an interactive report.

Two commands. designlint inspect explores a target freely, within depth and action limits, and lists candidate findings without needing a contract. designlint check verifies each reachable state and transition against a contract.

Playwright and Chromium do the exploring. The rule engine is deterministic and lives in its own package. Schemas use Zod, and the report is React with Cytoscape.

The repo carries its own proof: a correct and a defective demo app, with end-to-end tests that check the defective one's known bugs are detected and the correct one comes out clean.