Home & Yard
Downwind
The best hour to blow leaves: when the wind is already blowing them toward your road.
Shared by Tyler · Built on Muse Spaces
Build it now
Two ways to make your own
1. Build it here
Answer a few quick questions below, then copy your personal prompt into your AI assistant.
2. Or just send your agent the link
Your agent reads the play and asks you the questions itself. Nothing else to do here.
Build me my own version of this app using the starter pack at https://appspaces.ai/plays/downwind. Ask me the personal questions first.
Works in Muse Spaces, ChatGPT Sites, Claude Artifacts, Gemini Canvas and more.
Leaf blowing is a wind problem, not a power problem. Downwind scores every daylight hour of the next seven days on how well the forecast wind lines up with the direction from your yard to your road, how dry your leaves are, and how much daylight you have, then names your one best window instead of leaving you to guess on Saturday morning.
- Hourly wind scored against the bearing from your yard to your road (wind toward the road at 4 to 10 mph scores best; working against it scores worst)
- Leaf dryness from the past 3 days of rainfall plus drying time since the last rain (wet leaves are heavy, stick, and clog)
- Windows bounded by sunrise and sunset, with a nudge up for a dry day when tomorrow's forecast turns wet
- A 7-day outlook and one clearly ranked best window, with the reasons shown
Build it here
Answer a few questions, then copy your prompt
Skip any. The brief will tell your assistant to ask you first.
Read the full starter brief
Build a web app called "Downwind" that tells a homeowner the best day and time in the next 7 days to leaf blow their yard, based on which way the wind is blowing relative to the road in front of their house, how wet the leaves are from recent rain, whether more rain is coming, and how much daylight they have.
SETUP (once, saved): The user enters their street address (Google Places Autocomplete suggestions; on selection, show a satellite map zoomed to the property with a draggable house pin). Then they tap the road or curb they blow leaves toward; the app draws a house-to-road line and calculates the target bearing automatically (google.maps.geometry.spherical.computeHeading, or the standard bearing formula, 0 to 360°), and confirms it in plain language ("your road is to the northeast"). A compass dial (N/NE/E/SE/S/SW/W/NW) stays in sync with the map as a fine-tune and as the fallback if the map fails to load; if there is no Google Maps key, fall back to a plain town/ZIP text search plus the compass dial, and say so. Also save quiet hours (default 8:00 AM to 8:00 PM), a daylight-only preference, and blower type (battery/electric or gas, used only for noise guidance). Save everything so it survives return visits, and let the user change it any time. If the user skips the road direction, score calm, dry windows and say so.
WEATHER (never rely on one source): Primary: National Weather Service API (api.weather.gov), free with no key and no daily quota, for the 7-day hourly forecast (wind speed/direction, gusts, precipitation, precipitation probability, temperature, humidity, dew point) and sunrise/sunset. Past rain: an observed station archive such as the Iowa State IEM ASOS archive, hourly precipitation for the nearest station for the last 72 hours; the dryness model needs real recent rain. Backup only: Open-Meteo Forecast API (free, no key). Its free tier has a shared daily quota and can return HTTP 429 for hours, so never make it the only source. Cache the assembled forecast; refresh it every ~3 hours and on open when the cache is more than ~1 hour old. If every source fails, show the last good forecast with its age and a plain-English error with a retry button. Never show a raw HTTP status code or fake weather. Only latitude/longitude goes to the weather service, never the street address.
WIND SCORING (the core): Weather services report wind as where it comes FROM; convert to where it blows TO: blowing_toward = (wind_direction_from + 180) mod 360. Compare with the target bearing; angle_diff is the smallest difference (0° = perfect, 180° = directly against). Alignment score: 0 to 22.5° off = 100; 22.5 to 45° = 85; 45 to 67.5° = 65; 67.5 to 90° = 45; 90 to 135° = 20; 135 to 180° = 0. Speed sweet spot is 4 to 10 mph when aligned (ideal); 0 to 3 mph calm scores ~70 on speed; 11 to 15 mph is good only if well aligned (within 45°); over 15 mph sustained or gusts over 20 to 25 mph is a heavy penalty at any angle. Judge gusts separately from steady speed.
DRYNESS: Score every hour from past rain (total in the last 72 hours, hours since the last measurable rain ≥0.01 in; more than 0.25 in in the last 24 hours starts the day "Soaked"), drying credit over time (faster on warm, sunny, breezy, low-humidity afternoons; no credit while raining), and morning dew (small penalty before ~9 to 10 AM, heavier when the overnight dew point and humidity were high). Label each day Soaked / Damp / Drying / Dry with the reason ("Drying: 0.4 in of rain yesterday, dry since 6 AM").
RAIN, NOW AND AHEAD: A precipitating hour, or precipitation probability ≥60% with measurable rain forecast, is a hard disqualifier ("Raining: skip"). Rain starting within 2 hours after a candidate window cuts the window short. Rain later the same day is a small penalty only. Rain tomorrow does not ruin a dry window today. A dry today before a wet tomorrow scores higher for urgency, and the explanation should say so.
DAYLIGHT: Never recommend a window that starts before sunrise or ends after sunset. Effective window = start at the latest of sunrise, quiet-hours start, and ~9 AM dew guidance; end at the earliest of sunset and quiet-hours end. Show sunrise and sunset on every day card. Prefer at least 1 hour of daylight buffer before sunset; small bonus for midday/early-afternoon hours. Display all times in the location's local timezone and state which timezone is used.
OVERALL SCORE (0 to 100 per hour): Wind alignment 35, wind speed + gusts 20, leaf dryness 25, future rain 10, daylight/time 10. Hard disqualifiers (score = "Skip"): raining or ≥60% rain probability; sustained wind over 20 mph or gusts over 30 mph; hour outside sunrise to sunset or inside hard quiet hours. Group consecutive qualifying hours into 1-, 2-, and 3-hour windows; rank 2-hour windows highest by default; a window's score is its average hourly score with a small bonus for steady wind direction across the window. Verdicts: 85 to 100 Excellent, 70 to 84 Good, 55 to 69 Workable, 40 to 54 Poor, below 40 Skip. Every score must be explainable in one sentence tied to a real data point. Never present the output as a guarantee. Wind-direction forecasts can be off by 30 to 45°, and trees and houses change ground-level wind; say so on screen.
SCREENS: (1) Home: hero card with the single best window in the next 7 days (day, time, score, verdict, wind speed/direction, dryness, next rain, sunset), 2 to 3 plain-English reason bullets, a compass diagram showing the wind-TO arrow vs. the road direction and the angle between them, and a runner-up window. (2) 7-day outlook: one card per day (date, best window, score, verdict, dryness label, expected rain, wind arrow, sunrise/sunset), best day highlighted, all-"Skip" days say why, plus a "rain story" strip (last 3 days' rainfall total and when it last rained). (3) Day detail: hour-by-hour timeline for daylight hours (time, score, wind speed/direction/gusts, rain chance, dryness trend, sunrise/sunset markers) with the recommended window highlighted. (4) Setup/edit: address entry, satellite map with house pin and tap-to-set road marker, compass dial, quiet hours, recalculate automatically on any change. If no good window exists all week, say so honestly with the reason and a least-bad option. If the forecast fetch fails, show a plain error with a retry button.
DESIGN AND TECH: Mobile-first single-page web app; big tap targets, readable in sunlight, large type for the hero answer. Color-code verdicts (green Excellent/Good, amber Workable, red/grey Poor/Skip) and always pair color with the word. Units: mph, inches, °F, 12-hour times. One forecast fetch powers the whole app. Keep the scoring logic in one clearly-commented module with the weights as named constants so they are easy to tune.
OUT OF SCOPE FOR V1 (note as future ideas only): other yard tasks (mowing, fertilizing, deck staining, spraying), accounts, notifications/alerts, saved multiple properties, leaf-collection/pickup schedules, Street View, drawing a yard boundary. Do not build them in v1.
ACCEPTANCE CHECKS: a new user can type an address, pick it from suggestions, tap the road, and see a best window in under a minute with no sign-up; flipping the road 180° inverts the best window's alignment score; after a rainy 3 days, early-week dryness reads Damp/Soaked even on a rain-free day; no recommended window starts before sunrise, ends after sunset, or overlaps a forecast rain hour; every recommendation carries at least two specific, data-backed reasons; settings survive a reload; it works on a phone-sized screen.- Which way is the road from your yard? (North, Northeast, East, Southeast, South, Southwest, West, Northwest, I'll set it on a map)
- When do you usually do yard work? (Weekend mornings, Weekend afternoons, Weekday evenings, Whenever it fits)
- Want a heads-up the night before a great window? (Yes, flag it, No, I'll check myself)