Personal · AI wardrobe stylist · 2026

Miroo

An AI wardrobe stylist that gets you out the door. Snap one piece, and Miroo builds the full look — matched to your occasion, the weather, and an honest opinion you can actually trust.

Role
Sole designer + builder
Built with
Vibe-coded with Claude Code · React Native (Expo) · 2026
Status
Working prototype · live AI pipeline
01 — The pain

A full closet and nothing to wear.

Most mornings the bottleneck isn't the clothes — it's the decision. You're holding one piece you like and you can't tell what goes with it, whether it's right for where you're going, or whether the whole thing is working at all. So you default to the same three outfits.

The apps that promise to fix this ask for the opposite of what that moment can give: photograph your entire wardrobe first, tag every item, then maybe get a suggestion. Or they're shopping funnels wearing a stylist costume — every answer ends at a checkout.

I wanted a second opinion in the sixty seconds I actually have.

So I designed and vibe-coded one — a stylist that works from a single snap, tells the truth, and never makes setup the price of admission.

02 — Three key features

What makes it a stylist, not a closet app.

Three features carry the product — and each one started as a refusal of how wardrobe apps usually work.

Feature 01 · 60-second snap

Snap first. The wardrobe builds itself.

No 200-item setup before the app is useful. Start with an empty wardrobe, snap the one piece you're holding, and in about a minute you get three rated looks. Save one and the pieces land in your wardrobe automatically — so the catalog fills up as a by-product of getting dressed, never as a chore you do up front.

9.2
Effortless polish
✓ Wear it

"Cohesive palette, clean proportions — quietly expensive. This is the one."

3.4
Off for the occasion
Not for this

"Gym shorts for a dinner reservation. Comfortable — but it reads as undone."

Feature 02 · Honest rating

A number you can actually trust.

Every look gets a 1–10 score and a one-line verdict — and the score is allowed to be low. A 9.2 means walk out the door; a 3.4 says this isn't it, and why. The colour does the talking before you read a word: sage for go, grey for no.

Honest, not harsh — incompleteness gets a fix, never a low blow.

Feature 03 · Mirror check

Already dressed? Get a second opinion.

Stand in front of the mirror, snap your full outfit, and Miroo scores the whole fit — silhouette, colour story, occasion fit, and finishing — with a fix for the weakest part. It's the gut-check you'd ask a stylish friend for, on demand.

The product

Editorial, not utilitarian.

A wardrobe app that feels like a fashion magazine, not a spreadsheet. Below are real screens — styled looks, the wardrobe, and saved outfit sets — rendered live.

Live mockup · Style Me, Wardrobe, Outfit Sets
03 — Decisions made by negation

What I refused to build.

Every NO is a design decision. These six are the spine of Miroo — they're what kept it from becoming another catalog app or another store.

No 200-item setup before it works

Most wardrobe apps make you photograph your whole closet first. Miroo styles a single snap. The catalog is a payoff, not a toll gate.

No flattery

Ratings go all the way down. An honest 4 with a reason beats a polite 9. The colour of the verdict — grey, periwinkle, sage — tells you the truth before you read a word.

No infinite shopping feed

Suggestions are pairings for what you own, not a storefront. When Miroo names a missing piece, it's to complete a look — not to sell you one.

No suggestion shown twice

Every look you reject is banned for the rest of the session — by name, by combo item, by renamed-and-rerated lookalike. "Not feeling it" actually means something.

Weather is never optional

Looks factor your real local temperature and conditions. A great outfit for the wrong weather is a bad outfit.

No account wall to try it

Free to start, no credit card, sample photos one tap away. You can feel the whole loop before deciding to commit a single thing.

04 — The honest stylist

The colour is the verdict.

A good stylist friend tells you the truth kindly. Miroo encodes that in colour: every rated look is washed in one of three tints, so you read the verdict before you read a single word.

1–3
Wrong for the occasion

Pyjamas to a wedding. Said plainly, in muted grey — no shame, just a no.

4–6
Works — with a tweak

Good bones. One swap from great, and the note tells you which swap.

7–10
Wear it

Cohesive and occasion-ready. The one to walk out the door in.

Honest, not harsh. The "own" card rates what you already have — and the prompt is tuned so a stylish single item that's merely incomplete scores a fair 5–7, not a punishing 2. Incompleteness gets a missing-piece suggestion, never a low blow.

05 — The AI pipeline

One snap, four moves.

The magic isn't one model call — it's a small chain of them, each checking the last. Designers don't usually talk about token cost or rate limits, but here they are the experience.

On device

1 · Snap a piece

One tap, one garment — flat lay, on a hanger, or worn. The photo is added to your wardrobe instantly with a placeholder name.

free
Vision call

2 · See the clothes

GPT-4o vision describes each item — name, category, colour, style, and a Pexels-ready search query so labels match reality.

GPT-4o-mini
Reasoning call

3 · Build the looks

A stylist prompt returns three distinct cards: an honest verdict on what you own, plus two upgrades that pair it with one new piece.

GPT-4o-mini
Image search + verify

4 · Show, then check

Each suggested piece is fetched from Pexels, then re-described by vision so the caption matches the photo that actually came back.

Pexels

The details that make it feel real: a verify-the-image pass so captions never lie about the photo Pexels returned; a running seen-suggestions set so a rejected look can't sneak back renamed or re-rated; staggered requests and low-detail vision to keep it fast; and a full demo-data fallback so the app is never just a spinner that failed.

06 — Weather-aware styling

The right look for the actual day.

A great outfit for the wrong weather is a bad outfit. Miroo pulls your local conditions and folds them straight into the styling prompt — fabrics, layers, and footwear all shift with the forecast.

🌦️
14°C
Light rain · feels cool

Wear a light jacket or cardigan + a waterproof layer. Miroo will factor this into every look.

Location stays on-device via Expo; weather comes from Open-Meteo — free, keyless, no tracking. A WMO weather code is mapped to a human verdict ("Wear a warm coat and cosy layers") and a one-sentence instruction the model reads before it styles a thing.

It's a small touch that does a lot of work: the difference between a stylist who knows it's raining and one who doesn't.

07 — Visual language

Cream, ink, and one periwinkle.

A warm editorial palette and a single playful accent — Playfair Display for the magazine voice, Jost for the quiet UI. It signals "this has taste" before you read a word.

Cream
#F0EBE3
Ink
#111111
Periwinkle
#8C8EE8
Sage
#2D7D58
Display · Playfair Display Black
good morning.
Accent · Playfair Display Italic
in 60 seconds.
UI · Jost (shown as Geist)
Snap · Style · Done
08 — What changed

What vibe-coding taught me about design.

Building this solo with Claude as my engineer moved the line between "design" and "build" — and put new decisions on my side of it.

01

I designed the AI prompt like a brand voice. "Be direct, confident, fashion-forward" is a design decision, written in the same file as the layout.

02

Cost and latency became layout problems. Staggering Pexels calls by 200ms and using detail:"low" vision aren't engineering footnotes — they're what keeps the results screen from feeling slow.

03

Fallbacks are part of the design, not an afterthought. Every call has a graceful demo path, so the app is never a spinner that fails.

04

I could test taste in minutes, not sprints. "Does an honest 4 feel kind or cruel?" is answerable when you can change the prompt and re-snap immediately.

The best stylist isn't the one with the most clothes — it's the one who tells you the truth in the time you have.

— Manjia Zhao · 2026