← Back to Wardrobe

Wardrobe

The "What to wear today" card on My Dashboard, and the Wardrobe page. Version 1.9, 3 November 2026.

What it is for

Each morning My Dashboard opens with today's day, date, place, the "feels like" temperature and the conditions, today hour by hour from 06:00 to 23:00 (feels-like °C, rain in mm, wind in mph; hours gone are faded, this hour is shaded, the sunset hour is labelled), the sunset time, a one-line reason, and six options: Stay at home, Out casual, Out smart casual, Site visits, Football training (the touchline) and Padel (outdoors).

Left open, the card keeps up with the clock: the shaded hour moves on when the hour changes, and the weather is read again every new hour and at least every 15 minutes, so "Feels like now" is always this hour's.

Press Wearing this on the one you put on. It saves today's date on that outfit and its clothes, so the card offers something else tomorrow.

Wearing something different? Press I'm wearing something else under the options, tick what you have on (type in Search your clothes to find a piece fast; ticks are kept while you search; it starts from the card's suggestion, or from what you logged earlier today) and save. Changing your mind the same day moves the wear; it is never counted twice.

The Wardrobe page lists the clothes you own, the recommended additions and what to clear out.

How the outfits are chosen

  1. For each option, the card takes an outfit from the Outfits table that is in season (October to March is autumn and winter) and whose clothes are all owned.
  2. The outfit worn longest ago comes first, and an outfit you have never worn comes before all of them, so every outfit gets its turn before one repeats (3 Nov 2026). Once you press Wearing, that outfit stays on the card for the rest of the day.
  3. The weather then adds the rest:
WhenOut casualOut smart casual
Feels-like low under 12°Adds a jacket: the rain jacket if rain is 50% or more, else the casual jacket—
Feels-like low under 10°—Adds the smart coat
Rain 50% or moreSwaps trainers for that option's leather boots
Low of 6° or belowAdds a beanie
Low of 4° or belowAdds a scarf

An outfit that already includes a jacket or coat gets no extra one. Stay at home never gets layers. The rules live in js/wardrobe-pick.js and are pinned by tests/wardrobe-pick.test.js.

Washing

Each day a piece is worn adds one wear. When it reaches its limit it goes in the wash: the card stops offering any outfit with it in, and 2 days later it counts as clean again by itself. Nothing to press.

TypeWears before washing
Tee and polo (next to the skin)1
Shirt2
Lounge (hoodies, sweatshirts, fleeces, joggers) and Knit3
Sport and football kit (set on the piece)1
Dressing gown (set on the piece)7
Trousers, Shorts5
Pyjamas (nights)3
Jacket, Coat, Shoes, AccessoryNot counted

Twins: identical pieces (your white tees, your white shirts) share a Twin group in Airtable. When one is in the wash, the card offers the outfit with a clean twin and Wearing logs the twin.

At the bottom of the card, Tonight's wash works this out for you from what you logged today: Into the wash tonight (pieces that reached their limit, with the day they are back in your picks) and Hang back up (pieces still under their limit, for example "1 of 5 wears"). Jackets, coats and shoes are never listed.

Tonight's pyjamas (31 Oct 2026) sits above Tonight's wash. It names the pair to wear tonight, which night of its 3 this is, and the night it goes in the wash, for example "Night 2 of 3. Into the wash after Sunday night". It finishes the pair you are part-way through before starting a fresh one; otherwise it picks the clean pair worn longest ago. Press Wearing these tonight, or pick another pair under "Or another pair". Pairs in the wash are listed with the day they are back. Pyjamas have their own Type, so they never appear in the day's outfits, in "I'm wearing something else" or in Tonight's wash, and logging tonight's pair never undoes the day's log (or the other way round).

On the Wardrobe page the Wash column shows where each piece is, for example "2 of 3 wears", and its own limit to change (blank = the usual, 0 = never counted). Washed brings a piece back early. The card picks the outfit worn longest ago. Between two outfits worn equally long ago, it picks the one whose washable pieces were worn longest ago, in any mix you logged.

Sport options

Weather (feels-like low)Football training (touchline)Padel (outdoors)
Under 14°—A normal top skin
Under 10°The long manager jacket (above 10°, the rain jacket when rain is 50% or more)—
Under 9°A thermal top skinThermal top skin, bottom skin and the Under Armour quarter-zip, in place of the normal skin
6° or belowThe Willingham Wolves beanie—
4° or belowA bottom skin—

From your diary: every hour from 06:05 to 22:05 the Mac reads today's calendar on both Google accounts. A padel session, or Willingham Wolves training or a match, marks its card "Today 19:30" and adds a chip at the top. Only the type and the time are saved, never the event's title. Winter Net Training is not counted.

Sport tees, skins and padel shorts go in the wash after each session. The touchline tracksuit bottoms and training top last 3 wears. Any clean Nike Run tee fills the Padel outfit, and the skins stand in for each other. A site visit layers like a casual day but keeps its site shoes.

Where the data lives

  • Wardrobe table: one row per piece. Status is Own, Bought, Need, Clear out or Skip. Layer role marks the pieces the weather adds (rain jacket, casual jacket, smart coat, beanie, scarf, leather boots). Last worn, Previous worn, Wears since wash, Wash every and In wash since hold the wear and wash record.
  • Outfits table: one row per outfit, with its option, season and linked clothes.
  • Weather: Open-Meteo, free and with no key. It uses your location when the browser allows it, otherwise central Cambridge. Press "Use my location" on the card to switch.

To add an outfit, add an Outfits row, link its clothes and give it an Order number (lower comes first when two outfits are equally due; a row without one goes last).

Changing your clothes on the Wardrobe page

You want toPressWhat it saves
Add something newAdd a piece on Current clothesA new Wardrobe row, Status Own. Pick Replaces if it takes an old piece's place: it joins every outfit the old piece was in, takes over its weather job (for example the rain jacket), and the old piece moves to Get rid of.
Say a delivery cameArrived on a piece marked NewStatus Bought to Own. Until then the card never offers it: Bought means paid for and on the way.
Get rid of somethingRemove, then choose Sell, Donate, Recycle or Site drawerStatus Clear out, with the action and reason. Nothing is deleted. Outfits that use it stop being offered until it is replaced.
Record a purchaseBought it on Recommended additionsStatus Need to Bought
Undo a removalKeep it on Get rid ofStatus back to Own

A piece added without Replaces is listed but sits in no outfit yet, so the card does not offer it until an outfit uses it. If a save fails, the page undoes any part already saved and says so.

Health bar checks (Wardrobe page)

  • Wardrobe table read
  • Outfits table read
  • Every outfit links to clothes that exist
  • Today's weather read
  • An outfit ready for every option today

Troubleshooting

  • "No outfit ready for this season": every outfit for that option uses something not owned, or is out of season. Add or edit an Outfits row.
  • "Today's weather could not be read": the options still show, without weather layers. Press Refresh on the Wardrobe page's bar.
  • "That did not save": nothing changed in Airtable. Press Wearing again.