All posts
ProductMay 25, 20269 min read

How to Build a Good UI Without a Designer

You do not need to be a designer to ship a UI that looks right. Here is the process I use, the taste you can borrow, and where you still need a real one.

Jaideep
Founder, Krit

I am not a designer. I never trained as one, I cannot draw, and for years I quietly believed that meant anything I built would look slightly off. Good enough to function, never good enough to be proud of.

That turned out to be wrong, and figuring out why it was wrong changed how I build products. You do not need to be a designer to ship a UI that looks right. You need a process, a small amount of borrowed taste, and the discipline to keep cutting. Here is what actually works for me.

Taste is not a gift, it is a library

The thing people call taste is mostly a big mental library of examples. Designers have looked at thousands of interfaces closely enough to know what good feels like and what cheap feels like. That is it. It is pattern recognition, and pattern recognition is learnable.

So the first thing I did was build my own library on purpose. When a product feels good to use, I stop and ask why. The spacing? The restraint with color? The way one thing is clearly the most important thing on the screen? I keep a folder of screens I admire, and I steal structure from them shamelessly. Not pixels. Structure.

Constraints do the heavy lifting

Most ugly interfaces are not ugly because of one bad choice. They are ugly because of fifty slightly inconsistent ones. Six font sizes that are all a little different. Padding that is 12 here and 14 there for no reason. Four shades of grey doing the same job.

The fix is almost embarrassingly simple. Decide the rules once, then never improvise. I pick a small set of values up front and refuse to use anything outside it:

  • A spacing scale, usually multiples of 4. Every gap and pad comes from that list and nowhere else.
  • Three or four type sizes, total. A big one, a body one, a small one, and maybe a tiny label.
  • One accent color, used sparingly, plus a few greys. That is the whole palette.
  • One border radius and one shadow. Reuse them everywhere.

It feels restrictive for about a day. Then you realize the restriction is what makes everything quietly match. Consistency reads as polish even when no single element is fancy.

Where the AI agent comes in

This is the part that genuinely changed for me recently, and it is most of why I am building Krit. An AI agent can do the part I am slow at, which is producing the actual markup and styling, while I do the part I am decent at, which is judging whether the result is right.

The loop is simple. I describe what I want in plain language. The agent draws it. I look at it and react. Then I steer with small, specific notes until it is right. I am not pushing pixels anymore. I am directing, the way a non-designer founder can actually direct, with words and judgment instead of a vector tool I never learned.

The skill that matters here is describing what you want precisely. Make it nicer gets you nothing. The header feels cramped, give it room to breathe and make the title the clear focus gets you somewhere. You are learning to brief, which is a real skill, and a much faster one to pick up than learning to draw.

Real content, early

Here is a mistake I made constantly. I would design with fake, tidy placeholder text, everything a neat seven characters long, and it would look great. Then I would drop in real data and the whole thing fell apart. Long names wrapped. Empty states I never designed showed up. The numbers did not line up.

Now I use real content from the first draft, including the ugly cases. The longest plausible name. The empty state when there is no data yet. The error when something fails. If the design survives the real content, it will survive your users. If it only works with placeholder text, you have designed a screenshot, not a product.

Placeholder text is a liar. It makes everything look finished before it is.

Where you still need a real designer

I want to be honest, because the I-do-not-need-anyone framing is a trap too. There is a ceiling to what process and borrowed taste get you, and a great designer lives above it.

For the everyday work, shipping a settings page, a dashboard, a clean signup flow, you can absolutely do it yourself now and have it look genuinely good. Where a designer earns their keep is the harder stuff: a brand that feels like nobody else, a novel interaction that has no obvious reference to borrow, the identity of the whole product. That is taste at a level you cannot fake in an afternoon.

So my honest rule is this. Do the 90 percent yourself, fast, and get it shipped. When you hit the 10 percent that is genuinely about craft and identity, bring in someone who has spent ten years building the library you have not. Knowing the difference is most of the skill.

The short version

Build your own library by looking at good work and asking why it works. Set hard constraints and stick to them. Let an agent handle the markup while you handle the judgment. Use real content from day one. And be honest about the ceiling, so you know when to call in a pro. None of that requires you to be a designer. It just requires you to pay attention.

Build it on the canvas

Tell your agent what to design. Watch it appear.

Krit is the infinite canvas your AI agent draws on. Prompt it, refine it, ship it to code.

Try Krit free for 7 days