💧 Pool Recipe

Privacy Policy

Last updated: August 6, 2026

The short version: the app is local-first. No account is required, and there are no analytics or ads. Everything you enter — your pool setup, test readings, dose log, inventory, and checklists — is stored on your device. It is only ever uploaded if you explicitly turn on the optional, sign-in-based cloud backup, and then only as a private backup you control.

Data stored on your device

The app saves the information you enter (pool volume and type, water test readings and their history, logged doses, chemical inventory, maintenance checklists, streaks, and settings such as your preferred units) in your device's local browser storage (localStorage). This data never leaves your device unless you export it yourself (for example, using the CSV export or the printable report).

Cloud backup (optional)

By default nothing is uploaded. If you choose to sign in (via GitHub or a Microsoft account, using Azure Static Web Apps' built-in authentication) and enable Cloud Backup on the Settings tab, the app saves a snapshot of your pool data as a single private file in the app's Azure storage, keyed to your signed-in identity so only you can read or write it. It is used solely to restore your data on another device or after clearing your browser — never for analytics, profiling, or sharing. From the sign-in provider we receive only a stable user identifier (and the basic profile details the provider shares, such as a username); we do not receive your password. Signing out stops all backups. A no-account alternative — a downloadable backup file that never leaves your device — is also available.

Deleting your data

You are in full control, and you never have to ask us. Settings → Cloud Backup → Delete all my data erases everything at once: your pool setup, readings, dose log, inventory, checklists and settings on this device, your push-notification subscription on our server, and your cloud backup file if you have one. It takes effect immediately and can't be undone.

For narrower changes: Delete cloud backup (in the same card, when signed in) removes only the stored snapshot and leaves the device untouched; the Start over button clears your saved pool setup; and the History tab deletes individual readings or the whole history. Uninstalling the app, or clearing the browser's site data, also removes everything held on the device.

Full step-by-step instructions are on the delete your data page. If you have already uninstalled the app and can't reach the in-app control, email the address below and we will delete your stored snapshot.

Location, weather advice & seasonal reminders (optional)

Setup asks where your pool is. Answering is optional — skip it and nothing below happens. If you do give a location, whichever way you give it, it is stored only on your device.

To turn what you enter into map coordinates, the app sends only that query — the ZIP/postal code or place name you typed — to a free lookup service: Zippopotam.us for postal codes, or Open-Meteo's geocoder for place names. Choosing Use my current location instead skips both: your browser asks your permission, and the coordinates never leave the device for this step.

The coordinates are then sent to the free Open-Meteo weather API to fetch a local forecast, rounded first to roughly 100 m — a forecast does not need to know where in your yard the pool is. No account or API key is involved, and we do not receive or store your location; the last forecast is cached on-device for offline use. See the Open-Meteo terms & privacy information for how that service handles requests.

The same on-device forecast also drives the seasonal opening and closing reminders. Deciding whether it is time to open or close your pool happens entirely in your browser — no location is involved in delivering the reminder. If you have also opted in to push notifications, only the finished message and the in-app link it should open are sent to our server, never the location behind them.

You can clear or change the location at any time from setup, or turn weather off from the Home tab, which stops all weather requests.

Notifications (optional)

The in-app reminder banner is generated entirely on your device from your own reading history — no data is sent anywhere to make it work.

You can also opt in to push notifications, which alert you even when the app is closed. Turning this on sends your device's push subscription (a delivery address your browser creates), your reminder schedule, and your last test date to our server, so it knows when a notification is due. This is used solely to deliver reminders — it is not shared, sold, or used for anything else. Turning push notifications off removes your subscription from the server.

Shopping links

Some chemical recommendations include optional "Buy on Amazon" links. These are ordinary links that open Amazon; as an Amazon Associate, the app's author may earn a commission from qualifying purchases. Nothing about your pool data is included in these links, and no purchase information flows back to the app. Amazon's own privacy notice applies once you are on their site.

What we do not do

Children

The app is a general-audience utility for pool maintenance. It does not knowingly collect personal information from anyone, including children.

Changes to this policy

If the app's data practices ever change, this page will be updated and the "last updated" date revised. Because the app is local-first, meaningful changes (like adding any network feature) will always be opt-in.

Contact

Questions or concerns? Email us at poolrecipe@gmail.com, or open an issue on the project's GitHub repository.