Washcast
A weather-aware iOS app that turns four weather variables into one plain-English drying verdict.
Overview
Washcast is a native iOS app I designed and built solo. It is live on the App Store for iPhone and iPad. It reads the local weather (temperature, humidity, wind, and rain) and answers one question: should I hang my washing out now? You get one plain-English verdict, a drying window for each fabric, and an alert before rain. No account, works in any city. I built the app and its marketing site.
The challenge
A normal weather app tells you it is 15°C with 75% humidity and a chance of rain, then leaves you to work out whether that is a good drying day. It rarely is obvious. Humidity, wind, temperature, and rain all interact. They shift hour to hour. Get it wrong and the load comes back in damper than it went out, and you rewash it.
People who dry laundry on a line do not want more weather data. They want a decision.
The reframe
My first version made the advice smart with a language model. It sent the forecast to a large language model and asked for drying advice in words. It read well. It was also the wrong tool.
A drying verdict has to be instant, work with no signal in the garden, and give the same answer for the same sky every time. The model gave me none of those reliably, so I deleted it. I replaced it with a scoring engine that runs entirely on the phone: temperature, humidity, and wind each add to a score, any rain forces the result to indoor only, and the score lands on one of five levels, from Excellent to Indoor Only.
It is faster, it costs nothing to run, and it is more trustworthy, because the same conditions always produce the same verdict. The reframe was realising that the intelligence people wanted was consistency, not a paragraph.
Key decisions
A verdict, not data
The home screen leads with a sentence, not a dashboard. “Good drying weather. Medium to heavy items work well.” Sunset, remaining drying time, and humidity are still there, but they sit under the verdict rather than in place of it. Tap any day in the forecast strip and the verdict updates for that day, so you can plan the weekend wash, not just today's.
A window per fabric
Towels do not dry like socks. Washcast gives each fabric its own window and start time, colour coded, from swimwear at under an hour to jeans that need most of the day. You can add your own fabrics too. It turns a single yes or no into a running order for the line.
On-device scoring over an LLM
This is the decision I am proudest of, and it was a deletion. The advice engine runs on the phone with no network call: temperature, humidity, and wind each contribute to a score, any rain sends it straight to indoor only, and the result lands on one of five levels. It is instant, it works offline, and it never contradicts itself. The detailed view still explains its reasoning in plain English, written from the same rules, so the words and the verdict can never drift apart.
A nudge before rain
The most useful moment is not opening the app. It is the app reaching you: a rain alert while the washing is still out. Washcast runs three notifications off a background refresh. An evening plan for tomorrow, a morning note when conditions are good, and a “bring it in” alert when rain is approaching. Each one is a single toggle.
One endpoint in front of the weather API
The app does not call the weather provider directly. It talks to a small serverless endpoint I run, which fetches the forecast, caches it for a few minutes, and hands back only what the app needs. Fewer calls, faster responses, and one place to swap providers if I ever need to.
What shipped
Live on the App Store for iPhone and iPad.
Advice runs entirely on device, so the verdict is instant and works with no signal.
Four weather inputs reduced to one decision, with a drying window for each fabric.
Rain alerts that reach you while the washing is still on the line.
A marketing site I designed and built end to end at washcast.app.
Reflection
The hard part of Washcast was never the weather API. It was turning four noisy, shifting variables into one line that someone trusts enough to act on. The version that got there had less technology in it, not more. Removing the language model made the product better.
It is a small app about laundry. It taught me a large lesson: people do not want to be shown the data, they want to be told what to do with it, and they want the same answer every time they ask.