M

The $1M App Design Playbook - Fix Your App Design In 24 Hours

10 min readView source ↗

Cover image

I can tell when an app was vibe coded in about 3 seconds (and so can your users).

They make that judgment before your onboarding loads, before your paywall renders, and before your one life-changing feature gets a chance to change anything.

Quick disclaimer: I'm a marketing and ops guy, design was never my job with Cal AI (and thank God for that).

But I spent two years staring at funnel metrics, and design problems showed up in those numbers over and over again.

We ran over 100 paywall A/B tests at Cal AI.

Screens that looked credible beat screens that looked cheap, even when the text was nearly identical.

Article image — "Prayer lock is a great example of solid mobile app design"

> If you take one thing away from this article, it’s that design is a trust signal, and trust is what converts.

The good news is that the difference between "looks vibe coded" and "looks like an actual designer built it" is a short list of decisions.

You just need to know what to look for.

Let's get into it.

The 3-second judgment is real (and measurable)

Researchers have known for almost two decades that people form a visual judgment of a screen in about 50 milliseconds.

Congrats, you’re dealing with the subconscious mind (good luck).

And that first impression sticks.

Once someone decides your app looks cheap, everything after gets filtered through that judgment.

Here's how that plays out in app metrics:

> Users spend roughly 3 to 6 seconds on your App Store page before deciding whether to download.

> The majority never scroll past your first screenshots.

> An icon change alone can move install conversion 15 to 30% in either direction, per ASO testing data.

Remember the benchmarks that matter: 5 downloads per 1,000 views, 75%+ paywall rate, 10% paywall conversion.

Article image

If you're running good marketing and still missing those numbers, cheap-looking design is one of the most common silent killers.

Nobody DMs you or leaves a review saying, "your spacing was inconsistent so I didn't subscribe," they just leave.

Why every vibe coded app looks the same

When you ask an AI tool to build you an app with no design direction, you get the statistical average of every tutorial it trained on.

Article image

That average has a look:

> Purple-to-blue gradients

> The Inter font on everything

> A centered hero with a little badge above the headline

> Exactly three feature cards

> Cards with colored left-border strips

> Dark mode by default with glowing borders

It's gotten so recognizable that Anthropic (the company behind Claude) shipped a design guide for its own coding tool that reportedly bans Inter and purple gradients outright.

When the company that makes the AI is telling the AI to stop doing the default thing, you should probably stop shipping the default design.

Being lazy with your design (outside of building an MVP) signals to potential customers that nobody cared to look at this before it shipped.

Users can't always articulate it, but they feel it.

The same instinct that tells you a dropshipping site is sketchy tells them your app is sketchy.

The 6 decisions that fix 90% of it

Follow this workflow to fix most of your app design issues:

> 1. One font family, two weights, aaaand stop

If you're building for iOS, the highest-trust font is the one Apple ships: SF Pro (or SF Pro Rounded if you want friendlier typography).

It's free, it's native, and it makes your app feel like it belongs on the phone.

Want personality? Get it from your display headlines on marketing pages, never inside the app.

> 2. Pick a spacing unit and never break it

Use a 4px or 8px base. Every margin and padding setup.

If your app feels "off" and you can't say why, this is usually why.

Inconsistent spacing is something the subconscious mind picks up on because it crazy symmetry.

> 3. Define color tokens once, then forbid hex codes

You need about 8 named colors: background, surface, border, primary text, secondary text, brand, brand hover, destructive.

Every component points at the tokens.

Once you hardcode a hex value inside a component, you've started the drift that ends in "why does this app have 6 shades of gray?"

> 4. One border radius, EVERYWHERE

Pick 8px or 12px and apply it to every card, button, and input.

Mixing sharp and round in one screen is one of the fastest cheap tells there is.

> 5. One icon set and one shadow scale

Grab all your icons from a single library.

Shadows communicate elevation, so use one size for cards and one for modals, and stop decorating with them.

> 6. Every interactive element reacts

A dead interface reads as a broken interface.

AI-coded design elements rarely have taste and understand nuance, that’s where you come in.

Don’t forget about Native Feel

Here’s a little extra design sauce of the top %1 of apps, plus most of the design advice going around right now is geared towards websites.

Your app sits on a home screen next to Instagram, YouTube, and iMessage, apps with hundred-person design teams.

Users don't consciously compare you to them, but their thumbs do.

The apps that feel premium pass a set of checks most vibe coders have never heard of:

> Squircle corners

Apple's corners aren't plain rounded rectangles, they're continuous curves.

In React Native it's one line: borderCurve: 'continuous'.

Almost no AI-generated app does this, and it's one of the subtlest premium tells on the platform.

> Haptics on meaningful actions

When the UI looks polished but feels dead, missing haptic feedback is usually the reason.

A light tap on completing an action makes the app feel alive.

> Numbers that don't jitter

Use tabular numerals for counters, timers, and stats so the digits don't shift as they change.

> Respect the safe areas

Content that crowds the notch or the home indicator screams web page in a wrapper.

> Native navigation

Real headers, real tab bars (five max), and sheet-style modals for secondary screens.

Reinvented navigation always feels foreign.

> Tap targets at 44pt minimum

Apple's rule - break it and your app feels fiddly in a way users blame on "buggy."

And one currency note: Apple's Liquid Glass redesign (iOS 26) is the biggest visual overhaul of the platform in a decade, and adoption is being pushed hard.

Apps that ignore it are going to look dated fast.

If you're vibe coding an iOS app in 2026 and your AI is producing 2023-era screens, you're shipping an old app on day one.

Make the AI follow a system (the actual workflow)

Everything above is worthless if you have to manually enforce it, because you won't.

The fix is to make the design system part of the codebase, so the AI enforces it for you.

This is the workflow I'd hand any founder vibe coding an app today:

> Step 1: Steal like a professional

Before you generate a single screen, go study the top 5 apps in your category on Mobbin (it's a library of hundreds of thousands of real screenshots from top apps, searchable by flow).

Article image

Look at their onboarding and paywall.

You're doing the same research for design that you should already be doing for marketing: find what's working, understand why, then adapt it for your product (and always be testing variants).

> Step 2: Write a design.md file

One markdown file in your repo that defines your fonts, your spacing unit, your color tokens, your radius, your icon library, and your animation rules.

Then one line in your AI tool's instructions: "Follow design.md for all UI work."

This single file is the difference between an app that drifts into slop and one that stays consistent across a hundred AI-generated screens.

> Step 3: Generate your tokens with a theme tool

Tools like tweakcn let you visually build a token set and export it, so you're never shipping the default gray theme every other vibe coder ships.

Article image

> Step 4: Audit weekly with the tell list

Open your app, then spend twenty minutes checking the list from earlier: fonts, spacing, tokens, radius, icons, states.

Spend your design effort where the money flows

At Cal AI we built in this order: paywall first, onboarding second, product features third, in-app experience last.

We didn't seriously polish the in-app experience until we were already crushing it.

Apply a similar priority for your app design:

> First: your icon and screenshots

These convert before anyone touches your app, and they're the highest-leverage design surfaces you own.

Your first three screenshots do most of the work, so treat them like ad creative: one clear outcome or benefit per screenshot, big captions at the top, and A/B test them with Apple's built-in product page testing.

> Second: your onboarding and paywall

Your design's job here is to make each screen feel effortless and inevitable, so the friction you deliberately add (the questions, the plan reveal) never feels like work for the customer.

A beautiful paywall on top of an ugly onboarding converts like an ugly paywall.

> Third: the first 10 seconds inside the app

If your one life-changing feature is wrapped in a screen that looks like a settings page, you’re in trouble.

First impressions inside the app also matter more than you might think.

> Last: everything else

The settings screen doesn't need to be gorgeous.

Your paywall does.

Perfectionists polish evenly across the whole app and run out of time.

Operators polish in funnel order.

One warning before you go token-crazy

Design debt is real, but so is design procrastination.

I've watched founders spend three weeks choosing colors for an app nobody has downloaded yet.

The system in this article is designed to be set up once, in a weekend, and then enforced automatically.

If you're on week two of tweaking your design.md, you've turned a trust signal into a hiding place.

Ship the app.

And when the machine starts working, hire the cracked designer.

I've said it before: you'll never regret it, and it's still one of the most underrated hires any consumer team can make.

AI keeps getting better at design, but taste is still the bottleneck.

Save this: the full checklist

The system (set up once):

  1. One font family, two weights (SF Pro on iOS)

  2. 4px or 8px spacing scale, no arbitrary values

  3. ~8 semantic color tokens, zero hardcoded hex values

  4. One border radius everywhere

  5. One icon library, one shadow scale

  6. Every interactive element has a pressed/hover state

The native layer:

  1. Continuous (squircle) corner curves

  2. Haptics on meaningful actions

  3. Tabular numerals on all counters and stats

  4. Safe areas respected, native navigation patterns, 44pt tap targets

The workflow:

  1. Study the top 5 apps in your category on Mobbin first

  2. Write a design.md and make your AI tool follow it

  3. Generate tokens with a theme tool, never ship defaults

  4. Weekly 20-minute audit against the tell list

The priority order:

  1. Icon and screenshots, onboarding and paywall, everything else

A well-designed app tells users that someone careful built it.

And people hand their credit cards to people they trust.

You already know distribution is the game.

But good design is what conveys trust that converts in the 3 seconds after distribution does its job.

  • Jake

Related articles