designesy
Score a site

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.

A · 93.2Score · A 93.2 (before only)Artifact · lovable.devDate · 2026-07-25

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.

A · 93.2
Fail
0 of 26
Projected
A unscored, no warnings
Scored
2026-07-25

Score breakdown

Score enginelovable.dev26 checks · 2026-07-25
  1. Snapshot A · 93.219 pass3 warn0 fail4 skip
  2. Projected A · unscored, no warnings22 pass0 warn0 fail4 skip
Verdict

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

v12

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.

v16

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.

v19

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.

v02

Responsive overflow at 4 viewports

SKIP

Needs a browser at 375/720/860/1080. ENABLE_BROWSER_AUDIT=1 on the deployment.

v04

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.

v21

Core Web Vitals (LCP/INP/CLS)

SKIP

Needs PageSpeed Insights API or a Chromium CDP trace. PSI_API_KEY on the deployment.

v22

Primary button WCAG AA contrast

SKIP

Browser check: the static path cannot measure computed contrast against an accent fill.

Lessons

Sources

Case study · lovable.dev · A on arrival. Real score from /api/score, captured 2026-07-25. The “after” is a projection: the 3 WARNs would need to be fixed on lovable.dev itself, which belongs to another publisher.