WorkBefore/after case study
lovable.dev · A on arrival
Snapshot (2026-07-25): an AI-built site that scored A on the contract without knowing it existed.
lovable.dev was scored by the same /api/score engine that grades every other site. On 2026-07-25 the result was an A (19 pass, 0 fail, 3 warn, 4 skip) without the site ever citing the Designesy contract. Sites change and the engine evolves; score it live on /score to see where it stands today. This case study documents the snapshot: a generator that shipped good defaults and landed in contract territory by accident.
Summary
Outcome
lovable.dev scores A on the Designesy contract: 19 of 26 checks pass, 0 fail, 3 warn, 4 skip. The 3 warnings are token-strictness gaps (will-change scope, rem confirmation, tabular-nums). The 4 skips are browser-only checks that the current deployment cannot run. The headline is the zero in the failure column: an AI app platform shipped a site that breaks no contract rules the static engine can see.
- Fail
- 0 of 26
- Projected
- A unscored, no warnings
- Scored
- 2026-07-25
Score breakdown
- Snapshot A · 93.219 pass3 warn0 fail4 skip
- Projected A · unscored, no warnings22 pass0 warn0 fail4 skip
Grade A, 93.2, before only. Resolving the 3 WARNs (v12, v16, v19) would leave lovable.dev at A with no warnings, from token tightening alone. There is no grade above A.
The 3 warnings
will-change restricted to transform and opacity only
WARN
A non-transform/opacity will-change declaration exists somewhere in the CSS. One-line fix: scope it to transform/opacity only.
Rem-based scale: all text sizes in rem, root at 16px
WARN
Most text is in rem but the check wants confirmation the root is locked at 16px. A single html { font-size: 16px; } would resolve it.
tabular-nums: 8 instances across the live CSS
WARN
Numeric contexts (stats, counts, prices) could use font-variant-numeric: tabular-nums to prevent column jitter. 0 instances found today.
The 4 skips (honest)
Each skip comes from the scoring deployment’s limits. lovable.dev is not penalized for an unrun check: the engine returns SKIP with a diagnostic string.
Responsive overflow at 4 viewports
SKIP
Needs a browser at 375/720/860/1080. ENABLE_BROWSER_AUDIT=1 on the deployment.
Sound toggle aria-pressed flip
SKIP
Needs a browser to click the toggle and observe state. lovable.dev may not have a sound toggle, which would resolve as PASS or WARN.
Core Web Vitals (LCP/INP/CLS)
SKIP
Needs PageSpeed Insights API or a Chromium CDP trace. PSI_API_KEY on the deployment.
Primary button WCAG AA contrast
SKIP
Browser check: the static path cannot measure computed contrast against an accent fill.