<?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: Vellira</title>
    <description>The latest articles on DEV Community by Vellira (@vellira).</description>
    <link>https://dev.to/vellira</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4111319%2Fbdb7597f-0e1d-434a-9526-621d9e92b4b1.png</url>
      <title>DEV Community: Vellira</title>
      <link>https://dev.to/vellira</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vellira"/>
    <language>en</language>
    <item>
      <title>AI Can Generate More UI. Who Keeps It Consistent?</title>
      <dc:creator>Vellira</dc:creator>
      <pubDate>Sat, 19 Sep 2026 16:12:38 +0000</pubDate>
      <link>https://dev.to/vellira/ai-can-generate-more-ui-who-keeps-it-consistent-mkf</link>
      <guid>https://dev.to/vellira/ai-can-generate-more-ui-who-keeps-it-consistent-mkf</guid>
      <description>&lt;p&gt;AI can now generate UI faster than many teams can review it.&lt;/p&gt;

&lt;p&gt;Describe a component to a coding model and, a few minutes later, you may have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;an implementation,&lt;/li&gt;
&lt;li&gt;types,&lt;/li&gt;
&lt;li&gt;tests,&lt;/li&gt;
&lt;li&gt;documentation,&lt;/li&gt;
&lt;li&gt;several variations,&lt;/li&gt;
&lt;li&gt;and a refactor of the surrounding code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is a real productivity improvement.&lt;/p&gt;

&lt;p&gt;But it changes the bottleneck.&lt;/p&gt;

&lt;p&gt;The difficult question is becoming less:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;How quickly can we create another component?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And more:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;How do we keep the whole UI system coherent when humans and AI can change it this quickly?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is one of the problems we are building Vellira around.&lt;/p&gt;

&lt;h2&gt;
  
  
  Generation is getting cheaper. Fragmentation is not.
&lt;/h2&gt;

&lt;p&gt;Imagine an AI-generated component that looks correct, compiles, and works in isolation.&lt;/p&gt;

&lt;p&gt;That still leaves a lot unanswered.&lt;/p&gt;

&lt;p&gt;Does the component duplicate something that already exists?&lt;/p&gt;

&lt;p&gt;Does its API follow the same conventions as similar components?&lt;/p&gt;

&lt;p&gt;Does it use the same design tokens?&lt;/p&gt;

&lt;p&gt;Does the React Native version represent the same product capability correctly?&lt;/p&gt;

&lt;p&gt;Are accessibility expectations covered?&lt;/p&gt;

&lt;p&gt;Were Storybook, documentation, exports, metadata, and tests updated with the implementation?&lt;/p&gt;

&lt;p&gt;A component can be locally correct while making the system around it less consistent.&lt;/p&gt;

&lt;p&gt;And the faster we produce UI, the faster these small differences can accumulate.&lt;/p&gt;

&lt;p&gt;You start seeing things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;similar components with slightly different APIs,&lt;/li&gt;
&lt;li&gt;local colors and spacing bypassing shared tokens,&lt;/li&gt;
&lt;li&gt;Web and React Native implementations drifting unintentionally,&lt;/li&gt;
&lt;li&gt;accessibility behavior changing between components,&lt;/li&gt;
&lt;li&gt;documentation falling behind the actual API,&lt;/li&gt;
&lt;li&gt;duplicate capabilities appearing under different names,&lt;/li&gt;
&lt;li&gt;tests encoding different expectations for equivalent behavior.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI did not invent these problems.&lt;/p&gt;

&lt;p&gt;It increases the rate at which they can appear.&lt;/p&gt;

&lt;h2&gt;
  
  
  A component library is necessary, but it is not enough
&lt;/h2&gt;

&lt;p&gt;A traditional design system gives you components, tokens, guidelines, and documentation.&lt;/p&gt;

&lt;p&gt;Those are still essential.&lt;/p&gt;

&lt;p&gt;But a catalog can tell you that &lt;code&gt;Button&lt;/code&gt;, &lt;code&gt;Select&lt;/code&gt;, or &lt;code&gt;Tabs&lt;/code&gt; exists.&lt;/p&gt;

&lt;p&gt;It cannot automatically answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;whether a new implementation should exist at all,&lt;/li&gt;
&lt;li&gt;whether it follows the established API model,&lt;/li&gt;
&lt;li&gt;whether its platform differences are intentional,&lt;/li&gt;
&lt;li&gt;whether its documentation still matches the code,&lt;/li&gt;
&lt;li&gt;whether it satisfies the same quality expectations as the rest of the system.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This becomes especially important when developers and coding agents work in the same repository.&lt;/p&gt;

&lt;p&gt;A coding model can produce perfectly reasonable code that does not quite belong to the system around it.&lt;/p&gt;

&lt;p&gt;The question becomes bigger than:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Does this component work?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It becomes:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Does this change still belong to the same product and engineering system?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The system around generation becomes more important
&lt;/h2&gt;

&lt;p&gt;Coding models are getting better quickly.&lt;/p&gt;

&lt;p&gt;We should assume they will become better at:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;implementing components,&lt;/li&gt;
&lt;li&gt;modifying large codebases,&lt;/li&gt;
&lt;li&gt;writing tests,&lt;/li&gt;
&lt;li&gt;refactoring APIs,&lt;/li&gt;
&lt;li&gt;generating documentation,&lt;/li&gt;
&lt;li&gt;making coordinated multi-file changes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is good.&lt;/p&gt;

&lt;p&gt;The goal should not be to slow them down.&lt;/p&gt;

&lt;p&gt;But faster production means the repository needs stronger boundaries.&lt;/p&gt;

&lt;p&gt;If an agent changes ten components in one pass, the project still needs to know whether:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;their APIs remain coherent,&lt;/li&gt;
&lt;li&gt;accessibility behavior remains correct,&lt;/li&gt;
&lt;li&gt;public exports remain synchronized,&lt;/li&gt;
&lt;li&gt;documentation still reflects reality,&lt;/li&gt;
&lt;li&gt;design tokens are still authoritative,&lt;/li&gt;
&lt;li&gt;React and React Native only diverge where they are supposed to.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The better generation becomes, the more useful explicit and deterministic project contracts become.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we are building into Vellira
&lt;/h2&gt;

&lt;p&gt;Vellira started as a cross-platform design system for React and React Native.&lt;/p&gt;

&lt;p&gt;The foundation is still familiar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;reusable components,&lt;/li&gt;
&lt;li&gt;shared design tokens,&lt;/li&gt;
&lt;li&gt;Storybook,&lt;/li&gt;
&lt;li&gt;documentation,&lt;/li&gt;
&lt;li&gt;platform-specific implementations behind shared product intent.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But while building the component catalog, another requirement became obvious.&lt;/p&gt;

&lt;p&gt;Creating the component is only one stage of its lifecycle.&lt;/p&gt;

&lt;p&gt;A production component also needs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;metadata,&lt;/li&gt;
&lt;li&gt;public types,&lt;/li&gt;
&lt;li&gt;exports,&lt;/li&gt;
&lt;li&gt;tests,&lt;/li&gt;
&lt;li&gt;accessibility coverage,&lt;/li&gt;
&lt;li&gt;Storybook examples,&lt;/li&gt;
&lt;li&gt;website documentation,&lt;/li&gt;
&lt;li&gt;platform validation,&lt;/li&gt;
&lt;li&gt;completeness checks,&lt;/li&gt;
&lt;li&gt;quality checks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So we started making those expectations machine-readable and repeatable.&lt;/p&gt;

&lt;p&gt;For example, instead of asking a reviewer to remember every required artifact, the project can check whether a component has the expected implementation, tests, documentation, metadata, exports, and platform support.&lt;/p&gt;

&lt;p&gt;Instead of treating component creation as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;generate file → done
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;we are moving toward something closer to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;intent
  ↓
component production
  ↓
implementation
  ↓
tests / accessibility / metadata / docs
  ↓
quality and completeness validation
  ↓
review
  ↓
canonical component
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important part is not any single checker or generator.&lt;/p&gt;

&lt;p&gt;It is that the lifecycle becomes explicit.&lt;/p&gt;

&lt;h2&gt;
  
  
  The author matters less than the resulting state
&lt;/h2&gt;

&lt;p&gt;I do not think AI-generated code needs to live in a completely separate category.&lt;/p&gt;

&lt;p&gt;A human can introduce an inconsistent API.&lt;/p&gt;

&lt;p&gt;A coding agent can follow an existing convention perfectly.&lt;/p&gt;

&lt;p&gt;A developer can forget to update documentation.&lt;/p&gt;

&lt;p&gt;Automation can keep it synchronized.&lt;/p&gt;

&lt;p&gt;Once code enters the repository, the important question is not who typed it.&lt;/p&gt;

&lt;p&gt;The important question is whether the resulting state of the project is valid.&lt;/p&gt;

&lt;p&gt;That is why we are more interested in lifecycle tooling than in trying to distinguish “human code” from “AI code.”&lt;/p&gt;

&lt;p&gt;Both humans and AI benefit when more of the consistency burden belongs to the system itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cross-platform UI makes this harder
&lt;/h2&gt;

&lt;p&gt;Vellira targets both React and React Native.&lt;/p&gt;

&lt;p&gt;And “the same component” does not necessarily mean “the same implementation.”&lt;/p&gt;

&lt;p&gt;Web and native platforms have different:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;primitives,&lt;/li&gt;
&lt;li&gt;accessibility APIs,&lt;/li&gt;
&lt;li&gt;keyboard and focus models,&lt;/li&gt;
&lt;li&gt;interaction patterns,&lt;/li&gt;
&lt;li&gt;layout constraints.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some behavior should be shared.&lt;/p&gt;

&lt;p&gt;Some behavior should intentionally diverge.&lt;/p&gt;

&lt;p&gt;So a good cross-platform system cannot simply copy the Web implementation into React Native and call that consistency.&lt;/p&gt;

&lt;p&gt;It needs to preserve the same product intent while allowing each runtime to behave appropriately.&lt;/p&gt;

&lt;p&gt;AI can generate both implementations quickly.&lt;/p&gt;

&lt;p&gt;The harder problem is determining whether those implementations still represent one coherent component.&lt;/p&gt;

&lt;h2&gt;
  
  
  The bottleneck is moving toward coordination
&lt;/h2&gt;

&lt;p&gt;This is probably the most interesting consequence of AI-assisted frontend development.&lt;/p&gt;

&lt;p&gt;When producing UI becomes cheaper, teams can produce more of it.&lt;/p&gt;

&lt;p&gt;More experiments.&lt;/p&gt;

&lt;p&gt;More parallel changes.&lt;/p&gt;

&lt;p&gt;More automated contributions.&lt;/p&gt;

&lt;p&gt;More components.&lt;/p&gt;

&lt;p&gt;The limiting resource moves away from typing speed.&lt;/p&gt;

&lt;p&gt;It moves toward:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;coordination,&lt;/li&gt;
&lt;li&gt;consistency,&lt;/li&gt;
&lt;li&gt;review,&lt;/li&gt;
&lt;li&gt;maintenance.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That changes what useful developer tooling looks like.&lt;/p&gt;

&lt;p&gt;If ten UI changes can be produced in the time it previously took to produce one, tooling that helps those ten changes remain part of the same system becomes much more valuable.&lt;/p&gt;

&lt;p&gt;That is the direction we are exploring with Vellira:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;AI can generate more UI. Vellira is being built to help keep that UI coherent.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Where Vellira is today
&lt;/h2&gt;

&lt;p&gt;We are still proving this inside Vellira itself.&lt;/p&gt;

&lt;p&gt;The immediate work is concrete:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;grow the React and React Native component catalog,&lt;/li&gt;
&lt;li&gt;make component production more repeatable,&lt;/li&gt;
&lt;li&gt;strengthen accessibility and quality validation,&lt;/li&gt;
&lt;li&gt;improve documentation,&lt;/li&gt;
&lt;li&gt;make the public project easier to install and use.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We are deliberately making these workflows reliable inside one real design system before claiming that they can manage arbitrary external repositories.&lt;/p&gt;

&lt;p&gt;But the direction is clear.&lt;/p&gt;

&lt;p&gt;Frontend teams are going to work with more generated code, not less.&lt;/p&gt;

&lt;p&gt;The answer should not be to make generation slower.&lt;/p&gt;

&lt;p&gt;It should be to make the system around generation stronger.&lt;/p&gt;




&lt;p&gt;Vellira is an open-source React and React Native design system being built in public.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.vellira.dev" rel="noopener noreferrer"&gt;Explore the documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://storybook.vellira.dev" rel="noopener noreferrer"&gt;Browse Storybook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/vellira-dev/vellira" rel="noopener noreferrer"&gt;Follow the project on GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>react</category>
      <category>reactnative</category>
      <category>designsystem</category>
    </item>
  </channel>
</rss>
