👃 The “AI smell” everyone recognizes
New here? Front end it’s the part of a website or app that a person sees and interacts with on screen—buttons, colors, text, layout. It’s different from the “back end,” the engine behind it (database, business rules) that no one sees directly. When this module talks about “the website the agent produces,” it means the front end.
You’ve probably seen this before: a white or very light gray background, a large centered heading, a blue button with rounded corners labeled “Get Started” or “Learn more,” generic icons, system fonts. No matter what the site is about—a cake recipe, a résumé, a clothing store—the default result from an AI agent without visual instructions tends to have the SAME look. People who work with AI have a nickname for this: "AI feel" (in the original English, "AI slop" or "AI smell") — the look that gives away at first glance that no one has worked on it.
💡 Main Concept
The generic pattern isn’t an isolated bug — it’s a set of repeated visual decisions, always the same, because they come from the same source: the average of what the model has already seen.
- •White background or `#f8fafc`, centered card with a soft shadow.
- •Blue button (almost always the same shade of blue), rounded, "Get Started".
- •System default font (Inter, Arial, or the one that comes with the framework).
📊 Why the statistical average wins
New here? One AI model (the “brain” that interprets your request and generates the result) was built using a process called training: showed it millions of real examples — in this case, millions of front-end pages written by people around the world — and it learned the patterns that appear most often in those examples. It didn't "memorize" a specific site; it learned statistically what tends to come after what.
This has a direct consequence: when you ask for something vague ("make a beautiful website"), the model has no basis for choosing—so it converges on the most likely answer, which is the statistical average everything it has ever seen. And the average across millions of frontend sites tends toward the same thing: blue (the most widely used color for CTA buttons worldwide), white (the safest and most common background), system font (the one that always works without configuring anything). It’s not model laziness—it’s probability doing exactly what it was trained to do.
Caption: above, the vague request falls toward the average of everything the model has seen and comes out generic; below, a visual reference fills in the gaps with your style instead of the average — that’s the difference modules 5.2 and 5.5 will teach you to build.
🔍 Inside
- Training: the process by which the model learned, by looking at millions of examples, what tends to go with what.
- Converge toward the average: when specific instructions are missing, the model chooses the statistically most likely answer—the “most commonly seen” one, not the “most right for you” one.
👁️ Without a reference or criteria for what to look for
There’s a second cause, just as important as the first: the agent that write a website’s code doesn’t necessarily see the result. A prompt (the text request you type to the agent) describes what you want in words—but text isn’t an image. Unless someone makes the agent take a screenshot and look at it the way a designer would, it’s working “blind”: writing technically correct HTML and CSS, but without checking whether it looks good, balanced, and has the right personality.
Put the two causes together and you understand the whole problem: (1) without a brand reference, colors, or a visual example, the model fills in the gaps with what is statistically “safe” in its training data; (2) without someone — or something — pushing for a critical look at the result, nothing corrects that first instinct. Together, the two causes explain the “AI smell” — and both have a solution, which is exactly the rest of this track.
✓ What addresses cause 1 (lack of reference)
- ✓Provide brand colors, fonts, and concrete examples in the request
- ✓One design skill (fixed style rules, saved and reused)—the topic of module 5.2
- ✓A brand folder with a ready-to-use visual identity — module 5.6
✗ What DOESN'T solve any of this
- ✗Ask again using the same vague wording and expect something different
- ✗Ask for something "more creative" or "prettier" without giving a concrete reference
- ✗Switching AI models, thinking another “brain” will solve everything on its own
💡 Practical Tip
Think of it this way: you wouldn’t judge a room’s decor with your eyes closed. Without someone making it “look,” the agent is decorating with its eyes closed. Module 5.3 teaches you exactly how to open those eyes—the loop of taking a screenshot, looking, and correcting.
🖼️ Before and after, side by side
To make this concrete, look at the same task — "create a landing page for a neighborhood bakery" — requested in two different ways. The text below describes what each request would produce, point by point, exactly as a designer would describe two wireframes (simplified layout sketches, without final details) placed side by side.
Caption: same task, two results. On the left, without a reference color, font, or photo, the model falls back to the average (blue, rounded, generic icon). On the right, with the bakery’s terracotta and cream palette and a real product photo included in the request, the result starts with its own identity — no need for “more creativity,” just more information.
📋 What changed, point by point
- Color: default CTA blue → terracotta and cream, the bakery’s real colors.
- Button: Generic, rounded-off "Get Started" → "Reserve your bread," using the business's verb.
- Image: cake emoji icon → real product photo (reference provided in the request).
- Typography: system default font → a choice that fits the brand’s "handcrafted" tone.
🧪 Ask for it yourself and watch the pattern emerge
The best way to internalize this module is to experience the phenomenon firsthand once, before learning how to avoid it. Objective: confirm, in your own Claude Code, that a vague front-end request really follows the generic pattern described above — with no style, color, or brand instructions.
Create an HTML/CSS landing page for
with a contact form and a testimonials section. Don't give me any colors, fonts, or
style reference — choose the look yourself.
Typical result: white/light gray background, centered bold title, rounded blue button labeled something like “Get Started” or “Contact us,” testimonial cards that all look identical, system font. If your result matches this description—as it does in the vast majority of cases—you’ve just reproduced the phenomenon covered in this module.
✅ How to verify
- Open the generated HTML file in a browser (double-click it).
- Check: is the button's blue close to
#2563ebor#3b82f6? Is the background white or very light gray? Is the entire layout centered in a single column? - If the answer is yes to all three, you’ve confirmed the pattern—and you already have the “before” that modules 5.2 and 5.3 will teach you to turn into an “after.”
⚠️ Attention
Don’t ask the agent to “improve the design” now without any reference—it’ll probably just replace one generic design with another. The real fix requires the tools from the next two modules, not more insistence.
🗺️ The solution comes in two parts
You’ve just seen the two causes of the problem: no visual reference and no automatic way to “look” at the result. The next two modules tackle exactly these causes, in that order.
5.2 — Global design skill
Addresses cause 1: you record a set of style rules (palette, typography, principles) once, and the agent consults them every time—instead of guessing, it checks the reference.
5.3 — The screenshot loop
Addresses cause 2: the agent learns to take a screenshot of its own page, “look” at it, and compare it with what’s expected, making corrections before handing it over to you—the missing aesthetic judgment.
From 5.4 onward
Limits of the loop, a real brand reference, a brand folder, and the final build: a landing page published from start to finish.
🎯 Main Concept
- •The right tool and the right process bring the result close to professional quality—but not without final human judgment.
- •The skill (5.2) handles the input; the screenshot loop (5.3) handles the output. Together, they complete the cycle.
Quick check (optional): Why does a vague front-end request tend to produce the same look every time?