Skip to content
Sunset Beach, NC
Get Support

Get the app and find your way around

Sunset Beach, NC comes in two forms: a native iPhone app (iOS 17 or later, iPhone only — it appears on your home screen as Sunset Beach) and a single web page at https://sunsetbeach.neuralconfig.com. Both read the same backend and cover the same one beach — Sunset Beach, North Carolina — but the app is the full product. It has five tabs (Today, Water, Events, Nature, Info), a search sheet, alerts, widgets and Siri phrases; the web page is one scrolling summary with none of those. Every time in either is shown in the beach’s own time zone (US Eastern), whatever time zone your phone is in.

iPhone appWeb page
WhereThe Sunset Beach, NC app; needs iOS 17 or later; iPhone only (no iPad layout)sunsetbeach.neuralconfig.com in any browser
LayoutFive tabs plus pushed screens, search, an Alerts sheet (bell on Today, Water and Events; Alerts row on Info)One page, top to bottom
RefreshPull down on any tab; a saved copy is shown while it loadsReloads itself every 5 minutes while the tab is open
Alerts, widgets, Siri, share sheetYesNo
Water quality, parking, beach rules, tropics, shellfish, cams, offshore forecast, surge, fishing, “This week” plannerYesNo
Sources listInfo › Sources row at the top (also Where this comes from › Every upstream)“Where this comes from” table at the bottom, plus links to the raw JSON

The web page shows, in order: the beach verdict and score, the tide curve, What it’s good for, When to go (the next almanac window and the week’s windows), What’s on, On the water right now, Sun, sky & air, Sea turtles, What else is out there, Right whales & the map, Seen near here lately, Birds, The year, Runoff & river water, After dark — rockets over the Atlantic, and Where this comes from. While it loads it says “Reading the instruments…”; if the backend cannot be reached it says “Couldn’t reach the backend — …” with the browser’s error. Its footer links to the raw data (/api/conditions), source health (/api/health) and the surf zone forecast text (/api/surfzone/raw) — see the API reference.

The rest of this page is about the app.

The tab bar has five entries. Each tab has a page in these docs.

Tab labelScreen titleWhat it holdsDocs
TodaySunset BeachThe verdict and score, what today is good for, live readings, water quality, air and UV, parking, the next few hours’ weather, sunrise/sunset, the next window, the best days this week, upcoming eventsThe Today tab
WaterWaterTide height now, surge against the prediction, tide chart, highs and lows, surf zone forecast, the offshore forecast, inland gaugesThe Water tab
EventsEventsThe town calendar, concerts, rocket launches and the next visible launchThe Events tab
NatureNatureTimes and seasons, right whales, sightings, birds, migration radar, sea turtles, fishing, marine life, the nature mapThe Nature tab
InfoBeach infoThe Sources row, an Alerts row, getting there, rules, parking, beach cams, ships offshore, the tropics and shellfishBeach info

Two things to know about the fifth tab: its label on the bar is Info but the screen is titled Beach info, and search results file it under “Beach info”. The Sources screen — every upstream, its status and its URL — is inside it, reached from Where this comes from › Every upstream.

The toolbar corners are consistent across tabs:

  • Magnifier (top left, every tab) opens search.
  • Share (top right, Today, Water and Events only) opens the iOS share sheet with a text summary of that screen — see Sharing. Nature and Info have nothing time-sensitive to send, so they have no share button.
  • Bell (top right, Today, Water and Events) opens the Alerts sheet — see Alerts and notifications. Nature and Info have no bell; instead the Info tab carries a labelled Alerts row (with a one-line summary such as Tides · Push, Nothing on, Not set up or Off in iOS Settings) that opens the same sheet.

Long screens are divided by band headings — Today has Later today and The days ahead; Water has At the beach, Offshore and Inland; Nature has Happening now, This season and Go deeper. They are signposts, not sections.

On launch the app draws the last payload it saved to disk before it asks the network, so a cold launch usually shows the beach immediately with a banner that reads “Saved 5 min ago — refreshing…” (the age is the payload’s own timestamp — the same clock Today prints as Updated …). The banner disappears when the refresh lands.

If nothing is saved yet, you see a spinner on the launch colour while the first request runs.

If a request fails you see one of two things:

You seeMeaning
A banner: “Showing the last data loaded — reasonA refresh failed but the app still has data on screen. Nothing was blanked; the numbers are as old as the Updated line on Today says.
A full screen: “Can’t reach the beach” with the reason and a Try again buttonThe app has no data at all — first launch with no signal, or a saved copy that could not be read. Tap Try again, or pull down once you have a connection.

The reason is the transport error, or “The server returned HTTP code.” if the backend answered with an error, or “Couldn’t read the response: …” naming the field if the payload could not be decoded. A request gives up after 30 seconds without a response and after 60 seconds overall, so a phone with no signal reaches “Can’t reach the beach” in about a minute rather than spinning forever.

Every tab supports pull to refresh. There is no refresh button.

The backend refreshes every upstream source on a 5-minute schedule and keeps the last good copy of each. When one source is down, the backend serves that copy rather than nothing, flags it as stale, and the app labels it instead of passing it off as live. On the Today tab’s Right now section this appears as a small Cached badge; on the Sources screen the row shows Cached and, in the source’s detail, Serving last known good. A source with no good copy at all shows Unavailable. Which sources this happens to, how old a copy can get, and what the Sources screen shows are on How fresh the data is.

Most section headers carry a small beside the title. Tapping it opens a half-height sheet with that section’s explainer: what the data is, where it comes from, and its limits — how old a water sample is, why there is no wave sensor at this beach, what a migration count can and cannot tell you. There are 26 of them, and they are worth reading; the caveats are part of the data. Every explainer is also a search result of its own (captioned Explainer), so you can find Water above the tide table or How scoring works without knowing which section it hangs off. VoiceOver reads each button as About … followed by the section title.