Jun 2026 · Tooling

How I built a tool to detect AI slop in landing pages.

Earlier this year, I kept noticing the same patterns across client sites that had been built with AI coding tools. Purple-to-blue gradient backgrounds. Glassmorphism cards on every section. Bento grids with icon-in-rounded-square feature cards. Exact same three-tier pricing layout. Exact same hero structure: centered headline, subheadline, two pill buttons, browser mockup below the fold.

Individually, none of these are wrong. But when they appear together, in the same combination, on every site — they stop being design decisions and become default patterns. A visitor who has seen ten SaaS landing pages in the past hour will feel that the site is generic without being able to say why.

The checklist format

I wrote the first version as a personal reference — a list of patterns I wanted to check for before shipping my own work. But the problem was broader than my own output. AI-generated code is going to keep looking like this until someone names each default pattern precisely enough that developers can deliberately step away from it.

So I structured the checklist around 15 disciplines, each with its own section: layout, decorative motifs, component-level tells, color, typography, copywriting, UX, HTML, CSS, JavaScript, performance, CI/CD, Docker, IaC, monitoring, documentation, and content strategy. Each section names the pattern and explains why it is a default — not because it is bad, but because it is the statistical center of the training data.

The rule of application

The key design constraint: draft the output first, then run it against the relevant sections. If two or more items match in any single section, you have not made a decision — you have defaulted. Discard the draft and make a specific, justified choice.

This is a different approach from most linting tools, which flag things as right or wrong. The checklist does not say a glassmorphism card is wrong. It says: if you have glassmorphism cards, plus bento grids, plus particle networks, plus purple-to-blue gradients, plus three-tier pricing, you have not designed anything. You have accepted the default output of a model that was trained on the average of the internet.

Shipping it

The checklist shipped as an open-source agent skill. The most common reaction has been a reluctant laugh of recognition: people open it, see a pattern they have shipped themselves, and realise they cannot unsee it. That is the only success metric I care about. The code is on GitHub.