<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: LeeTaihe</title>
    <description>The latest articles on DEV Community by LeeTaihe (@leetaihe).</description>
    <link>https://dev.to/leetaihe</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3873006%2Fcc7092ef-6287-4127-8477-fa7df8efd068.png</url>
      <title>DEV Community: LeeTaihe</title>
      <link>https://dev.to/leetaihe</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/leetaihe"/>
    <language>en</language>
    <item>
      <title>How I Built a Design Review Tool for AI-Generated Frontends</title>
      <dc:creator>LeeTaihe</dc:creator>
      <pubDate>Sat, 11 Apr 2026 07:16:58 +0000</pubDate>
      <link>https://dev.to/leetaihe/how-i-built-a-design-review-tool-for-ai-generated-frontends-33mb</link>
      <guid>https://dev.to/leetaihe/how-i-built-a-design-review-tool-for-ai-generated-frontends-33mb</guid>
      <description>&lt;h1&gt;
  
  
  How I Built a Design Review Tool for AI-Generated Frontends
&lt;/h1&gt;

&lt;p&gt;If you've used Claude Code, Cursor, Codex, or other AI coding agents to generate front-end code, you probably know this feeling: the page works, but it still doesn't look good enough.&lt;/p&gt;

&lt;p&gt;The layout is technically correct. The sections are there. The responsive behavior mostly works. But the visual result often feels cramped, flat, and generic — more like a tutorial project than a polished product.&lt;/p&gt;

&lt;p&gt;I kept running into this problem in my own workflow. I looked around for tools that focused specifically on reviewing the visual quality of AI-generated frontends, but I didn't find much that matched what I wanted. So I built &lt;strong&gt;AetherPane&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/lihytaihe-lang/aetherpane" rel="noopener noreferrer"&gt;https://github.com/lihytaihe-lang/aetherpane&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Gap Between "Working" and "Polished"
&lt;/h2&gt;

&lt;p&gt;AI coding agents are getting very good at structure.&lt;/p&gt;

&lt;p&gt;They can generate layouts, components, responsive sections, and even reasonably clean code. In many cases, they can get a page from idea to implementation surprisingly quickly.&lt;/p&gt;

&lt;p&gt;But visual quality is a different layer of the problem.&lt;/p&gt;

&lt;p&gt;A polished interface depends on a lot of small decisions that are easy to underestimate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;visual hierarchy&lt;/li&gt;
&lt;li&gt;spacing rhythm&lt;/li&gt;
&lt;li&gt;surface depth&lt;/li&gt;
&lt;li&gt;typography contrast&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These details are exactly what make the difference between "this technically works" and "this feels production-ready."&lt;/p&gt;

&lt;p&gt;And in my experience, this is also where AI-generated frontends still struggle most often.&lt;/p&gt;

&lt;p&gt;That made me realize something: the missing piece wasn't just better prompting. It was a more systematic way to review design quality.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Prompting Alone Wasn't Enough
&lt;/h2&gt;

&lt;p&gt;When an AI-generated UI looks mediocre, the default reaction is usually to keep prompting:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"make it more premium"&lt;/li&gt;
&lt;li&gt;"improve the spacing"&lt;/li&gt;
&lt;li&gt;"make it feel more polished"&lt;/li&gt;
&lt;li&gt;"add more depth"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sometimes that helps. Often it doesn't.&lt;/p&gt;

&lt;p&gt;The problem is that these prompts are vague, and the feedback loop is weak. If the result improves, it is hard to tell exactly why. If it gets worse, there is no structured way to understand what regressed.&lt;/p&gt;

&lt;p&gt;I wanted something more concrete than intuition and repeated prompting.&lt;/p&gt;

&lt;p&gt;I wanted a way to look at an AI-generated page and ask:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is the hierarchy clear?&lt;/li&gt;
&lt;li&gt;Does the spacing breathe?&lt;/li&gt;
&lt;li&gt;Do the surfaces have enough depth?&lt;/li&gt;
&lt;li&gt;Does the typography create enough contrast?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That idea became AetherPane.&lt;/p&gt;

&lt;h2&gt;
  
  
  What AetherPane Is
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;AetherPane&lt;/strong&gt; is a design review and scoring tool for AI-generated frontends.&lt;/p&gt;

&lt;p&gt;It is not a component library, and it is not just a collection of style rules. The goal is to act more like a design intelligence layer: review what an AI agent produced, score it across a few design dimensions, and make the refinement step more structured.&lt;/p&gt;

&lt;p&gt;Instead of only saying "make it prettier," I wanted a workflow that could say &lt;strong&gt;why&lt;/strong&gt; a page feels weak and where the problems are likely to be.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Four Design Dimensions
&lt;/h2&gt;

&lt;p&gt;Right now, AetherPane evaluates UI across four dimensions:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;What It Measures&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Visual Hierarchy&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Whether important elements actually stand out&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Breathing Space&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Whether spacing feels open or cramped&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Glass Quality&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Whether surfaces have enough depth, layering, and refinement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Typography&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Whether text has enough contrast, scale, and hierarchy&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These dimensions are not meant to replace human design judgment. They are meant to make design review more explicit and easier to iterate on.&lt;/p&gt;

&lt;p&gt;In practice, this gives me a much clearer way to inspect AI-generated frontend output than simply eyeballing the page and throwing another round of prompts at it.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Minimal Workflow
&lt;/h2&gt;

&lt;p&gt;The basic workflow is simple:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;let an AI coding agent generate a page&lt;/li&gt;
&lt;li&gt;run AetherPane against that page&lt;/li&gt;
&lt;li&gt;inspect the score and review report&lt;/li&gt;
&lt;li&gt;refine the design based on clearer feedback&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A minimal example looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;node skills/web-ui-polish/tools/cli.cjs critique your-page.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That produces a score breakdown and a review report highlighting issues such as weak spacing, missing typography scaling, or flat surface treatment.&lt;/p&gt;

&lt;p&gt;The point is not to automate taste completely. The point is to make the review loop more legible.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Found Valuable While Building It
&lt;/h2&gt;

&lt;p&gt;The most useful shift for me was moving from vague aesthetic reactions to more structured critique.&lt;/p&gt;

&lt;p&gt;Before, my loop looked like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;generate UI with an agent&lt;/li&gt;
&lt;li&gt;feel that it looked "off"&lt;/li&gt;
&lt;li&gt;try more prompts&lt;/li&gt;
&lt;li&gt;hope it got better&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now the loop is closer to this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;generate UI with an agent&lt;/li&gt;
&lt;li&gt;review it across specific design dimensions&lt;/li&gt;
&lt;li&gt;identify where it is weak&lt;/li&gt;
&lt;li&gt;iterate with more targeted changes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That change sounds small, but in practice it makes refinement much less random.&lt;/p&gt;

&lt;p&gt;I also found that this kind of tooling becomes more useful as AI coding gets better. The stronger agents become at generating functional code, the more obvious the remaining weakness becomes: visual quality.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Think This Category Needs to Exist
&lt;/h2&gt;

&lt;p&gt;I think we are heading toward a real need for AI design quality tooling.&lt;/p&gt;

&lt;p&gt;Right now, a lot of attention goes to code generation speed, model benchmarks, and agent workflows. But for frontend work, there is a very real gap between:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the page exists&lt;/li&gt;
&lt;li&gt;the page looks finished&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That gap matters.&lt;/p&gt;

&lt;p&gt;As more developers use AI agents to build interfaces, I think more people will run into the same frustration: the frontend is functional, but it still needs another pass before it feels good enough.&lt;/p&gt;

&lt;p&gt;That is the category I wanted to explore with AetherPane.&lt;/p&gt;

&lt;p&gt;Not a replacement for designers.&lt;br&gt;
Not a magic button for instant taste.&lt;br&gt;
Just a more structured way to evaluate and improve AI-generated UI.&lt;/p&gt;

&lt;h2&gt;
  
  
  Current Status
&lt;/h2&gt;

&lt;p&gt;AetherPane is open source, MIT licensed, and still early, but functional.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/lihytaihe-lang/aetherpane" rel="noopener noreferrer"&gt;https://github.com/lihytaihe-lang/aetherpane&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'd especially love feedback from people using AI coding workflows for frontend work, because that's the exact context this was built for.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>frontend</category>
      <category>opensource</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
