Leveraging AI to automate closet organization, surface wardrobe patterns, and encourage more intentional shopping.

Duration

April 2026 — Present

My role

Research, Visual Design, Prototyping, Vibe Coding

Team

Solo :)

Leveraging AI to automate closet organization, surface wardrobe patterns, and encourage more intentional shopping.

Duration

April 2026 — Present

My role

Research, Visual Design, Prototyping, Vibe Coding

Team

Solo :)

Context

It all started with a shopping problem I kept ignoring.

Fashion has always been my my favorite form of self-expression.

After years of shopping, I started noticing patterns. I'd bring something home only to realize I already owned something nearly identical. I'd go on a thrift store run, filling my cart with pieces that felt exciting in the moment, only to donate them back to that same store months later. Turns out they never really fit who I was, just who I wanted to be that afternoon. Sometimes I'd open a shopping app and check out before I'd even consciously decided I wanted something.

The frustration eventually turned into curiosity. I started asking myself two questions: how can I actually track and recall what I own so my closet stops feeling like a mystery? And how can I build in more pause, enough space between impulse and purchase to make a decision I won't regret?

Mirror started as an attempt to answer both.

Solution Overview

Your entire wardrobe, finally in one place.

Add your clothes once and log your outfits daily. Mirror organizes everything automatically, learns your style, and builds a living picture of what you actually own and wear.

Shop with your whole closet open.

Wondering if you already own something like this? Closet Check compares a potential purchase against your existing wardrobe in seconds.

Want something bad enough to wait for it?

Save any item to your Vault and Mirror will lock it away. When it resurfaces, you'll know if you actually want it—or if you just wanted it in the moment.

Research

The research confirmed what I felt personally was actually universal.

After some quick secondhand research, I left with three takeaways:

We constantly overvalue what we own.

People systematically place higher value on items they already own. Yet in practice, most of those items go unworn.

We wear 20% of our clothes, 80% of the time.

The vast majority of what we own rarely gets touched. It’s not because we don't like it, but because we're not aware of it.

We buy duplicates because we can't remember what we already have.

People frequently buy near-identical items, especially in categories they care about. Shopping is contextual and the cognitive overhead of recalling your wardrobe is too high.

Early Ideas

My first concept was a two-part mobile app and browser extension product.

The extension would serve as the primary surface, intercepting the user at the moment before checkout answering a simple question of do you already own this? with a duplicate detection tool that would scan the user’s wardrobe for any similar pieces.

But the idea lived at the edge of the problem rather than the center of it. The moment of purchase was a symptom, and the deeper issue was a lack of visibility into what already existed in the wardrobe. That realization pushed the product toward a mobile-first solution, where persistent data and daily context made a richer experience possible.

Figma Make’s first attempt at my idea... It definitely needed more work (and maybe better prompting)

Defining the Scope

The market is full of apps telling you what to wear next.

Before committing to Mirror's features, I looked at what already exists in the wardrobe app space. A few stood out as worth studying:

Alta is an AI-forward personal stylist and wardrobe builder that suggests outfits based on your closet, budget, and the weather.

Users can get shopping recs, virtually try on clothes, and browse other people's looks. It's aspirational and social by design.

Indyx is a digital wardrobe and styling app focused on closet indexing, outfit planning, and cost-per-wear tracking.

Users can share their closets with friends and get styled by real human experts, giving it a community and service layer.

Lekondo positions itself as a "third space for fashion", less about organization and more about self-expression.

Users document outfits, develop their own style, and discover what others are wearing. It's closer to a mood board than a wardrobe tool.

All three share a common orientation: they're outward-facing. The value proposition is about discovery, social sharing, or expert guidance.

Mirror will be designed to be inward-facing, helping users understand the relationship they already have with their clothes before adding anything new to it. I used this insight to define Mirror's scope:

  • Not an outfit suggestion app

  • Not a money saving/awareness app — does not track cost-per-wear or item costs

  • Not a shopping recommendation engine

  • Not a social or sharing platform

That last point was an important one to make for me. Adding social features to a reflective tool tends to shift user behavior toward performance rather than self-awareness, which runs directly against what Mirror is trying to do.

Mirror’s design should feel editorial, not clinical.

Wardrobe apps that lean too functional tend to feel like inventory management. Fashion is personal, it's tied to identity, mood, memory, and self-expression. The language of Mirror needed to reflect that: considered and subtle, with an aesthetic that you'd find in a magazine rather than a productivity tool.

I created design principles to guide my decisions throughout my project, including copy decisions, interaction patterns, visual hierarchy, and the overall information architecture.

01

Awareness over prescription

Mirror only reflects, not directs.

02

Non-judgmental tone

Interventions and insights are framed neutrally.

03

AI-enhanced, not AI-controlled

AI handles the tedious work so users can focus on making decisions.

04

Intentionality by design

Moments of pause are intentional and should not feel punitive.

UI Exploration

I turned to my newly acquired Claude plan for rapid design exploration.

I started in Figma with a clear direction in mind: a grounding palette of warm tones and overall vibes of soft glassmorphism, editorial, and modern.

After drafting key screens to establish the foundation, I used Claude Design to quickly explore UI directions. It generated a wide range of options, some that stayed close to my original screens and some wildcards, giving me a broad surface area to pull inspiration from without having to build out every variation myself.

All designed within minutes! Still needed more work, but truly magical!

Feature Rundown

Mirror turns a personal wardrobe into a site of self-awareness and reflection: surfacing habits, detecting duplicate purchases before they happen, and creating space between wanting something and buying it.

Digitizing your closet

What do I own and am I wearing it?

Everything Mirror does downstream depends on having a real picture of what's in your closet and what you're actually wearing. Without that foundation, there's nothing to surface insights from. And, for people who love to track and organize (like me!), logging outfits isn't a chore, it's a fun daily ritual.

Wardrobe Building

Users build a digital closet by uploading photos of their clothing items.

Auto Extraction

Mirror auto-enhances the image and detects details such as season, color, and fabric.

Outfit Logging

Users log daily outfits, building their personal style history over time.

Style Detection

Mirror learns from each logged outfit, identifying and categorizing style aesthetics.

Duplicate Detection

Do I already own something like this?

Shopping happens faster than memory does. For people who constantly struggle with buying near-identical items, Closet Check gives users a quick reality check against their own wardrobe.

Closet Check

Mirror compares a prospective item against the user’s existing wardrobe using smart detection, comparing color, silhouette, and style.

Purchase Delay

Do I actually want this or am I just feeling impulsive right now?

A large portion of items people intend to buy feel less desirable after just one night. The Vault was introduced to allow users to lock items and forget about them, putting space between desire and action until the time is right to make a decision with a clear head.

The Vault

A digital holding space where prospective items are locked away for a set period of time.

Locking Mechanic

Users can set a lock period of 1, 7, 14, or 30 days.

Making a Decision

When the item resurfaces, users can then decide to buy the item or let it go.

Surfacing patterns

Why did or didn't this clothing item work for me?

Research suggests that reflecting on why something didn't work, rather than just removing it, is more likely to influence future decisions. Some people, when clearing out their closet, find themselves genuinely puzzled about why something never worked for them. The Archive gives that confusion somewhere to land, providing notes on why something may or may not have worked out.

Archive

A graveyard for items leaving your closet that generates an observational note based on various factors such as aesthetic classification, wear count, and departure reason.

Promoting Awareness

What are my actual habits and what am I not seeing?

Many people have a vague sense of their habits; Mirror makes them legible and creates self-awareness that leads to more intentional choices. I designed two ways to engage with that data depending on how a user wants to show up. Both serve the same goal, they just operate at different scales.

Insights

A dashboard of user’s longer term wearing and buying patterns drawn from wardrobe usage, outfit log data, and archive and Vault history.

Monthly Report

A visually digestible snapshot of the past month's habits, like a Spotify Wrapped for your wardrobe.

Design Decisions

Closet Check and Vault were two features that forced me to think through logic, not just layout.

They're deeply connected: a clean Closet Check often leads straight into saving the item to the Vault. But they also need to work independently, since not every Closet Check ends in a save and not every Vault entry starts with a check.

Designing for both meant thinking carefully about entry points, friction, and what each feature is actually asking users to do at each step.

  1. Designing Closet Check for multiple use cases

Closet Check needs to meet users wherever they're shopping. Online shoppers might have a product URL or screenshot on hand. Someone browsing in-store might want to scan a barcode or snap a quick photo.

Given this, I created entry points for each shopping context. The more frictionless it is to start a Closet Check, the more likely it becomes a default behavior rather than an extra step.

Pasting URL

Pasting URL

Scanning barcode

Scanning barcode

Taking photo

Taking photo

Uploading image

Uploading image

  1. Reducing friction when locking items

Once someone decides to save something to the Vault, the goal is to capture that moment of intention without making it feel like homework. Locking happens in two parts. First: choosing how long to wait before revisiting the decision. Second: an optional note on why the piece caught attention in the first place, allowing users a moment of pause to reflect.

Before

  • Four lock duration options with weak visual hierarchy

  • No tier stands out as the default, resulting in confusion or decision fatigue

  • Asking for short text input, creating extra work for users who just want to act quickly

After

  • “Custom” option removed as it was unnecessary

  • “Standard” shown as a visually larger option, making it the recommended default at a glance

  • Pills with optional text field still available for those who want to add more

  1. Leaving the decision up to the users

Once an item resurfaces from the Vault, there are only two outcomes: buying it, or letting it go. The challenge from a constraint that prospective items live as external links, not products inside the app. Mirror has no real connection to any external retailer, so "buying" was never something the app could actually do.

My fix was to treat both outcomes as the same kind of action: a dismissal. Whether someone still wants the item or has let it go, the Vault's job ends at the decision, not the transaction.

Before

  • “Buy it” routes users externally to the product page, which abruptly disrupts the decision flow

  • List view of resurfaced items could grow crowded as items stack up, making each decision feel rushed or skimmed

After

  • Users review items one-by-one, so each decision gets focused attention

  • “Buy it” changed to “Still want this”, which keeps the tone more neutral instead of dictatorial

  • Both actions simply dismiss the item, allowing the flow to move forward

Reflection

What I learned…

Mirror was my first real experiment with integrating AI tools into a design workflow and it changed how I think about the early stages of a project. I found Claude most useful as a thinking partner: someone to brainstorm with, pressure-test ideas against, and get honest design feedback from. Having that kind of back-and-forth available at any point made ideation feel a lot more fluid.

I also used Claude's design capabilities alongside Figma Make to explore visual direction early, which let me move into high-fidelity prototypes much faster than I would have otherwise.

For the future…

I'm currently attempting to prototype Mirror using Claude Code (partly out of curiosity, partly just to practice vibe coding). It's been a humbling and genuinely fun experience. Learning how to prompt correctly, structure files in a way that holds up over time, and manage token usage efficiently is its own skill set, and I'm very much still developing it. But watching a real working prototype take shape from a design I built entirely myself has made it one of the more satisfying parts of this project!

Thanks for stopping by. Let's connect!

Kelly Wang © 2026

Thanks for stopping by. Let's connect!

Kelly Wang © 2026

Thanks for stopping by. Let's connect!

Kelly Wang © 2026