An empty screen can mean many things; a morning on the water helped me tell them apart.
DesignTidepool
A field app that helps marine biologists record observations, even offline on a boat.
A field app that helps marine biologists record observations, even offline on a boat.
Replacing a 20-year-old member banking system, one understandable form at a time.
A live view of tram and bus delays, for the people waiting and the people dispatching.
A free, practical guide for municipalities publishing their very first datasets.
Showing all 6 posts.
An empty screen can mean many things; a morning on the water helped me tell them apart.
DesignWhat happens to a perfectly good prototype when your hands are cold, wet, and twice their usual size?
Field notesBefore removing a confusing field, find out whose entire working day depends on it.
DesignA small change in how I show numbers led to much better conversations about what they mean.
DataThirty days, one pocket notebook, and a closer look at the information hiding in everyday journeys.
Field notesHow I started scoping projects around the uncertainty we need to resolve, instead of the hours we might spend.
FreelancingOn a boat off the west coast of Sweden, a marine biologist turned her phone towards me. The observation list was empty. “Is that because we haven't found anything,” she asked, “or because it hasn't downloaded?”
It was a reasonable question. Our prototype answered neither possibility. It showed a tidy illustration, a friendly sentence, and a button to add an observation. Back at my desk, that had felt like enough.
Then she pulled out a tide table. Some cells contained a dash. Others contained a number close to zero. The difference mattered: one meant no prediction was available; the other meant the water level was expected to sit near the reference point. Absence and zero were different information.
We had treated an empty list as a single condition. In practice, it could mean the survey hadn't started, a filter excluded every record, the device hadn't synced, or a completed survey had found nothing. Each condition called for a different response.
“An empty state should explain what we know, not decorate what we don't.”
I started mapping those conditions with the team before drawing another screen. We wrote down what the app actually knew, what it was waiting for, and what a biologist could safely do next. A little data sketch made the conversation concrete:
{
"observations": [],
"syncStatus": "offline",
"surveyStatus": "not_started"
}
Now the message could say: “No observations recorded on this device. You're offline; records from other devices may be missing.” The primary action remained “Add observation.” A secondary line showed the last successful sync time.
For a completed survey with no sightings, we used different language: “Survey complete. No species recorded.” That wasn't a failure to fill the screen. It was a result worth keeping. We also made that result explicit in the exported data, rather than asking researchers to infer it from missing rows.
The useful change wasn't the copy alone. Naming the conditions exposed a gap in our data model and gave engineering, research, and design a shared vocabulary. We could test each state deliberately, including the awkward transitions when a connection returned.
I still sketch empty screens. But first I ask a less visual question: what kind of nothing is this? A tide table turned out to be a surprisingly good place to learn the answer.
I'm Maya, a freelance product designer and writer based in Gothenburg, Sweden. I work with teams turning complicated data into useful everyday tools, from a biologist's field notebook to the forms behind a local credit union.
My practice moves between conversations, sketches, and working code. I like finding the question underneath the brief, sitting beside the people doing the work, and making something we can test together. Before going independent, I worked at Kartverk Studio and Norrsken Analytics.
I write to make sense of what I learn along the way. Away from the screen, you'll usually find me by the water, on a tram with a notebook, or trying to identify a bird that has already flown away.
Empty states are contentNordic Design Days · 2026
Forms that survive a migrationFront-end Gothenburg · 2025