Inspiration
I'm a Software Engineering student, but this idea came from something much smaller I could never actually keep track of what was clean in my own closet. I'd end up rewearing something dirty or washing something that didn't need it, because I had no real system, just guesswork. I wanted an app that didn't just list my clothes but actually enforced the habit something that would flag an item as dirty once I'd worn it too many times, instead of leaving that call up to me. Build Week gave me the reason to actually build it, and it happened to line up with the first time I seriously used an AI coding agent instead of writing every line by hand.
What it does
Closetise lets you add clothing items with a photo, category, and description, and set a max wear count per item. Once you hit that limit, the item automatically locks to "dirty" so you can't accidentally mark it clean. You can track laundry state and location too marking something as "cleaning" automatically moves it to the washer and resets its wear count back to zero. It keeps a "last worn" date, lets you filter by category or state, sort alphabetically, pull up recently worn items, and search by name. It's installable as a PWA, so it goes right on your phone's home screen like a native app.
How we built it
Plain HTML, CSS, and JavaScript no frameworks, no build step, no backend. Data lives in localStorage. I split the work deliberately: I hand-wrote all the HTML and CSS myself (the design system, modal layouts, card templates, dark mode support), and used Codex specifically for the JavaScript state management, event handling, the localStorage logic, and the business rules around wear count and laundry state.
I treated Codex like a collaborator, not an autopilot. I'd describe a feature or rule in plain language, review every diff it proposed before approving it, and manually test each change before moving to the next one. I used git commits as checkpoints throughout, so I could isolate exactly which change broke something if it did.
Challenges we ran into
The wear-count and laundry-state logic was the trickiest part of the whole project a lot of interacting conditions (max wear, current wear, state, location) that all needed to agree with each other. I'd specify a rule, Codex would implement it, and I'd stress-test it by hand. At one point I caught a real gap: the "dirty-lock" only reacted when I manually touched the state dropdown, not when wear count itself crossed the max via the up and down buttons. I flagged it, and Codex fixed it.
I also ran into a genuine environment bug Codex's built-in patch tool kept silently failing in my Windows sandbox setup, applying partial changes with no error message at all. I only caught it because I compared the file's actual contents against what should have changed. Once I saw that, I had Codex switch to rewriting whole files instead of patching them incrementally, which fixed the problem for good and became a pattern I stuck with for any risky change afterward.
Accomplishments that we're proud of
Getting the wear-count and laundry-state logic to actually work end to end is what I'm most proud of , it sounds simple, but there were a lot of edge cases (what happens at exactly the max wear count, what happens if max wear is never set, what happens when someone picks "cleaning" while locked to dirty) and I worked through every one of them by hand rather than letting it slide. I'm also proud that I stuck to my own division of labor the whole way through hand-writing every line of HTML and CSS myself while Codex handled the JavaScript instead of just letting the agent take over everything, since the goal was to actually build something and understand it, not just ship something. And I'm proud I caught real bugs along the way, like the silent patch failures and the dropdown-only lock, instead of shipping something broken because Codex said it was done.
What we learned
This was my first real project using an AI coding agent, and the biggest lesson was that reviewing its output matters as much as prompting it well. Codex is fast and often gets non-trivial logic right on the first try, but it's not infallible the silent patch failures and the dropdown-only lock bug both would have shipped broken if I'd just accepted the diffs without testing. I also learned a lot about localStorage's real limits (image size, quota errors) and about PWA installability requirements (manifests, service workers, icon sizing) that I hadn't worked with hands-on before.
What's next for closetise
A manual dark mode toggle instead of just following system preference, porting it to a real app with Capacitor for camera and file system access so friends can install it directly, and possibly a shared wardrobe feature between multiple people down the line, which would mean moving off localStorage to a real backend.
Log in or sign up for Devpost to join the conversation.