-
-
YiYi begins with one simple question: tell it what your day looks like in one sentence.
-
The main screen opens into a simple listening state, where the user can describe their plans, comfort needs, and mood naturally.
-
YiYi presents a clean garment cutout and its detected details for the user to review before adding it to the wardrobe.
-
Users can edit what YiYi understood about the day and immediately refresh the outfit using the updated context.
-
YiYi combines the user’s plans, the weather, personal preferences, and available clothes to present one clear outfit for the day.
-
The wardrobe organizes the user’s real clothes by category, making each item available for daily recommendations and updates.
-
YiYi turns a natural description of the day into clear context such as class, dinner, walking, and the way the user wants to feel.
I kept coming back to a small but very familiar problem: having a full wardrobe does not mean knowing what to wear. Sometimes it makes the problem worse. More clothes create more combinations, and more combinations create more decisions. That is especially frustrating in the morning, when you have just woken up and are already thinking about class, work, the weather, and whether you are going to be late.
Most wardrobe apps are good at helping people organize their clothes, but they still leave the hardest part to the user. You still have to browse, compare, and build an outfit yourself. I wanted YiYi to do something different. I wanted it to actually make the decision.
YiYi is a voice-first outfit assistant designed for low-energy mornings. Instead of opening an app and choosing every item one by one, you can simply tell YiYi what your day looks like. You might say that you have class, dinner with friends, a lot of walking, or that you want to feel comfortable but still look put together. You can also mention a specific item you already feel like wearing. YiYi takes that request, combines it with the weather, your style preferences, and the clothes that are actually available in your wardrobe, and gives you one clear outfit.
That idea of one clear outfit became very important to me. I did not want YiYi to show three equal recommendations and quietly hand the decision back to the user. The whole point is to reduce choice. YiYi should feel like asking someone who knows your wardrobe well and getting a confident answer.
The conversation also does not stop after the first recommendation. If something feels wrong, you can keep talking naturally. You can say, “I don’t want the sunglasses,” or “make the shoes more comfortable,” and YiYi changes the relevant part while keeping the rest of the outfit. Users can also correct anything YiYi misunderstood, mark clothes as unavailable, and add new garments by taking a photo. YiYi removes the background, identifies the item, and lets the user review the details before it becomes part of the wardrobe.
I built YiYi as an iPhone-first web application using Next.js, React, TypeScript, and Dexie with IndexedDB. OpenAI Realtime powers the live voice interaction. The recommendation system first applies deterministic constraints such as weather, availability, activities, comfort, formality, and items the user has required or excluded. This removes combinations that may look fine but do not actually make sense. GPT-5.6 then visually evaluates the strongest remaining candidates and helps choose the final outfit.
I wanted the system to stay grounded in the user’s real life. A visually attractive outfit can still be completely wrong if it includes a ring for basketball, a heavy jacket on a warm day, something that is currently in the laundry, or an item the user has explicitly asked to avoid. The recommendation engine therefore had to do more than produce something that looked stylish. It had to understand whether the outfit was appropriate, wearable, and consistent with what the user had actually said.
Photoroom handles garment cutouts, Open-Meteo provides weather context, and Vercel hosts the deployed app. I built the project independently in a new repository during Build Week, with Codex as my implementation partner. I made the product decisions, defined how the interaction should feel, designed the recommendation rules, and tested every major version on a real iPhone.
That testing process became a large part of the project. I would use YiYi as a real user, notice where the experience felt confusing or where the behavior contradicted the original idea, and then bring that evidence back to Codex. Codex helped implement the Realtime lifecycle, recommendation engine, local storage, motion system, tests, and deployment, but the development process was never simply asking it to generate a feature and accepting the result. It was much closer to an ongoing loop of building, testing, finding the exact reason something felt wrong, and rebuilding it.
The hardest part was not generating an outfit. It was making the experience feel like a real conversation instead of a voice recording followed by a form. Mobile Safari audio, voice activity detection, interruptions, follow-up requests, and connection recovery all created edge cases that were difficult to see until I tested them on an actual phone. The same was true for the recommendation system. A small mistake in how an activity, preference, or unavailable item was handled could make the whole recommendation feel untrustworthy.
What I am most proud of is that YiYi has a clear point of view. It is not a digital closet with more buttons and filters. It is designed for the moment when the user does not want to make another decision. The goal is to make getting dressed feel as simple as saying one sentence, receiving one answer, and changing one part if needed.
Working with Codex also taught me that vague feedback rarely leads to a good product. YiYi improved the most when I stopped saying things like “make it more polished” and instead explained exactly what felt wrong, what the user expected to happen, and why the current behavior broke the experience. Turning those feelings into clear product constraints became one of the most valuable parts of the project.
Next, I would continue improving voice reliability in noisy real-world environments, learn from the outfits users actually confirm, and eventually develop YiYi as a native iOS app. My long-term goal is for YiYi to feel less like opening another tool and more like asking someone who already understands your wardrobe, your schedule, the weather, and your personal taste.
Built With
- api
- codex
- dexie
- gpt-5.6
- indexeddb
- motion
- next.js
- open-meteo
- openai
- photoroom
- react
- realtime
- typescript
- vercel
- webrtc

Log in or sign up for Devpost to join the conversation.