UX and designing beyond the yellow brick road

Plan for the unhappy path.

UX and designing beyond the yellow brick road
Panorama at the White Cliffs of Dover

The other day I was talking to the team that UI prototyping must consider the un-happy paths.

While the happy path will probably be the first route taken to design a feature, it’s imperative that every situation in which your user might find themselves in gets accounted for. They all make up the user experience!

We can do better than this.

Here are some alternative scenarios to be taken into consideration.

Fetch data is loading

More often than not, your app will be loading information from an external source. This event isn’t instantaneous, which means that there is a (potentially long) waiting time. While a spinning icon goes a long way, how can you make it better? Maybe a skeleton of the UI, or even a threshold to display “this is taking to long, try X”.

Send data is loading

Similar to the above, but with its own quirks. The user took some actions that sent data away to be processed. Like submitting a form, let’s say.
Preventing double requests by immediatly disabling submit elements is crucial, but maybe you could also instruct the user on what to do if it fails. Will they have to resubmit? Will they lose whatever they sent?

No results

Your user might perform a search/filter that yields no results. How to tell them that it all went fine, but nothing was found? Maybe also display a message like “clear your filters” or “broaden your search”?

Empty state

Again, similar to the previous but not entirely the same. Imagine the user getting to a feature that will list something. However, the initial state is empty, because nothing has been added yet. Maybe a “click here to add your first ___”?


While this isn’t an exhaustive list, it’s a good reminder to put yourself on your users’ shoes and consider where they might get to.

Runtime exceptions and form validation aren’t included here because these are usually handled in an app-wide approach, in a way that individual feature designs shouldn’t have to worry about those.

Giving a good user experience is key! When rubber meets the road, the UI you put together is all your user has.