Hangermanagement.

Personal wardrobe stylist

Your wardrobe, worn by you, before you get dressed.

For anyone who owns more clothes than outfit ideas. Photograph what you already have; it catalogues every piece, renders your actual body, and shows you the fit before you put it on.

  • Next.js 16 · Supabase
  • Rendering by Gemini
  • Invite-only
  • Installs to your home screen
A neutral walk-in closet: knitwear on a brass rail, a camel overshirt, folded stacks and white sneakers.

From the app’s own intro art. The home screen composes a scene like this from your real pieces.

What it is

A full closet and still nothing to wear

The clothes exist. The problem is remembering them. Half the wardrobe is behind other clothes, the good shirt lives in a drawer you never open, and you end up in the same three outfits because those are the ones you can picture.

So you photograph them — worn, hung, or heaped on the bed. Gemini detects each piece, names it, and re-shoots it as a clean catalogue image. Then it composes outfits from what you actually own and renders them on a mannequin built from your own photos. Not a model's.

Tour

Three steps, then it runs

A full-body studio render of a man in a grey tee, dark jeans and white sneakers.

Step 01

Build your mannequin

Upload a selfie and a full-body shot. The app builds a photoreal render of you — face, build, height — and stores an identity passport so your face stays your face in every look.

  • Body-calibration dials for height and weight
  • One anchor render every outfit edits from
Flat-lay of catalogued pieces: sage tee, camel overshirt, folded jeans, white sneakers, braided belt.

Step 02

Catalogue your closet

Photograph clothes worn, hung, or heaped on the bed. Several pieces in one photo are detected separately, named, tagged by category, colour and season, then re-shot once as a clean product image.

  • Photos of you route to your profile
  • Disable pieces you don’t want styled
Three renders of the same person in a camel overshirt, white tee and dark jeans, from different angles.

Step 03

Generate. Voilà.

The stylist composes fits from your real wardrobe — weather-aware, age-aware, tagged by occasion — and renders each one on your mannequin, head to shoes, with a short explanation of why it works.

  • Work, casual, friends, date, active, lounge
  • One tap: same fit, different jeans
  • Goofy mode, if you insist

How it works

From a pile of photos to a fit

Four steps, in this order. One and two are setup you do once; step four is the part you come back for.

01

Sign in with Google

Google OAuth through Supabase. Access is invite-only for now — if your email isn’t on the list, the login page says so and sends you back.

02

Upload your photos

Drag in a batch. Images are compressed in the browser, then classified: clothing becomes wardrobe items, photos of you go to your profile.

03

Set your profile

Height, weight, and a ZIP code for weather. Then generate a base render — the studio full-body image every outfit is rendered against.

04

Open the fits page

The stylist builds outfits from everything enabled in your wardrobe and renders them. A nightly cron refreshes scenes and works through queued restyles.

Features

What’s actually in it

Walk-in closet home

The home screen is a closet scene composed from your real pieces, with clickable rails and shelves.

Identity-locked renders

Every look is edit-framed off one anchor mannequin, so the face and build stay yours across outfits.

Automatic catalogue shots

Each item gets one generated white-background product image, created once and saved with the model that made it.

Weather-aware styling

Your ZIP code drives a local forecast on the dashboard, and the stylist factors it into what it suggests.

Occasion tags

Fits are classified work, casual, friends, date, active or lounge, and filterable by the rating you gave them.

Outfit variations

One tap swaps a single piece — same tee, different pants — and renders the new version on click.

Profiles and sharing

Several people per account. Share a profile by email as viewer or manager; permissions live in Postgres, enforced by RLS.

Nothing is deleted

Removals are soft deletes. Renders are appended and kept with their model tag, so you can compare outputs later.

Goofy mode

Each fit optionally gets a comedy-pose take with the same likeness. Swipe between the classic version and that one.

Built with

The stack, and where the photos live

  • Next.js 16
  • React 19
  • TypeScript
  • Tailwind CSS 4
  • Supabase
  • @google/genai
  • sharp
  • Vercel

Hosted on Vercel. Auth, Postgres and a private storage bucket are Supabase, with row-level security scoping every row to its owner. Image generation runs on Gemini, billed to my own API key — which is why access is invite-only.

FAQ

Reasonable questions

Is it free?

For you, there is nothing to pay. For me there is — every render costs Gemini credits on my key. That is the whole reason access is invite-only.

Do I need an account?

Yes. Google sign-in, and your email has to be on the invite list. If it isn’t, the login page tells you to ask me to add it.

Where do my photos go?

A private Supabase storage bucket, filed under your user id and guarded by row-level security. Images are sent to Gemini for classification and rendering. None of it is public.

Does it work on a phone?

Yes, in the browser, and the layout is built for it. It ships a web manifest, so you can add it to your home screen. There is no App Store app and no offline mode.

Can I run my own copy?

The source is on GitHub. You would need your own Supabase project and a Gemini API key; the README lists every environment variable it expects.