What Rain Alert is and what it does. The build that is answering you right now is 1.0.1.
A page that is not there says so
A city the geocoder does not know has no page, and the page now says so in its title, its description and its address - the same words the site's own 404 page uses - instead of promising a 7-day rain chance for a place that is not there. A shared link to a city that does not exist no longer shows a forecast in the tab.
The 7-day rain chance for any city
Type a city name. It is geocoded with Nominatim and the week comes from Open-Meteo. There is no account, no API key and no database, so there is nothing to sign up for and nothing that tracks you.
Each day is banded as Rain unlikely, Rain possible or Rain likely. A chance of rain is never dressed up as an amount of rain, and a day the service did not report is named as such instead of being counted as a dry one.
Every hour's chance is written over its own bar, so a value never needs a hover, and the current hour is a labelled rule through the strip. Picking a day in the week redraws the graph for that day, with that day's own summary.
The banner under the city's name, the tab title and the tab icon are one alert, decided by the same threshold: the first day worth mentioning. Today's figure comes from the hours that are left rather than from the whole day, so at six in the evening the morning's downpour is not counted against you.
Set the chance that matters to you and the days that reach it are marked with your own triangle, apart from the app's umbrella: your limit and the app's advice are two different answers. Your threshold and your city live in the browser, and the server never sees either of them.
The page asks the server whether there is anything worth interrupting you for - rain in this hour, or rain starting within the next two - and the server is the one that decides. The same news is never said twice, and the browser's own permission is asked for before anything is shown.
One click downloads an iCalendar file with one all-day event for every day that reaches the threshold, and your own calendar app does the reminding. The file is built on the server from the same numbers the page shows, so the calendar and the list cannot disagree.
Every city has one page, at /city/<slug>, and every other way of asking for the same forecast is sent there. There is a city index and a sitemap for the search engines, a missing page answers 404 and a broken upstream answers 503.
The app can be added to a home screen. The forecast is never cached, because a rain chance from yesterday is wrong; the shell is, so the app opens without a network and shows an offline page that says plainly that it has no forecast for you.
The weather service converts the temperatures, not the app, so the number on the page is the service's own and the two can never round differently. Your scale travels with the address, so a link you send keeps it.
The panel is a dark plate over a photograph of a night street, in the colours of the picture. Amber is the only accent, so a colour on the page always means something about the rain, and the type is self-hosted, so the page asks no third party for anything.