Privacy policy
Stormivo · Effective October 9, 2026
Developer: Ethan Stidley. Contact: estidley@gmail.com.
Location and alerts
When Stormivo opens, it asks for foreground location permission to center the map on your position at a roughly 40-mile radius. With permission, it refreshes that position while the app is visible. Your precise map-only position stays in memory. To show lightning, the visible map sends its center rounded to 0.1 degrees, its viewing radius and selected history window to our Railway service. These requests require no account, do not register a device or enable notifications, and do not save your position to a device record. The service keeps a bounded response cache. Map tile requests also reveal the viewed area to the map provider. You can use the map without granting location permission.
When you agree and start monitoring, Stormivo collects your latest precise or approximate location, its accuracy and timestamp. It sends these to our Railway-hosted service to calculate lightning distances. A foreground service continues location monitoring while you use other apps and displays an ongoing notification. You can stop it in the app or notification. Stormivo requests the separate background-location permission for recovery after phone restarts. With your consent and the required permissions, it collects location even when the app is closed or not in use. Explicitly stopping monitoring disables recovery. Force-stop, revoked permissions and device restrictions can require reopening the app.
The service stores the latest position rather than a route history. Stopping monitoring stops background location collection and precise location uploads for alerts. The visible map can still refresh your position and request public lightning observations for the viewed area until you leave the app; disabling alerts is also synchronized to the server when connected. Local notification checks stop alerts immediately. A disconnected server pauses following-location alerts once its saved position is older than three minutes.
Private installation account and delivery
Firebase Authentication creates an anonymous account when monitoring starts. No email or password is requested for this account. Firebase Cloud Messaging routes push messages using an installation identifier. Our service associates these identifiers with your settings and verifies installation control before enabling alerts. It stores alert timestamps, approximate distances, delivery attempts, device reception/posting timestamps and receipt acknowledgements. Device clock timestamps can be inaccurate. A receipt records a request to post a notification, not proof that you saw or heard it. Acceptance by Firebase does not prove a notification appeared on the phone.
Maps and providers
MapLibre loads maps from OpenFreeMap when the screen opens, including before monitoring begins. Map providers receive your IP address and requests for the viewed area, which can reveal an approximate area of interest. Firebase and Railway process the information needed for authentication, delivery and hosting. Our servers download public NOAA data; they do not send your device location to NOAA. Providers may retain operational or security records under their own policies.
We do not include advertising, analytics or crash-reporting SDKs, and do not sell personal data. Network connections use HTTPS. Infrastructure access logs can contain IP addresses, requested paths and query parameters; map-observation query parameters include coordinates. Application access logging is disabled, but infrastructure logging is separate.
Storage and retention
Your settings, delivery-deduplication identifiers and SDK authentication state remain in app-private device storage. Map resources may be cached. Android backup and device transfer of app data are disabled.
The service removes positions for devices inactive for 24 hours and alert records after seven days through its scheduled ingest cleanup. An outage can delay cleanup. Account identifiers, routing association and preferences remain until deleted. Public lightning observations are retained for up to two hours. Registration proofs expire after three minutes and are deleted after use or expiry. Daily Railway database backups are retained for six days. A manual snapshot taken before a deployment may be retained until that release and recovery checks are verified. Deleting primary application records does not instantly erase retained backups or provider security logs. Restore procedures must account for deletions made after the backup.
Deletion and control
Use About → Delete my data and account to stop monitoring and delete your server position, preferences, alert history, routing association and anonymous Firebase account. This requires a connection; if it fails, the app tells you to retry. Starting monitoring afterward creates a new account. Uninstalling removes app-private device data but does not itself send a server deletion request.
You may also request deletion or ask privacy questions through our external deletion page. Do not send passwords, ID tokens or private keys. Requests require verification to protect other users.
Changes
We update this page when data practices change. Review the effective date and contact the developer with questions.
Provider information: Google privacy, Railway privacy, OpenFreeMap, GitHub privacy. This website is available through GitHub Pages and Firebase Hosting; those hosts receive web requests.