<?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: Chris</title>
    <description>The latest articles on DEV Community by Chris (@kr1sck).</description>
    <link>https://dev.to/kr1sck</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%2F4136272%2Fe01e2036-33cf-4bea-94c0-4b387adb9801.png</url>
      <title>DEV Community: Chris</title>
      <link>https://dev.to/kr1sck</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kr1sck"/>
    <language>en</language>
    <item>
      <title>Design-to-Code Is Still a Handoff. What If There Was No Handoff?</title>
      <dc:creator>Chris</dc:creator>
      <pubDate>Wed, 23 Sep 2026 12:44:19 +0000</pubDate>
      <link>https://dev.to/kr1sck/design-to-code-is-still-a-handoff-what-if-there-was-no-handoff-3ep9</link>
      <guid>https://dev.to/kr1sck/design-to-code-is-still-a-handoff-what-if-there-was-no-handoff-3ep9</guid>
      <description>&lt;p&gt;AI can build interfaces incredibly fast now. You describe a product, get a few screens, iterate on the design, and eventually export the result to React.&lt;/p&gt;

&lt;p&gt;At first, it feels like design-to-code has solved the old handoff problem.&lt;/p&gt;

&lt;p&gt;But after the export, the real work often starts.&lt;/p&gt;

&lt;p&gt;The generated Button needs to be replaced with the one already used in the project. Colors need to map to design tokens. Similar components need to be consolidated. Variants need to be added. Everything has to fit the existing UI Kit and Design System.&lt;/p&gt;

&lt;p&gt;You end up in a strange place: the design is finished, there is already code, but the product still needs to be built.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftz5mfgqrn10bbrtux4u7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftz5mfgqrn10bbrtux4u7.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What if you designed the actual React product instead?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffuos5sz7m6i3g4n0zppp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffuos5sz7m6i3g4n0zppp.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Imagine I need a billing page.&lt;/p&gt;

&lt;p&gt;I tell AI:&lt;/p&gt;

&lt;p&gt;Build a page with plans, payment history, and payment methods.&lt;/p&gt;

&lt;p&gt;From there, I want to think about the product itself. Are the plans easy to compare? Where should an overdue invoice appear? Should I change the layout? Do I need another page?&lt;/p&gt;

&lt;p&gt;I don’t want to think at the same time about whether a new Button should be created, whether a suitable Badge already exists, what a new variant should be called, or where a new token belongs.&lt;/p&gt;

&lt;p&gt;If the right component already exists, reuse it.&lt;/p&gt;

&lt;p&gt;If it almost fits, extend it.&lt;/p&gt;

&lt;p&gt;If the product introduces a genuinely new reusable pattern, add it to the UI Kit.&lt;/p&gt;

&lt;p&gt;The same applies to design tokens: reuse what already exists and extend the system only when the product actually needs something new.&lt;/p&gt;

&lt;p&gt;That means the UI Kit and Design System evolve alongside the product while you design it.&lt;/p&gt;

&lt;p&gt;Not afterwards. Not as a separate cleanup phase.&lt;/p&gt;

&lt;p&gt;At the same time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcvnxk5t0anmxfmt20tie.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcvnxk5t0anmxfmt20tie.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That changes the workflow&lt;/p&gt;

&lt;p&gt;A typical flow still looks something like this:&lt;/p&gt;

&lt;p&gt;Idea&lt;br&gt;
→ AI design&lt;br&gt;
→ export to React&lt;br&gt;
→ clean up generated code&lt;br&gt;
→ rebuild components&lt;br&gt;
→ align UI Kit and Design System&lt;br&gt;
→ add business logic&lt;/p&gt;

&lt;p&gt;The workflow I’m more interested in looks like this:&lt;/p&gt;

&lt;p&gt;Idea&lt;br&gt;
→ design the actual React product&lt;br&gt;
→ components + UI Kit + Design System grow with it&lt;br&gt;
→ add business logic&lt;/p&gt;

&lt;p&gt;The result is not just a mockup or a collection of HTML elements that still need to be turned into a proper product.&lt;/p&gt;

&lt;p&gt;You already have working React UI, reusable components, variants, design tokens, and a UI Kit that the product itself uses.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6tairlvvolz5hcvxqyjn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6tairlvvolz5hcvxqyjn.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This workflow is what led me to build Varelyo&lt;/p&gt;

&lt;p&gt;&lt;a href="https://varelyo.com/" rel="noopener noreferrer"&gt;Varelyo&lt;/a&gt; is a local-first tool that works directly with a React project through Claude Code and Codex.&lt;/p&gt;

&lt;p&gt;The idea is simple: while you focus on the product, the existing components, variants, tokens, and UI Kit are reused and extended along with it.&lt;/p&gt;

&lt;p&gt;When the UI is ready, there isn’t another step where the design has to be turned into an application. You can stay in the same project and move on to APIs, state, permissions, data, and business logic.&lt;/p&gt;

&lt;p&gt;That’s why I’m becoming less interested in the term design-to-code.&lt;/p&gt;

&lt;p&gt;If the design still has to be translated into the real product afterwards, the handoff is still there.&lt;/p&gt;

&lt;p&gt;A more interesting direction is to remove that step entirely: design the React product itself while the code, UI Kit, and Design System grow with it.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>frontend</category>
      <category>uidesign</category>
      <category>design</category>
    </item>
    <item>
      <title>AI Can Generate React UI. The Real Problem Starts on Page Two.</title>
      <dc:creator>Chris</dc:creator>
      <pubDate>Mon, 21 Sep 2026 18:38:29 +0000</pubDate>
      <link>https://dev.to/kr1sck/ai-can-generate-react-ui-the-real-problem-starts-on-page-two-3cki</link>
      <guid>https://dev.to/kr1sck/ai-can-generate-react-ui-the-real-problem-starts-on-page-two-3cki</guid>
      <description>&lt;p&gt;AI-generated UI is pretty convincing when you’re building the first screen.&lt;/p&gt;

&lt;p&gt;Ask for a SaaS dashboard and you’ll usually get something decent within minutes: sidebar, cards, tables, forms, buttons.&lt;/p&gt;

&lt;p&gt;The trouble starts once you keep going.&lt;/p&gt;

&lt;p&gt;By page two or three, the project already has components worth reusing, and that’s where AI coding agents often start inventing alternatives.&lt;/p&gt;

&lt;p&gt;There’s already a Button, but another one appears.&lt;/p&gt;

&lt;p&gt;There’s a Card, but the new page gets a slightly different implementation.&lt;/p&gt;

&lt;p&gt;The project uses spacing tokens, yet an 18px value suddenly shows up in a component.&lt;/p&gt;

&lt;p&gt;A few screens later, there’s another modal implementation.&lt;/p&gt;

&lt;p&gt;Nothing is obviously broken. The app still runs and the UI may look perfectly fine.&lt;/p&gt;

&lt;p&gt;But the codebase is slowly turning into several slightly different versions of the same UI system.&lt;/p&gt;

&lt;p&gt;Greenfield demos hide a lot of this&lt;/p&gt;

&lt;p&gt;AI UI generators have a much easier job in an empty project.&lt;/p&gt;

&lt;p&gt;There’s no existing component library to understand, no design tokens to respect, no established variants, and no previous decisions to work around.&lt;/p&gt;

&lt;p&gt;A real React product is different.&lt;/p&gt;

&lt;p&gt;It may already have reusable React components, props, variants, a UI kit, semantic design tokens, themes, accessibility behavior, and project conventions that have accumulated over time.&lt;/p&gt;

&lt;p&gt;Now ask Claude Code, Codex, or another AI coding agent:&lt;/p&gt;

&lt;p&gt;Add a billing page.&lt;/p&gt;

&lt;p&gt;The difficult part isn’t generating JSX for a billing page.&lt;/p&gt;

&lt;p&gt;The difficult part is knowing what already exists and fitting the new page into it.&lt;/p&gt;

&lt;p&gt;If the project already has a suitable Button, use it.&lt;/p&gt;

&lt;p&gt;If it’s almost right but needs another variant, extend it.&lt;/p&gt;

&lt;p&gt;If there’s already a Dialog, use that instead of building another modal locally.&lt;/p&gt;

&lt;p&gt;If a semantic token already exists, don’t hardcode a replacement beside it.&lt;/p&gt;

&lt;p&gt;Writing the code isn’t really the issue.&lt;/p&gt;

&lt;p&gt;Understanding the system the code belongs to is.&lt;/p&gt;

&lt;p&gt;You can keep fixing this in the prompt&lt;/p&gt;

&lt;p&gt;A lot of this can be managed manually.&lt;/p&gt;

&lt;p&gt;I’ve written plenty of prompts like&lt;/p&gt;

&lt;p&gt;Check the existing components first.&lt;br&gt;
Reuse the current UI kit.&lt;br&gt;
Don't create duplicate components.&lt;br&gt;
Use semantic design tokens.&lt;br&gt;
Extend existing variants where possible.&lt;/p&gt;

&lt;p&gt;That helps.&lt;/p&gt;

&lt;p&gt;But after doing this for a while, I realized I was spending a surprising amount of my prompts policing the design system.&lt;/p&gt;

&lt;p&gt;I was supposed to be thinking about the product.&lt;/p&gt;

&lt;p&gt;Instead I was deciding whether the agent was allowed to create another component, whether it had checked the current variants, and whether it was about to hardcode something that already existed as a token.&lt;/p&gt;

&lt;p&gt;The manual work hadn’t disappeared.&lt;/p&gt;

&lt;p&gt;It had just moved into the prompt.&lt;/p&gt;

&lt;p&gt;I’d rather think about the product, not the UI plumbing&lt;/p&gt;

&lt;p&gt;In practice, my prompts should stay focused on the product: build the dashboard, add Projects, work on Project Details, create onboarding, or rethink Settings using a visual reference.&lt;/p&gt;

&lt;p&gt;I shouldn’t have to stop every time and decide whether the agent needs to reuse a component, add a variant, or extend the token system.&lt;/p&gt;

&lt;p&gt;That should happen underneath the product work.&lt;/p&gt;

&lt;p&gt;The rough rule is simple:&lt;/p&gt;

&lt;p&gt;reuse → extend → create → validate&lt;/p&gt;

&lt;p&gt;If something already exists, reuse it.&lt;/p&gt;

&lt;p&gt;If it’s close, extend it.&lt;/p&gt;

&lt;p&gt;Only create something new when the product actually introduces a new reusable pattern.&lt;/p&gt;

&lt;p&gt;The important part is that I don’t want to manually enforce those rules in every prompt.&lt;/p&gt;

&lt;p&gt;Starting from scratch creates the opposite problem&lt;/p&gt;

&lt;p&gt;There’s another version of this problem with new products.&lt;/p&gt;

&lt;p&gt;You can build a complete design system before designing the actual application, but you don’t yet know every pattern the product will need.&lt;/p&gt;

&lt;p&gt;Or you can generate twenty screens first and clean everything up afterwards.&lt;/p&gt;

&lt;p&gt;Then you’re left deciding which of the five similar buttons should become the real one, which spacing values should turn into tokens, and which repeated patterns belong in the UI kit.&lt;/p&gt;

&lt;p&gt;A better flow, at least for me, is to let the system grow from the product.&lt;/p&gt;

&lt;p&gt;The Dashboard introduces the first reusable components.&lt;/p&gt;

&lt;p&gt;Projects reuses them.&lt;/p&gt;

&lt;p&gt;Project Details needs another Badge state, so the existing component changes.&lt;/p&gt;

&lt;p&gt;Settings introduces a new repeating pattern, so that becomes reusable.&lt;/p&gt;

&lt;p&gt;Billing needs another semantic state, so the token system grows.&lt;/p&gt;

&lt;p&gt;After several pages, you don’t have a pile of unrelated AI-generated screens.&lt;/p&gt;

&lt;p&gt;You have one React product with a component system that has evolved alongside it.&lt;/p&gt;

&lt;p&gt;The design system matters, but it isn’t the thing I want to design all day&lt;/p&gt;

&lt;p&gt;I absolutely want reusable components, predictable variants, and consistent design tokens.&lt;/p&gt;

&lt;p&gt;But those are infrastructure.&lt;/p&gt;

&lt;p&gt;When I’m working on a product, I’d rather spend my time deciding what the user sees, how a flow works, which screens are needed, and how the product behaves.&lt;/p&gt;

&lt;p&gt;The design system should support that work.&lt;/p&gt;

&lt;p&gt;It shouldn’t become a second product I have to micromanage every time AI generates a page.&lt;/p&gt;

&lt;p&gt;I also don’t want a separate design-to-code step&lt;/p&gt;

&lt;p&gt;Even if an AI design tool generates a great interface, if the result is still a canvas or mockup, I still need to turn it into the actual React application.&lt;/p&gt;

&lt;p&gt;The workflow is still roughly:&lt;/p&gt;

&lt;p&gt;idea&lt;br&gt;
→ design&lt;br&gt;
→ mockup&lt;br&gt;
→ handoff&lt;br&gt;
→ React implementation&lt;br&gt;
→ component cleanup&lt;br&gt;
→ design system cleanup&lt;br&gt;
→ business logic&lt;/p&gt;

&lt;p&gt;AI can make that pipeline faster, but it’s still a pipeline.&lt;/p&gt;

&lt;p&gt;I’d rather work more like this:&lt;/p&gt;

&lt;p&gt;describe the product&lt;br&gt;
→ design directly in React&lt;br&gt;
→ components, variants, tokens, and UI kit evolve with it&lt;br&gt;
→ continue building the product&lt;/p&gt;

&lt;p&gt;At that point, there isn’t a separate &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fok5hbu2f0vo04982parl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fok5hbu2f0vo04982parl.png" alt=" " width="800" height="479"&gt;&lt;/a&gt;now convert the design to React” phase.&lt;/p&gt;

&lt;p&gt;You’re already working in the React implementation.&lt;/p&gt;

&lt;p&gt;Code stays the source of truth&lt;/p&gt;

&lt;p&gt;This is probably the part I care about most.&lt;/p&gt;

&lt;p&gt;If the production app already runs on React components, I don’t really want another representation of the same UI system living somewhere else.&lt;/p&gt;

&lt;p&gt;The real Button is already in the repository.&lt;/p&gt;

&lt;p&gt;Its props are there.&lt;/p&gt;

&lt;p&gt;Its variants are there.&lt;/p&gt;

&lt;p&gt;The real design tokens are there.&lt;/p&gt;

&lt;p&gt;The actual interaction states are there.&lt;/p&gt;

&lt;p&gt;The component library used by the product is there.&lt;/p&gt;

&lt;p&gt;So it makes more sense to me for the AI design workflow to operate directly on that system.&lt;/p&gt;

&lt;p&gt;Code stays the source of truth.&lt;/p&gt;

&lt;p&gt;That’s what pushed me to build Varelyo&lt;/p&gt;

&lt;p&gt;This is the problem that led me to build Varelyo.&lt;/p&gt;

&lt;p&gt;I’m the developer behind it, so this is obviously not an independent review of the tool. It came out of a workflow I wanted for myself.&lt;/p&gt;

&lt;p&gt;I wasn’t trying to build another model that writes React better than Claude Code or Codex.&lt;/p&gt;

&lt;p&gt;Those tools are already good at writing code.&lt;/p&gt;

&lt;p&gt;What I wanted was a different layer around them: a harness that lets me stay focused on the product.&lt;/p&gt;

&lt;p&gt;The model still writes the code.&lt;/p&gt;

&lt;p&gt;The Varelyo harness gives it the product context, the structure of the existing UI system, and the rules for how components, variants, tokens, and the UI kit should be reused and extended.&lt;/p&gt;

&lt;p&gt;So instead of writing:&lt;/p&gt;

&lt;p&gt;Add a Settings page.&lt;/p&gt;

&lt;p&gt;Check the existing components.&lt;br&gt;
Don't create another Button.&lt;br&gt;
Use semantic tokens.&lt;br&gt;
Extend existing variants.&lt;br&gt;
Keep the UI kit consistent.&lt;/p&gt;

&lt;p&gt;I should be able to write:&lt;/p&gt;

&lt;p&gt;Add a Settings page.&lt;/p&gt;

&lt;p&gt;The rest belongs in the system around the agent.&lt;/p&gt;

&lt;p&gt;That doesn’t mean the agent never creates anything new. It means new things should be created deliberately, as part of the product’s component system, rather than as one-off JSX inside the latest page.&lt;/p&gt;

&lt;p&gt;Existing project or new product&lt;/p&gt;

&lt;p&gt;In an existing React codebase, the goal is to understand and extend what’s already there.&lt;/p&gt;

&lt;p&gt;In a new product, the same system can emerge gradually.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;Build a project management product with Dashboard, Projects, Task Details, Team, and Settings. Use this reference as the visual direction.&lt;/p&gt;

&lt;p&gt;Then I can work page by page.&lt;/p&gt;

&lt;p&gt;Components appear when the product actually needs them.&lt;/p&gt;

&lt;p&gt;Variants change as new cases appear.&lt;/p&gt;

&lt;p&gt;The UI kit grows.&lt;/p&gt;

&lt;p&gt;Design tokens are introduced as the visual language becomes clearer.&lt;/p&gt;

&lt;p&gt;Each new page has something real to build on.&lt;/p&gt;

&lt;p&gt;I don’t need to fully define the design system before I start, and I don’t need to reverse-engineer one from twenty generated screens afterwards.&lt;/p&gt;

&lt;p&gt;What comes out the other end?&lt;/p&gt;

&lt;p&gt;For me, an AI design tool for React should produce more than screenshots or disconnected JSX.&lt;/p&gt;

&lt;p&gt;I want actual React product code that already belongs to a coherent system:&lt;/p&gt;

&lt;p&gt;reusable React components&lt;br&gt;
consistent props and variants&lt;br&gt;
shared design tokens&lt;br&gt;
an evolving UI kit&lt;br&gt;
pages that build on the same component library&lt;/p&gt;

&lt;p&gt;Then normal development continues.&lt;/p&gt;

&lt;p&gt;APIs, state management, permissions, data fetching, business logic.&lt;/p&gt;

&lt;p&gt;There shouldn’t be a separate stage where the team has to turn the AI design into the real React application.&lt;/p&gt;

&lt;p&gt;They should already be working in it.&lt;/p&gt;

&lt;p&gt;The question I keep coming back to&lt;/p&gt;

&lt;p&gt;AI can already make a good-looking dashboard.&lt;/p&gt;

&lt;p&gt;That part isn’t especially interesting anymore.&lt;/p&gt;

&lt;p&gt;The question I keep coming back to is:&lt;/p&gt;

&lt;p&gt;What does the project look like after page ten?&lt;/p&gt;

&lt;p&gt;Is the agent still using the existing React component library?&lt;/p&gt;

&lt;p&gt;Does it extend components instead of quietly duplicating them?&lt;/p&gt;

&lt;p&gt;Are the design tokens still consistent?&lt;/p&gt;

&lt;p&gt;Has the UI kit evolved with the product?&lt;/p&gt;

&lt;p&gt;And can I keep thinking about the product itself instead of supervising the design system underneath it?&lt;/p&gt;

&lt;p&gt;That’s what I’m trying to solve with Varelyo.&lt;/p&gt;

&lt;p&gt;If you’ve run into the same issue with Claude Code, Codex, or other AI coding tools, I’d be interested to hear how you’re handling it.&lt;/p&gt;

&lt;p&gt;You can also check out Varelyo to see the approach in practice.&lt;/p&gt;

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