Skip to content
Back to work
Next.js / GenAILive · v1.0.0 · invitation-only

Aether Wardrobe

Personal AI stylist with a deterministic outfit engine

Aether Wardrobe AI stylist interface
0
AI-invented outfits
≥ 7.0
Score to keep a pairing
~$0.02
Vision cost per item
4
AI call sites, all server-side

The problem

'What should I wear today?' is a constraint problem — formality, season, color, the weather where you're actually going — but AI stylists typically answer it by hallucinating outfits from a text description of a wardrobe, inventing pieces you don't own and burning tokens on every request. The wardrobe data had to become the source of truth, with the model demoted to ranking and explaining.

Architecture

01 · Catalog
  • Photo upload / camera
  • GPT-4o vision tags
  • Owner notes win
02 · Candidate engine
  • Pure TS, deterministic
  • Formality · season · color
  • Every pairing tried
03 · Score
  • gpt-4o-mini, batches of 12
  • Keep ≥ 7.0 only
04 · Combinations table
  • Single source of truth
  • Postgres + RLS
05 · Daily pick
  • Occasion + destination
  • Forecast → SQL filter
  • One call ranks & explains
Aether Wardrobe — photo to vetted outfitThe AI never invents outfits at recommendation time — it only ranks and explains what the table already vetted.

What it does

Photograph each piece once — gallery or phone camera — and GPT-4o vision reads cut, color, pattern and material, with the owner's notes always overriding what the model sees. Confirmed items feed a combination table, and each morning an occasion plus an optional destination produces ranked, weather-aware outfit picks with a 'why this outfit' rationale that uses actual item names.

  • Granular categories down to footwear types (loafers, drivers, sneakers)
  • City autocomplete resolves the exact forecast location
  • Outfits browser with boost/hide and 'resting' looks

Deterministic engine, AI referee

A pure-TypeScript candidate engine pairs every confirmed piece against the whole wardrobe through formality, season and color-clash filters; gpt-4o-mini then scores candidates in batches of 12, and only pairings scoring ≥ 7.0 enter the table. At recommendation time the AI never invents an outfit — it re-ranks and explains what the table already vetted. Same discipline as the enterprise work: the deterministic system computes, the model narrates.

  • 'Build around a piece' filters the table to a single item
  • Background generation with an app-wide readiness banner
  • ~$0.01–0.03 per uploaded item; fractions of a cent per daily request

Daily recommendations

Pick an occasion — work, mall, park, dinner — and optionally a destination and notes; the app pulls the OpenWeatherMap forecast at the resolved city, SQL-filters the combination table, and one AI call ranks the top picks. One call per request, because the hard filtering already happened in the database.

Shopping gap analysis

Tick the categories you're shopping for and the app counts how many new outfits one good piece would unlock — computed against the actual wardrobe by the same candidate engine, not guessed — then suggests specific items to buy.

Security and cost control

  • Invitation-only — every AI endpoint verifies the access allowlist server-side before spending API credits, with in-app admin grant/revoke
  • Row-level security on every table
  • Wardrobe photos in a private bucket behind short-lived signed URLs
  • OpenAI and weather keys server-side only

Stack

Next.js 16TypeScriptTailwind v4shadcn/uiSupabaseOpenAI GPT-4o (vision)Vercel AI SDKOpenWeatherMapReact Three FiberZustand