CASE FILE · KM-03
Description as Digitization.
Every closet app asks you to photograph your wardrobe before it’s useful. Outfit Picker asks you to just describe it instead.
Prompt EngineeringSystems IntegrationProduct ScopingAPI DesignServerless ArchitectureSolo Development
Case File Snapshot
StakeholderPersonal Project
RoleSolo Builder: Product Definition, Prompt Engineering, Full-Stack Development
Pipeline3-Service Pipeline • Notion + Vercel + GitHub Actions
Wardrobe Digitization, GPT Outfit Assembly, Weather-Aware Weekly Planning
MethodPrompt Engineering, Validate-and-Retry Loops, Iterative Layered Shipping
OutputsNotion-Native Wardrobe App, 3 Automated Workflows
Themed as Barbie: Life in the Dreamhouse, closet included
Applied ValueTurns everyday decision fatigue into a zero-maintenance automated system
The Story
The Question
Every closet app has the same entry cost: photograph your whole wardrobe before it’s useful. What if you could just describe your clothes instead?
The Tension
Most wardrobe apps die at onboarding. Cataloging a full closet by hand is tedious enough that nobody finishes it, so typed descriptions replaced photos, run through GPT and an image model into a generated product shot for each item.
The Insight
Close enough, typed in seconds, beats perfect and never finished.
The System
Six decisions, each one choosing less to build over more to maintain:
- Notion as UI — Calendar, gallery, and filtering come free. No frontend to build or maintain.
- Text-Only Input — No photo uploads, so every generated image stays visually consistent.
- Cache Once — Images generate once per item and are reused forever, not regenerated.
- No Server — GitHub Actions runs the schedule. Nothing stays on, nothing to patch.
- Occasion at Outfit-Level — The same blazer is “Work” in one outfit and “Casual” in another.
- Scope Discipline — A 3-tier sharing plan was written, but only tier 1 got built.
The Approach
01Problem FramingWrote a PRD with four phases and an explicit non-goals list before writing any code.
02Rapid PrototypeBuilt a literal Next.js web app first: a form, a database, API routes calling GPT and DALL-E.
03Architecture PivotMoved to a fully Notion-native flow with no custom UI after a day of use made the web app feel like friction.
04Item DigitizationBuilt the description-to-structured-data-to-image pipeline that populates the wardrobe.
05Outfit AssemblyBuilt GPT-assembled, dress-code-aware outfits with a validate-and-retry constraint loop.
06Weekly PlanningBuilt the weather- and calendar-aware planner with a hard weekly repeat cap.
07Automation WiringConnected GitHub Actions, Vercel, and Notion into scheduled and on-demand workflows.
Tools (Secondary)
GPT-4o-miniNotion APIGitHub Actions
Key Findings
InsightEvidenceStrategic Meaning
Typed descriptions get close, not exact.EvidenceMost generated item images landed close to the real garment, recognizable at a glance, not a pixel-perfect match.Strategic MeaningTrading photographic accuracy for near-zero onboarding effort is the right trade for a one-user tool.
The obvious build was the wrong build.EvidenceThe first commit was a literal Next.js web app: a form, a database, API routes calling GPT and DALL-E.Strategic MeaningA day of using it made the UI itself the friction, not the value.
LLMs won’t reliably enforce their own rules.EvidenceOutfit assembly needed a validate-and-retry loop, checked against a hard rule, for up to 3 attempts.Strategic MeaningA prompt asking nicely isn’t a constraint. A rejection loop is.
Real use finds bugs that test data hides.Evidence8 distinct bugs surfaced in the first 72 hours of running the system on a real wardrobe.Strategic MeaningTesting on fixtures would have shipped a confident, broken system.
The system runs for almost nothing.Evidence~$0.04 per new item, ~$0.01 per weekly plan, roughly $1 per month total.Strategic MeaningA well-scoped AI tool can cost less than the coffee it took to build it.
Knowing what not to build was a deliverable.EvidenceA 3-tier sharing roadmap was written out in full, but only tier 1 shipped.Strategic MeaningScoping the unbuilt work is what kept it from getting built by accident.
Output Preview

The Closet · 1/3
Learnings From This Case
Get Exact Before You Build
The PRD set the phases but not enough detail to stop feature creep, and most of the added time traced back to decisions made late instead of planned early. Specificity upfront is what actually protects a timeline.
Question the Platform, Not Just the UI
Notion had zero setup cost for me specifically, but that convenience is personal, not universal, and even with it, the calendar still couldn’t render outfit images directly. Evaluate a platform’s real constraints, not just how easy it is for you to start.
Classify for Combinations, Not Categories
A blazer tagged “Casual” still read as professional in the right combination, so a single occasion tag per item was never going to hold up against a real closet. Occasion needed clear rules at the outfit level, not a fixed label at the item level.
Selected views of the Notion-native wardrobe, outfit calendar, and a single planned outfit.
Ask Me About This Build →