<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Design on ICE-ICE-BEAR-BLOG</title><link>https://ice-ice-bear.github.io/tags/design/</link><description>Recent content in Design on ICE-ICE-BEAR-BLOG</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Wed, 15 Apr 2026 00:00:00 +0900</lastBuildDate><atom:link href="https://ice-ice-bear.github.io/tags/design/index.xml" rel="self" type="application/rss+xml"/><item><title>Three Design Principles That Strip the AI Smell Off a Vibe-Coded Landing Page</title><link>https://ice-ice-bear.github.io/posts/2026-04-15-vibe-coding-design/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0900</pubDate><guid>https://ice-ice-bear.github.io/posts/2026-04-15-vibe-coding-design/</guid><description>&lt;img src="https://ice-ice-bear.github.io/" alt="Featured image of post Three Design Principles That Strip the AI Smell Off a Vibe-Coded Landing Page" /&gt;&lt;h2 id="overview"&gt;Overview
&lt;/h2&gt;&lt;p&gt;A 10-minute tutorial titled &amp;ldquo;바이브코딩 디자인 풀코스 | 10분만에 AI 티 완전히 없애기&amp;rdquo; walks through converting a generic AI-generated landing page into an intentional one using three principles: strip what isn&amp;rsquo;t needed, start from references, and design around purpose. It&amp;rsquo;s worth summarizing because the principles generalize well beyond the specific example, and because &amp;ldquo;AI smell&amp;rdquo; on vibe-coded sites is becoming a real product liability.&lt;/p&gt;
&lt;pre class="mermaid" style="visibility:hidden"&gt;flowchart TD
 A[AI default landing page] --&gt; B["Principle 1: Strip everything"]
 B --&gt; C["Monochrome base, no icons, no gradients"]
 C --&gt; D["Principle 2: Start from references"]
 D --&gt; E["Dribbble, Awwwards, direct competitors"]
 E --&gt; F["Principle 3: Design for purpose"]
 F --&gt; G["What should the visitor do?"]
 G --&gt; H[Background → nav → hero → CTA]&lt;/pre&gt;&lt;h2 id="principle-1--strip-everything"&gt;Principle 1 — Strip everything
&lt;/h2&gt;&lt;p&gt;The default LLM landing page has gradients, multi-color palettes, decorative icons, emoji, and at least three CTAs competing for attention. The instinct is to edit it down. The tutorial argues the opposite: delete everything first. Drop to monochrome. Kill every icon. Remove every decorative element. Then add back only what is necessary.&lt;/p&gt;
&lt;p&gt;The reasoning is cognitive: when starting from a busy canvas you spend mental energy deciding what to remove next, and the decision never ends. When starting from a blank canvas you spend energy deciding what to add next, and the addition terminates when the page serves its purpose. Same endpoint, much cleaner path.&lt;/p&gt;
&lt;p&gt;This is the single most actionable piece of advice for anyone shipping a vibe-coded landing. The default LLM output is calibrated to &amp;ldquo;look impressive in a screenshot&amp;rdquo; — stripping is the only way to recover signal.&lt;/p&gt;
&lt;h2 id="principle-2--start-from-references"&gt;Principle 2 — Start from references
&lt;/h2&gt;&lt;p&gt;References come in two flavors. Aesthetic references (Dribbble, Awwwards) show what is currently considered good design; they&amp;rsquo;re aspirational. &lt;strong&gt;Competitive references&lt;/strong&gt; (actual products in your category) show what your users have been trained to expect. Both matter, but competitive references matter more because you are not making art, you are making a product.&lt;/p&gt;
&lt;p&gt;For the tutorial&amp;rsquo;s video-generation example, the competitive references are Kling, Wan, and Runway — products already serving this user need. The shared patterns across those sites are more valuable than anything Dribbble will show: where the hero CTA sits, how generation samples are displayed, how pricing is presented. Divergence from competitive norms has to be a deliberate choice, not an accident.&lt;/p&gt;
&lt;p&gt;The practical tip: scrap-save sites you find beautiful throughout normal browsing. When you sit down to design something, the reference folder is already curated. Trying to find references &lt;em&gt;after&lt;/em&gt; you&amp;rsquo;ve started coding is backwards — the coding pressures you to finish with what you have, which is usually the AI default.&lt;/p&gt;
&lt;h2 id="principle-3--design-for-purpose"&gt;Principle 3 — Design for purpose
&lt;/h2&gt;&lt;p&gt;The focusing question: &lt;em&gt;what do you want the visitor to do?&lt;/em&gt; Every element on the page has to earn its place relative to that answer. For Coupang or Musinsa, the visitor should start browsing products — so the page opens with a product grid. For Claude or ChatGPT, the visitor should type — so the input box is above the fold. For a video-generation tool, the visitor should generate a video — so the generate button is the hero.&lt;/p&gt;
&lt;p&gt;This sounds obvious; in practice, AI-generated landing pages fail it consistently because LLMs have no model of your business. They produce a template that looks like a landing page, not a landing page for &lt;em&gt;your&lt;/em&gt; landing page&amp;rsquo;s purpose. Telling the LLM the purpose explicitly (instead of &amp;ldquo;make a nice landing page&amp;rdquo;) is the single biggest prompt upgrade.&lt;/p&gt;
&lt;h2 id="execution-order-from-the-tutorial"&gt;Execution order from the tutorial
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Background&lt;/strong&gt; — color, image, or video. Video backgrounds work for visually-driven products but must not fight with content.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Navbar&lt;/strong&gt; — transparent initial state, borderless, opaque-on-scroll transition, single purpose-aligned CTA.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hero&lt;/strong&gt; — one-sentence copy stating the problem the product solves. Swap default font for a distinctive Google Font. Add the primary CTA.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Supporting sections&lt;/strong&gt; — only what the purpose demands.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The order matters because each step constrains the next. Pick the background and navbar style and your font/color choices narrow. Pick the hero copy and your section structure narrows. Trying to design all four in parallel produces the AI-default result.&lt;/p&gt;
&lt;h2 id="why-this-matters-for-vibe-coding-specifically"&gt;Why this matters for vibe coding specifically
&lt;/h2&gt;&lt;p&gt;Vibe coding&amp;rsquo;s biggest weakness is not code quality — modern LLMs write acceptable code. The weakness is taste, because the LLM is averaging the training distribution, which is itself full of AI-defaults now. The output is a statistical median of landing pages, and statistical medians are exactly what you&amp;rsquo;re trying to escape if you want the product to feel considered.&lt;/p&gt;
&lt;p&gt;The three principles convert this weakness into a workflow. Strip gets you out of the AI median. Reference pulls you toward an intentional target. Purpose keeps every addition anchored. It&amp;rsquo;s a small amount of discipline that translates directly into the &amp;ldquo;doesn&amp;rsquo;t look AI-generated&amp;rdquo; outcome.&lt;/p&gt;
&lt;h2 id="insights"&gt;Insights
&lt;/h2&gt;&lt;p&gt;Two things stand out. First, &amp;ldquo;AI smell&amp;rdquo; is now a measurable product liability — a landing page that reads as AI-generated is one that users skim past because they&amp;rsquo;ve seen a thousand variants of it this quarter. Second, the three principles are domain-general. They work for a CLI&amp;rsquo;s website, a mobile app store listing, and a pitch deck. The delete-first move is the highest-leverage one; reference-driven design is the skill that takes longest to build; purpose-first filtering is what separates designers from stylists. If you&amp;rsquo;re vibe coding anything user-facing, this is the shortest path to shipping something that feels intentional instead of auto-generated.&lt;/p&gt;</description></item></channel></rss>