All projects

Velvet Hanger

Keep track of clothes and outfits

A mobile app to organise your clothes, plan outfits and keep a record of what you wear.

Closet

6 pieces
Your wardrobe, in view.
Tap pieces to make an outfit

Interactive example · sample data

Velvet Hanger combines a photo wardrobe with a record of outfits you wear. Use it to keep clothing photos together and revisit outfits later.

Available on iPhone · iPhone

From individual pieces to a whole outfit.

Actual app screens with a sample wardrobe. Open either image to see the details.

The wardrobe · Sample pieces
The wardrobe · Sample pieces

Add clothes you own

Take a photo of an item and put it in a category. Add items over time to build a photo wardrobe.

Save the full outfit

Record the combination of clothes you wore, along with its context, so you can find it again.

Look back at outfits

Browse your wear history when you want an idea from clothes you already own.

Log an outfit · Sample wardrobe
Log an outfit · Sample wardrobe

How we built it.

A useful digital wardrobe needs to remember more than an item photo. Velvet Hanger connects clothes, saved plans and the outfits someone actually wore.

Planning and wearing are different records

A planned outfit is not automatically a wear log. Plans can hold a date, garments and a note; an actual log records what was worn. Keeping those records separate lets someone change a future outfit without rewriting their clothing history. If a save fails, the draft stays available so the person can try again.

Dates that follow real life

Wear logs keep the time, the local calendar date and the time zone. Wear counts and last-worn dates are derived from the logs instead of being maintained as separate counters. This keeps the wardrobe history tied to actual entries and avoids treating a date change during travel as a different outfit.

An iPhone app with private media

The app uses Expo, React Native and TypeScript, with a Node.js service and MongoDB. Clothing photos sit in private S3 storage; the server checks ownership before issuing a short-lived media link. A small Swift module handles Apple Vision cutouts.

Built with

  • TypeScript
  • Expo
  • React Native
  • Swift
  • Apple Vision
  • Node.js
  • Express
  • MongoDB
  • Amazon S3
  • CloudFront
More from Velvet HangerOpen the image and video gallery