What a tide table taught me about empty states
The first build of Tidepool opened on a blank screen. The biologists we were designing for would start the app on the deck of a research vessel, forty kilometres from the nearest mast, and see nothing: no stations, no samples, no hint of what to do next. We had treated the empty state as an edge case. On a boat, it was the first thing everyone saw.
The table that was never empty
During a site visit in Lysekil, one of the researchers showed me the printed tide table she kept in a plastic sleeve. Before a single sample was logged, it was already full of useful information: predicted high and low water, the hours her team could safely reach the rock pools, the next window if the weather turned. The page didn’t wait for her to add data before it became useful. It started with what was already known.
That reframed the problem. An empty state isn’t a screen with nothing on it. It’s the moment the app knows the least about the person, and has the best chance to show what it knows about the world.
An empty state isn’t the absence of content. It’s the moment the product has to explain itself without any help.
What we shipped instead
We rebuilt the first screen around the data Tidepool could carry offline. Before a trip, the app downloads the station list and tide predictions for the survey area. When a biologist opens a new survey, they see the next three sampling windows, not a button that says “Add your first entry”. The prompt to log a sample only appears once a window opens.
The underlying record is small enough to cache for a whole season:
station date low_water window
LYS-04 2026-06-12 05:41 04:50–06:30
LYS-04 2026-06-12 18:02 17:10–18:55
LYS-07 2026-06-13 06:20 05:30–07:10
Three rows of plain text did more for orientation than any illustration we had sketched. People knew where they were in the day, and what the app expected of them.
Questions I now ask early
- What does this person already know when they arrive?
- What does the product already know, even on day one?
- What is the smallest useful thing we can show before they do anything?
Empty states usually get designed last, after the “real” screens are signed off. Tidepool taught me to design them first. They are the one screen every user sees, and they decide whether anyone comes back for the second.