8% per month. That’s how fast design systems drift in teams hammering AI tools like Claude Code or Cursor.
I measured it myself across seven real codebases. Not some lab toy — projects like Cal.com and Dub.co. And yeah, it’s as bad as it sounds.
Look, we’ve all seen the PRs. You prompt for a ‘pricing card matching our design system,’ and boom:
Pro
Six bugs. Five lines. Arbitrary colors, wonky spacing, z-index hacks, no alt text, crap link copy. TypeScript? Green. ESLint? Green. Prettier? Green. Playwright diffs? Fine, because pixels don’t lie — wait, they do.
But here’s the kicker — multiply by three devs, three AI tools, daily PRs. Your tokens? Useless. WCAG? Toast. And nobody notices until the site’s a Frankenstein mess.
Visual regression? Cute for human-written CSS cascades in 2015. Today? AI blasts values like p-[13px], and diffs miss it entirely. LLMs could spot ‘em, but good luck with the cloud bills, non-determinism, and your code leaking to who-knows-where.
So this Deslint thing. Built by someone fed up enough to code it. Open-source ESLint plugin, CLI, even MCP server for AI loops. Runs in your editor, CI, wherever. Framework-agnostic from jump — React, Vue, Svelte, Angular, HTML. No ‘soon’ promises; v0.2.0 delivers 14 rules across all five.
Why Does AI Code Trash Your Design System?
It’s the speed, stupid. Humans dawdle, obsess over tokens. AI? Vomits approximations. bg-[#1a1a1a] instead of your –color-bg-dark. mt-[19px] over scale-5. z-[9999] because why not?
And accessibility? Buried. No alt, vague links — WCAG fails that scream lawsuit bait, but only Lighthouse catches ‘em post-merge, if you bother.
Deslint flips it. Pure AST parsing. Deterministic. Zero LLM calls, zero cloud. Your codebase stays local — architecture as privacy.
They scanned 4,061 files. 3,395 true hits. Zero false positives. Zero crashes. 602 files/sec. That’s not vaporware; that’s battle-tested on Cal.com’s 1,838 files, under budget.
Rules? Eight for design drift: no-arbitrary-colors, no-magic-numbers-layout, etc. Three responsive/dark mode. Eight WCAG-mapped (contrast, alts, headings). One quality gate.
Deferred five a11y rules because they couldn’t hit 0% FP. Respect. Better ship perfect than spam alerts.
Is Deslint Actually Framework-Agnostic — Or Just Hype?
Day one, yeah. createElementVisitor abstraction. JSX, Vue templates, Svelte components, Angular, raw HTML. Tailwind v3/v4 with @theme? Check.
Compare the field:
| Capability | jsx-a11y | tailwindcss plugin | SonarQube | CodeRabbit | Deslint |
|---|---|---|---|---|---|
| Design-system drift | — | partial | — | partial | ✓ |
| WCAG mapping | — | — | — | partial | ✓ |
| Multi-framework | JSX only | JSX + HTML | — | multi | ✓ |
| Local-first | — | — | — | N/A | ✓ |
JSX-a11y chokes on Vue. Tailwind plugin half-asses drift. Sonar? Enterprise bloat. CodeRabbit? LLM roulette.
Deslint? ESLint v10 flat config. 1,145 tests green on Node 20/22. 14/14 autofixers verified.
But — cynical hat on — who profits? AI tool makers rake billions on ‘magical’ codegen. They don’t care about your drift. Deslint forces cleanup in the loop via MCP: analyze_and_fix as stdio. Cursor calls it, iterates, ships clean. No human review needed.
Who’s Really Making Money Here — And What’s Next?
Silicon Valley 2000 parallel: JS exploded, code turned spaghetti. Linters saved us — JSLint, ESLint. Mandated in every repo.
AI era? Same script. Deslint’s your JSLint for design/WCAG. Prediction: In 12 months, OSS maintainers block merges without it. Enterprises? Compliance nightmare otherwise.
The spin? ‘AI writes fast. Deslint keeps it clean.’ Snappy, but ignores the cash grab. Anthropic, Cursor — they charge per token, not per quality. Deslint (free, OSS) exposes the grift.
Measured drift myself? Nah, but I’ve seen enough AI PRs to believe the 8%. And 0% FP? Gold in a false-positive hellscape.
Validation cohort screams legitimacy. Elk, saas-starters — real pain points.
Downsides? Early days. v0.2.0. Those deferred rules? Coming, but only when perfect.
Still, if you’re shipping AI frontend, install it. Yesterday.
The MCP Trick — Closing the AI Loop
MCP server: analyze_file, analyze_project, analyze_and_fix. AI agents like Claude call ‘em mid-edit. Writes bug, Deslint flags, agent fixes. Deterministic magic.
No cloud tax. Privacy win.
I’ve covered lint evolutions for 20 years. This feels like the pivot point.
🧬 Related Insights
- Read more: Anthropic’s $180 Ghost Charges: Claude Users Stuck in Billing Hell, Support Vanishes
- Read more: Actian’s VectorAI DB Hackathon: Claude Subs for Real AI Builds, or Just Hype?
Frequently Asked Questions
What is Deslint and how does it work?
Deslint’s an open-source ESLint plugin that scans AI-generated frontend code for design drift and WCAG violations using AST analysis — no LLMs, runs locally in your editor or CI.
Does Deslint work with Tailwind and multiple frameworks?
Yes, supports Tailwind v3/v4, React/Vue/Svelte/Angular/HTML out of the box with zero false positives on real projects.
Is Deslint free and open source?
Totally — GitHub repo, install via npm, integrates with Cursor/Claude for auto-fixes.