Privacy — what leaves your phone
Sunset Beach collects nothing about you. There is no account, no analytics or crash reporting, no advertising identifier, no location services (the app is about one fixed beach and never asks where you are), and no third-party SDKs — the project has zero external package dependencies, and its App Store privacy manifest declares no collected data. Two kinds of request leave the phone: a plain fetch of beach conditions from the app’s own server, which carries no identifier; and, only if you switch on one of the three “When conditions change” alerts (or a launch Live Activity is running), your device’s Apple push token sent to the shared NeuralConfig push service so the Worker can notify you. Everything else — tide, moon and launch alerts, your preferences, the last conditions loaded — stays on the device.
What connects to what
Section titled “What connects to what”| Request | Where | What it carries | When |
|---|---|---|---|
| Beach conditions | https://sunsetbeach.neuralconfig.com/api/conditions | Nothing about you — the same public JSON everyone gets, revalidated with an ETag. No cookie, no device or user identifier. | On launch and pull-to-refresh |
| Widget summary | https://sunsetbeach.neuralconfig.com/api/summary | Same — a public payload under 2 KB | On WidgetKit’s schedule |
| Push registration | POST https://push.neuralconfig.com/v1/apps/sunsetbeach/tokens | Your APNs device token (hex), the APNs environment (sandbox/production), and the list of topics you opted into: safety, sunset, sunrise | Only while at least one “When conditions change” toggle is on; re-sent on each launch so a reissued token replaces the old one |
| Push withdrawal | DELETE https://push.neuralconfig.com/v1/apps/sunsetbeach/tokens/<token> | The token to remove | When you switch the last “When conditions change” toggle off — the Alerts screen says “Switching both off withdraws this device entirely.” |
| Live Activity token | POST https://push.neuralconfig.com/v1/apps/sunsetbeach/tokens | An activity push token, kind: "liveactivity", and the launch’s id — addressed to one running Live Activity, with no topics, so it is never in the audience an alert push queries | While a launch Live Activity is on your Lock Screen, if Live Activities are enabled for the app |
| Links out | Beach cams, ship trackers, and every “Open upstream” link on the Sources screen | Opened in Safari — you are then on that site under its privacy policy | When you tap them |
The Worker in turn reads NOAA, the National Weather Service, USGS, NC DEQ, Open-Meteo, Cornell Lab and the other public sources listed on Where every number comes from. Those requests come from the server, not from your phone, so none of those organisations ever sees your device or your network.
Alerts: local versus pushed
Section titled “Alerts: local versus pushed”Tide alerts, “Full moon over the ocean” and “Visible rocket launches” are scheduled locally on the phone from data the app already holds — they need no server, register no token, and fire with no signal. Only the three toggles under “When conditions change” — When the water gets worse, A sunset worth walking down for, A sunrise worth getting up for — need the Worker to reach your phone, and all three are off by default. The push service is shared by every NeuralConfig app because an Apple push credential is team-scoped; it treats the topic strings as opaque and never learns what they mean. See Alerts and notifications.
What is stored on your device
Section titled “What is stored on your device”- Your alert preferences — which tide, moon, launch and push alerts you have
switched on, and their lead times — in the app’s own
UserDefaults. This is the only “required-reason” API the privacy manifest declares. - The last conditions the app successfully loaded, saved verbatim in the
app’s Application Support folder (excluded from backup) so it can draw the
beach immediately on opening and still show something with no signal. The
app also keeps an ordinary HTTP cache for
ETagrevalidation.
Deleting the app removes all of it. Nothing is written to a shared App Group.
Location, maps and MapKit
Section titled “Location, maps and MapKit”The Nature map draws NOAA zone outlines and iNaturalist points with MapKit. It does not show your position, does not use a location manager, and the app has no location entry in its Info.plist — iOS will never show a location prompt for it. iNaturalist’s coordinates for protected species are already blurred by iNaturalist before they reach the app.
The published privacy policy
Section titled “The published privacy policy”The app’s privacy policy is at
https://neuralconfig.com/privacy/sunset-beach/,
with the product terms addendum at
https://neuralconfig.com/terms/sunset-beach/.
https://sunsetbeach.neuralconfig.com/privacy redirects there. Its “What is
stored on your device” list matches the one above; the opt-in push
registration described on this page is what the current build does.
Questions
Section titled “Questions”Support is at https://support.neuralconfig.com.