Path: https://stormwire.us/policy/privacy/ · Effective date: 2026-11-07 · Document version: 1.0
Privacy Policy
Stormwire (stormwire.us) shows active National Weather Service (NWS) alerts for the places you choose. It needs no account, no email address, and no password. This policy explains what Stormwire stores, why, for how long, and how to remove it. It describes what the product actually does today.
The product's own summary, shown in-app before you enable notifications and in the About section:
Stormwire stores only what it needs to match alerts to your places: saved-location coordinates and names, your per-location alert-class filter settings, your push endpoint, and one pseudonymous install token. There is no account, no precise-location history, and no third-party trackers. Deleting removes all of it; server-side records are purged within 24 hours.
What we collect
| What | Why | Where | How long | How to remove it |
|---|---|---|---|---|
| Saved-place coordinates and names, plus the zone/office they resolve to | Match alerts to your places | Stormwire's server, keyed to your device identifier | Until you delete it; a place you delete yourself is hard-erased within 24 hours | Delete my data or delete the place |
| Per-place alert-class settings (which classes notify you) | Decide what gets sent | Server, keyed to your device identifier | Until you delete it | Delete my data |
| Your push endpoint (this browser's notification registration), plus a coarse app-version string used only for cleanup diagnostics | Deliver notifications | Server, keyed to your device identifier | Until it expires or is unsubscribed (expired endpoints are cleaned within 7 days), until a registration that has never delivered anything is removed after 30 days, or until you delete | Delete my data |
| One random install token (no name, no account) | Keep your places, settings, notifications, and history together without an account | Server (cookie) and this browser's site storage | Until you delete it; an unused identifier with no records is removed after 24 hours (an identifier retired by New device identity is kept as an empty audit record — none of the data above — and retired records are cleaned up on a rolling 90-day target (a cleanup goal, not a guaranteed deadline)) | Delete my data |
| Notification history (event key + time, one row per event) | The History section | Server, keyed to your device identifier | 90 days | Delete my data |
| Your current point (coordinates) | Show the nearby alert list | This browser's site storage only — it is never sent as a saved place | Until you delete it or clear site data | Delete my data |
| Your acknowledgment of the consent panel | Remember that you acknowledged it | This browser's site storage | Until you clear site data | Clear this site's data in your browser |
| Cached copies of alerts and forecast-desk products | Read last-known alerts offline | This browser's cache | Until it is cleared | Delete my data clears them |
| Anonymous request session (cookie/token) | Rate limits and basic security | Server | Short-lived session (the default lifetime is 24 hours) | Expires on its own; Delete my data ends it for this browser |
| Weather content: NWS alerts, warning/watch/statement text, event timelines, forecast-desk products | Show you the alerts and the original NWS text | Server archive and event index — no personal data in it | Kept as the service's alert archive | N/A (contains nothing about you) |
| A shared lookup cache of place details (coordinates rounded to four decimal places — roughly 10-meter precision — mapped to NWS zone/county/office) | Avoid re-requesting the same place lookup from the NWS | Server; not linked to you or your device; refreshed when it goes stale (default cache window: 30 days) | Not removed by Delete my data — there is nothing linking it to you to remove | Nothing to do: it identifies a place, not a person |
| Server log entries (operating data) | Keep the service running and catch errors | Server | Rotated by the host's system log; written without personal identifiers — see Security, in plain language | Server logs are written without your tokens, endpoints, coordinates, or saved-place names |
What we do not collect:
- No account, no email address, no password, no payment method, no birth date — no direct personal identifiers beyond the saved-place coordinates, labels, and notification registration listed above. (The only names stored are the labels you give your saved places, listed above.)
- No precise-location history — we store the places you save; your current point stays in this browser.
- No third-party trackers, no advertising, no analytics from other companies, and no selling of data. Every script the app loads comes from Stormwire itself.
- No personal data inside push notifications (see "Push notifications" below).
- We never place your identifiers in links — they travel in cookies and request headers only.
How your data is used
- To match alerts to the places you save and to decide which notifications to send you.
- To deliver push notifications through your browser's push service.
- To keep the service stable: requests are rate-limited. Some limits are per device or per session; at least one — new device identities per hour — applies per network address, so a shared network — a household, dorm, café, or mobile carrier — shares one allowance; going too fast returns Too many requests. Slow down and retry shortly.
- To secure the service and prevent abuse (rate limits, session checks).
Push notifications: what they contain
A notification carries only: the alert type, the affected place, the alert's end time, and a link that opens Stormwire. It contains no coordinates and no other user data. The place name in a notification comes from the NWS product's own affected-area text — never from your saved place names.
Notifications are sent through your browser's push service (for example Google's, Mozilla's, or Apple's push service). That service receives the encrypted message and delivers it to your device; Stormwire never sees the contents of your device beyond the registration endpoint you were given.
How to delete your data
- Go to Settings → Data privacy.
- Press Delete my data.
- Confirm in your browser's dialog.
- The line purged within 24 hours appears under the button.
What that removes:
- On the server: your saved places and their coordinates, the alert-class settings for those places, your notification registration, and your notification history. The purge runs inside the request; "within 24 hours" is the stated upper bound, and a safety sweep finishes any leftovers.
- In this browser: your current point, the cached alert copies, and the tokens Stormwire keeps in site storage.
What it does not do: it does not cancel anything at the NWS, and it does not stop Wireless Emergency Alerts or NOAA Weather Radio. It also does not remove the shared lookup cache described above (it is not linked to you), and it does not delete your request session outright — it clears the session's link to your identity, and the anonymous session record expires on its own shortly after (default 24 hours, no personal data in it).
What deletion leaves behind (on purpose): a one-way hash of your deleted device identifier — a scrambled fingerprint that cannot be turned back into the identifier, and that carries nothing else about you. Stormwire keeps it so a deleted identifier can never be reissued. In the current version this hash is kept without a removal date (indefinitely); it is not linked to any of the data above.
Running it again: in normal operation a second Delete my data run succeeds the same way and removes nothing — the first run already deleted everything, so repeated runs are no-ops, not errors. If this device has been rate-limited from obtaining a fresh identity, a repeat can instead be refused with Too many requests. Slow down and retry shortly. — the refused run deletes nothing and loses nothing; wait up to an hour and press Delete my data once more. A deleted device identifier can never be reused; a request presenting it again is answered Identity no longer available.
New device identity is not deletion. New device identity gives this device a fresh anonymous identifier and re-keys your saved places, notification registration, and history to it — nothing is removed. Anything still holding the old identifier can no longer reach those records. If you want those records removed, run Delete my data first.
One honest caveat: clear your browser's site data first and Stormwire can no longer find your records to delete them, because everything is keyed to the identifier it just lost. Run Delete my data while you can still reach it.
Cookies and site storage
Stormwire uses two cookies — an anonymous session cookie and the install-identifier cookie. Both are HttpOnly, Secure, and SameSite=Lax, which means scripts on the page cannot read them, they only travel over HTTPS, and other sites cannot send them along with requests. Beyond those and the browser site storage listed in the table (current point, acknowledgment, cached alerts, a token fallback for browsers that block cookies), Stormwire stores nothing else in your browser. There are no advertising or analytics cookies, and no cookies from other companies.
Where the weather data comes from (and who else is involved)
- National Weather Service public feeds (alert feeds and the NWS API) and NOAA Storm Prediction Center products. These are US government sources; Stormwire requests them centrally, identifies itself with a descriptive User-Agent —
stormwire-ops/1.0 (contact: steve@whitt.net)— as the NWS requires, and shows Source: National Weather Service on every product view. - Your browser's push service — transport only, for notification delivery (see above).
- Nobody else. No trackers, no advertising networks, no analytics vendors, no data brokers.
Security, in plain language
- Everything travels over HTTPS.
- Your identifiers are random values, not derived from anything about you; they are never placed in links.
- Server logs are written without your tokens, endpoints, coordinates, or saved-place names.
- Requests are rate-limited and sessions are checked before anything about your places can be read or changed. Limits apply per session, per device, or per network address (see the Privacy Policy); using many addresses to get around them is not allowed (see the Terms of Service).
- Notifications carry minimal data only, encrypted in transit by the browser push protocol.
- In extreme cases — a deliberate, large-scale abuse of the notification system — delivery of new notifications for one area can be slowed or capped for a while; this is a known limitation of a bounded system, it triggers an operational alert, it is time-bounded by cleanup, and the in-app alert list is never affected. Known limitations are also described in the Terms of Service.
Changes to this policy
When this policy changes, the version on this page is replaced and the date above is updated.
Contact
For requests about your data or this policy, email steve@whitt.net.