Wojciech Janoszek | Nov 17, 2025

The state of AI design tools in 2025: How they help my workflow

I’ve spent the last months testing AI design tools like Figma Make, Builder.io and Stitch in real projects. Here’s what actually works, what breaks, and how these tools fit into my design workflow today.

← Go back

How I design with AI today: Figma Make, Stitch, Builder.io and friends

AI design tools are everywhere right now. Every week there’s a new “design a full app from a sentence” demo on Reddit.

I’ve spent the last months actually trying to use some of them in real projects – not just for pretty screenshots, but to ship real pages and components.

This article is about how that’s going in practice: what’s actually stuck in my workflow, what I’ve quietly dropped, and where these tools genuinely help me design faster.

I’ll focus on three tools I’ve used the most:

  • Stitch
  • Builder.io
  • Figma Make

I’ve also tried things like Lovable and Bolt, but not enough to form a solid opinion, so they won’t be the main characters here.


What I actually want from an AI design tool

Before judging any of them, it helps to be clear about the job I expect AI to do for me.

Roughly, I’m looking for three things:

1. Fast ideation
If I have a vague idea for a hero section, a pricing block or a dashboard card, I want to go from “I kind of feel it in my head” to “here are three concrete versions to iterate over” in minutes, not hours. That’s the biggest value for me: compressing the early exploration phase.

2. Aesthetic defaults
If I don’t specify every component and constraint, the result should still look at least “modern and decent”. Not perfect, not portfolio-ready – just something that doesn’t feel like a random bootstrap theme from a decade ago.

3. Something I can actually take over
This one is important. I don’t really care if the tool gives me “production-ish” code. I care that whatever it generates is something I can own afterwards:

  • a design I can open and refine by hand,
  • or at least a codebase that’s good enough to iterate on.

The code output is nice to have, but the non-negotiable part is: can I grab the design AI made and continue working on it in my daily tools?

I don’t need – and honestly don’t want – the tool to replace me. If it can reliably take me from 0% to 60%, that’s ideal. It means I can iterate through many different ideas for that first 60% very quickly, and then spend my time on the last 40% where taste, context and small design decisions actually matter.

With that in mind, here’s how each tool feels.


Stitch: worst of the bunch (for how I work)

On paper, Stitch sounds just like the others: describe the UI, get a visual layout back. In reality, it’s been the most frustrating of all the tools I’ve tried.

The first problem is how much hand-holding it needs. To get anything remotely usable, I have to describe every part in painful detail – spacing, alignment, relationships between sections, button hierarchy… to the point where it’s simply faster to open Figma and design it myself. That defeats the whole purpose of using AI for brainstorming.

And even then, the results are often simply bad. Not just bland – straight up ugly.

Colors often clash in weird ways, as if it’s picking random values from a palette without thinking about balance. Elements feel randomly placed: visuals misaligned completely, sections not really talking to each other, hierarchy that doesn’t make sense. Out of all the tools I’ve tested, Stitch consistently produces the worst-looking layouts.

That makes it almost useless as a source of inspiration. You can’t just say “give me three takes on this hero idea” and quickly spot an interesting direction. You have to over-specify everything, and what comes back still doesn’t look like something you’d want to build on.

To be fair: Stitch does export static HTML. But that doesn’t really solve the problem. You don’t get design files you can refine, and you can’t meaningfully edit the result in-place as a designer. You end up with a static output that’s not nice enough to ship and not convenient enough to iterate on.

So for me, Stitch has fallen out of my rotation. I don’t use it for real work anymore.


Builder.io: decent foundation

Builder.io sits one level above that. When I keep the scope simple and my expectations modest, it can be useful.

If I ask it for something straightforward – a minimal landing page, a clean feature section, a simple layout – it can generate results that look quite decent. Not mind-blowing, but absolutely usable as a foundation. For simple, minimalistic layouts, it does a surprisingly okay job.

One thing I like is that Builder.io doesn’t stop at visuals. It generates a full website in a framework – and, importantly, you can pick the framework. So if I want Svelte instead of React, I can get a Svelte project out of it, which is something Figma Make doesn’t offer right now. That alone makes it interesting when I know I want to continue in code quickly.

Where Builder.io breaks down is when I try to do anything visually unusual.

As soon as I introduce non-standard elements – more expressive shapes, unexpected section transitions, bolder patterns – the layout starts to fall apart. Things get chaotic very fast. Elements land in strange places and the page starts looking like a fever dream. The tool clearly has a limited understanding of anything that’s not “standard marketing layout with safe components”.

The upside is that I do end up with an actual codebase made in my framework of choice. Even when the design isn’t quite there yet, I have a running project with a basic structure quicker than I would code it by hand.

The downside however is that it isn’t much different that what can be done with Claude Code or Codex. All of these can be used as a scaffolding tools, and from time to time can give me a valuable concept I didn’t think about for the layout, but I wouldn’t trust it with designing anything visually ambitious.


Figma Make: an actual brainstorming partner

Figma Make is the first AI design tool that feels like it fits naturally into how I think about pages and components.

Most of the time when I open it, I’m not in “production mode” yet. I’m still figuring out what I even want. I might know the story a section should tell, but not the exact shape of it. That’s where Figma Make works well: it behaves less like a generator of final designs and more like a partner in the early brainstorming phase.

Instead of writing pixel-perfect specs, I describe the intent. For example:

“A testimonial section for a B2B analytics tool. Dark background, feels calm and credible, one main quote with a face and smaller logo, maybe some fitting visual element around.”

I’m not telling it how many columns to use, or what the exact typography scale should be. I’m just giving it a direction. Figma Make can take that and produce a few variants that are already structured, visually coherent, and surprisingly close to something I’d consider “good bones”. When I tell it that the section feels empty, but don’t yet have an idea for what to include, it can even come up with valuable propositions.

And that’s the important part: it can actually iterate. I can say “this one should draw more attention”, “this one needs more white space”, “combine the framing from option A with the layout from option B” – and very quickly I’m iterating on a concrete section instead of staring at an empty frame in Figma. I get initial visualisations of my ideas, and concepts I didn’t think about, while others tools would already start to fall apart.

Also a couple of things make it quite useful:

  • Similar to Builder.io, it can generate a functional website in React. The code isn’t perfect, but it runs, and it’s good enough as a playground or when I need a quick prototype. Unfortunately it doesn’t work with Svelte.
  • It can import Figma Frames directly. No need for any plugins, just simple Cmd + C, Cmd + V, and I have it using my actual components, or building upon an existing page design.
  • It can export the result into Figma Design. That’s huge. I can move from brainstorming on AI-generated concepts to polishing classic Figma components in a couple of clicks.

Because of that, Figma Make has changed how I start new pages. I don’t spend nearly as much time building moodboards or scrolling Dribbble for hours. I still look at references, but now I can quickly express “this is the kind of thing I want” and have the tool show me options.

I rarely treat what it generates as the final version. I use it to get to “reasonable first draft” very fast, then move over to Figma Design and polish by hand. That alone speeds up my process a lot.


How these tools fit into my week-to-week work

At this point, my usage has sorted itself out naturally:

  • I’ve basically dropped Stitch. It’s too frustrating to prompt, the outputs are ugly, and I don’t get usable design files out of it.
  • Figma Make is where I start most new layouts or sections when I’m still exploring the direction. It’s my main brainstorming companion.
  • Builder.io shows up occasionally when I want to compare results with Figma Make, or previously when I explicitly wanted a Svelte (or other) codebase I can start coding on right away. Now I mostly use Codex for that though.

As for Lovable, Bolt and similar tools: I’ve played with them, but not deeply enough to integrate them into real projects. They feel more like “build the whole app” environments than tools that slot into my existing Figma-first flow, so I’m keeping them on the sidelines for now.

Day to day, it’s mostly a Figma Make → Figma Design → real code with Codex pipeline.


My current AI-assisted design workflow

The workflow itself is pretty simple, but it made a noticeable difference in how fast I can move.

1. Explore ideas in Figma Make

I start in Figma Make when I’m still in exploration mode. I describe rough ideas, not final concepts: a hero, a pricing block, a feature grid, a testimonial row. Sometimes I paste some existing components, or a frame of the general tone I want to follow, and let it propose a few options, regenerate variations, and mix & match ideas until one or two directions feel promising.

The goal here is not perfection. It’s about seeing a lot of possible shapes quickly: “what if this was more minimal?”, “what if that grid item would have badges instead of text”, “what if the testimonials were horizontal instead of stacked?”. Figma Make is good at helping me ask those questions fast.

2. Move the promising bits into Figma Design

Once something clicks, I export it into Figma Design and treat it like any other design. This is where the “real work” starts:

  • I clean up spacing so it’s consistent with the rest of the product.
  • I create and align components to the design system I already have, or start creating a new one.
  • I refine typography, states, micro-interactions and all the small details that make the UI feel intentional instead of generated.

The AI has already taken care of the generic palette, layout roughness and basic composition. My job at this point is to make the section belong to the product, not just to “nice landing pages in general”.

3. Translate the final design into code

From there, it’s normal implementation work. Sometimes I’ll also peek at the React code Figma Make produced, ask Codex to quickly translate it to Svelte or Angular, but I treat those as references, not as something I copy 1:1.

The important part is that I don’t start from a blank canvas in either design or code. By the time I’m coding, the structure and visual language have already been stress-tested through a few AI-assisted iterations.


Where AI still fails (and why I’m fine with it)

Across all of these tools, there’s a clear line where they stop being helpful.

They’re pretty good at suggesting layouts, filling empty space with reasonable patterns, proposing concepts, and remixing known design tropes into something that looks modern. They’re not good at the last layer of judgment that makes a screen feel done.

They don’t really understand:

  • which part of the story matters most to this product,
  • what should be removed rather than added,
  • when the layout is visually balanced but emotionally wrong.

They can get you to “this looks okay” quite fast. They can’t tell you when “okay” is not enough.

So you still need someone to make the final call on copy, hierarchy, small interactions, and all the details that separate a solid interface from something people actually enjoy using. That’s the part I’m not sure I want to outsource anyway.


From AI-generated layouts to stable products

There’s one more side effect worth mentioning.

These tools make it really easy to ship something that looks like a real product very early. That’s great for demos and early traction. But if the underlying code and structure are messy, it becomes hard to maintain and extend once real users show up.

That’s why we started Spin by fryga – our consultancy for founders whose vibe-coded or AI-generated products started to hurt under real usage. We actually like these tools and use them too. They make the first iterations much faster. But at some point, you need to turn AI-assisted layouts into a product that’s stable, maintainable, and ready for the next feature.