Skip the fluff, straight to the value 🚀
Fork me on GitHub, let's sync 🤝
Washy washy

Keyboard shortcuts (for the power users)

j
Scroll down the feed
k
Scroll up the feed
g g
Jump to the top of the feed
G
Jump to the bottom of the feed
/
Focus the page's search field
?
Toggle this help
Esc
Close this help

AI-Assisted Onboarding — I Tried It So You Don't Have To

Quick disclaimer: this page is documentation only — the platform does no image handling and makes no AI calls itself. You paste this prompt and your own photos into whatever AI chat tool is already part of your stack, and onboard what comes back through the header’s “Onboard config” button, the same as any other config file. No hallucinated integrations here.

Get the Exact Format

Open /config and use its Export link. That exports the config currently active in your browser — the bundled example, unless you’ve already onboarded or edited one — as the exact { machine, chart } JSON shape the platform expects. Attach that file to your chat alongside your photos, rather than describing the shape from memory: it’s the same file the platform validates your answer against (@washy-washy/core’s parseConfig), so there’s no format to get subtly wrong. Ship the source of truth, not your recollection of it.

Photograph Your Appliances

  • Your washing machine’s fascia — the dial and every option button.
  • Your iron’s thermostat ring or dial.

The Prompt

Attached is a photo of my washing machine's fascia, a photo of my iron's
thermostat, and an example washy-washy config file. Write me the same
"machine" shape for my own appliances, then a "chart" array for the laundry
I describe below, and return the whole thing as one JSON object shaped
exactly like the attached example: { "machine": {...}, "chart": [...] }.
For the machine:
- Copy every label exactly as printed, in whatever language it's in. Do not
translate anything into English and do not tidy up spelling or
punctuation — a chart that doesn't match the machine is worse than no
chart.
- washer.programs is the dial, listed in the order the positions go round
it, starting at the off position and going clockwise. This order changes
every other programme's angle in the drawing, so read it off the photo
rather than grouping the programmes sensibly.
- iron.settings is the thermostat ring, coolest first.
For the chart, one entry per pile of laundry:
- Every machine-facing value has to come out of the machine you just wrote:
program from washer.programs, temperature from washer.temperatures, spin
from washer.spins, options from washer.options, iron_setting from
iron.settings' keys. Spell them exactly as they appear there.
- ironing is "yes" or "no". When it's "no", leave iron_setting empty.
- duration is roughly how long that programme runs on my machine, as
"~H:MM".
My laundry: <describe it — fabrics, colours, what you own a lot of, what
you line dry, anything with a care label you actually follow>.

QA It, Then Ship It

Two things are worth checking by hand before you trust the output — “trust but verify” isn’t just a leadership platitude here.

Nothing in a photo says which dial position is off, so the model has to guess — get it wrong and every drawing on the roadmap is rotated. Start at the off position and count clockwise yourself against the photo. Manual QA, no shortcuts.

A model states a wash temperature with total confidence and is sometimes wrong — confidently wrong is still wrong. Check anything that would ruin a garment — wool, silk, anything with elastane — against the actual care label before you trust the roadmap.

Then onboard the JSON through the header’s “Onboard config” button. That runs it through the same parseConfig the export came from: a typo in a strategy name or a missing field fails there, naming the specific field, so an invented value never reaches the page you’d stand in front of the machine reading. Fail fast, fail loud, fail before it matters.