Every morning, I get asked the same question: "What am I going to wear?"
Her closet is full of potential outfits, but choosing takes time, she doesn't want to repeat an outfit, and she wants whatever she wears to feel like her.
So I built her something. It's called ClosetCue.
I started it for the Hacktoberfest Build for a Friend challenge. I missed the submission cutoff by about twenty minutes, so this isn't an entry. I still wanted to share it, because it's the project I'm proudest of so far.
I asked her first
Before writing any code, I asked my sister what the problem actually was. Her answers became the product:
- Choosing outfits for school mornings and for going out is hard.
- Not repeating outfits is a big worry.
- Choosing what to wear is stressful.
- Her two main occasions are school and shopping / going out.
- Style matters most to her.
- She's willing to photograph her entire wardrobe.
- Her dream feature: an outfit waiting for her every morning.
The problem wasn't "nothing to wear." It was decision fatigue.
What ClosetCue does
She photographs the clothes she already owns. A local AI model reads each photo and writes a caption: category, type, colour, pattern, style, season. She can correct anything it gets wrong. She picks the styles and moods she loves, and then the app styles a look for School or Shopping / Out, using only clothes she actually owns.
She can tap Wear this to file the outfit, or Try another and tell it why. Every look she wears goes into an archive, so the app remembers.
The AI doesn't get to break the rules
The decision I'm happiest with was splitting the work on purpose:
| The AI handles | Plain code handles |
|---|---|
| Reading clothing photos | Storing the wardrobe |
| Proposing outfits | Remembering what was worn |
| Explaining why a look works | Blocking repeats |
| Checking an outfit is complete (top + bottom or a dress, plus shoes) | |
| Ranking and validating |
The AI proposes four outfits. Then code throws out anything invalid or recently worn, ranks what's left (pieces she hasn't worn lately and her chosen styles score higher), and shows the best one. No complete outfit repeats within 14 days, and every look comes only from her real closet.
If I'd let the AI do everything, it would eventually suggest a jacket she doesn't own. Putting the rules in normal code means they can't be ignored.
Why open-weight matters here
ClosetCue runs an open-weight Gemma model on my own laptop through Ollama. It costs nothing to run, needs no account or paid API, and her photos are read on the same machine that stores them.
I'll be exact about what that means. Photos and the database stay on my laptop. The AI runs locally, so nothing is sent to an AI service. The browser does load the typefaces from Google Fonts, and downloading the model the first time needs internet. It's also a single-user local app with no accounts, so it shouldn't be put on the public internet as it is.
It had to look like her, not like a dashboard
I didn't want a chatbot or an analytics screen. I wanted it to feel like opening a magazine: a serif masthead, hairline rules, ivory paper, one oxblood accent, and big numbered photos with captions, like a fashion spread.
What went wrong
This is the part I learned the most from.
Uploads froze. At first, every photo waited for the AI to finish reading it before the next one could upload. Ten photos took forever, and reloading the page lost everything. I rebuilt it so photos save instantly and the AI reads them in a background queue on the server. It survives reloads and restarts, and unfinished pieces show "Reading…".
Outfits hung. When the AI was busy with photos, asking for an outfit just sat there. Now the AI gets 25 seconds, and if it's too slow, a simpler mode takes over. The simple mode still builds valid, non-repeating outfits, so she's never left waiting.
A hosting lesson. I wanted to put it online, then realised that would mean accounts, private storage per user, and a plan for the AI. It's a rewrite, not a setting. So it stays local for now, and that's in my "next" list.
Her reaction
[Replace this with what she actually said or did when she used it. Keep it honest, even if it's mixed.]
What's next
- Choose several pieces and build a look around all of them
- Build an outfit by hand
- Accounts and private per-user storage, so others can use it safely
- A real morning notification
Try it
The code and setup steps are on GitHub: NS007-dev/closetcue
Built with React, TypeScript, Vite, Tailwind, Python, FastAPI, SQLite, Ollama and Gemma.
If you build something for one specific person, I recommend it. Asking her what she needed did more for the project than any technical choice I made.


Top comments (0)