This is a web application for people to manage a large database of stuff. When the user clicks on the a button/link to "View Their List of Stuff", is it better to present them with a populated list or an empty list?

A possible reason to display an empty list and requiring the user to add in some sort of search parameter first is to try and save on bandwidth. Another possible reason is that we don't really know what the user wants to look at until they give us some information so why show them a items before then?

Or is it better to load some items in a default order?


Assume that this is not a new user but a returning user and there are items that could be displayed. For example, there could be 500+ items already in the database that we could show to the user. I am not suggesting that we show them all 500+. I was thinking to use infinite scrolling and displaying the first 20 items.


4 Answers 4


Existing users

You should as much as possible try to anticipate the actions that a user will take, and minimise the amount of interaction needed to achieve their goals.

If someone selects a button to "View their list of stuff", you can be confident that they want to view their content in the list, not just see an empty list. So you should show them their content. They may want to do something else with the items in the list (like sort it), but at lest they see the content and can start interacting with it.

It doesn't matter whether you use pagination and load the first page, or infinite scroll and show the first X items, as long as you show the content.

First time users

The first time experience in any application that relies on user entered data is usually a poor experience as people can't see what it will end up looking like. Advanced users often don't care and just want to get on with adding content, whereas new users often need to see some demo content to get a feel for the application.

The first time that a new user views an empty list, you should:

  1. Let them know that they currently have no items in the list
  2. Explain how they can add items to the list
  3. Ask if they would like you to load some demo data to the list
  • Sorry, I should have been more clear. It's for returning users so assume that there is data/items already. Apr 5, 2013 at 23:47
  • @JaydeAnnLy I've amended my answer accordingly
    – JohnGB
    Apr 6, 2013 at 14:14
  • Thanks, this is where I was leaning towards and wanted to get some more opinions. Apr 8, 2013 at 17:50

If users are aware what tasks they can perform in the system, and there is no need to say "Hey, look what a nice tool with rich data we have for you!" - so that it's a tool of everyday use for them, I think you need to answer two questions:

  • What is the cost of data loading? Both from user perspective and system perspective. Does it cause any considerable delay or system/database load?

  • What is the profit for the user? Are any tasks performed faster or easier if the data is loaded at the beginning?

If cost is high and it does not lead to any considerable profit - you should just display information that the list is empty, but will be filled in based on what they select. Otherwise, you can display data from the beginning.

  • Great answer, I'll go back to the devs and find out just how much the cost of loading some data is. Apr 8, 2013 at 17:50

If a user knows they have items in this list, presenting an empty list could give the user the impression that something has happened to get rid of their items (i.e., "Your items (0)"). If you don't want to display anything at first, present a page called "Search your items" that has filtering/searching options.

If what you're worried about is bandwidth and/or slow operations, there are always handy techniques like paging the data set to reduce the amount of information you need to retrieve initially.


If I understand your question correctly, you've got users, and users have a list of things. A lot of things. And they're all the same kinds of things.

If I, as a user, click on a button that says "show my things" I want it to show my things. I want it to show ALL the things!

enter image description here


Sersiously though, you can't NOT show anything if the button promises to show things. If it's possible to show everything at once, ie. performance wise, that would be preferable. I don't know what kind of things these are, but perhaps you can organize them somehow. If they're identifiable by name, you could opt for an index-like layout that makes it easy to scan alphabetically. You could go for a list with the letters of the alphabet on top so I can for instance click the P and quickly skip to that section. It might make sense to have 5 columns of things and that might make it easier. Perhaps I can just hit CRTL-F and find what I'm looking for with that. And you can always add search functionality on top of that if you need to.

If you can't show everything, like if you need to use a select-box, or performance will not allow it, show at least something. Show the 5 most accessed things, the 10 most recently accessed. Whatever makes sense for your application. The first X things by alphabetical order hardly ever makes practical sense, make it a meaningful selection. Then, if I don't find what I'm looking for, I can start entering a search string to get a different selection of things to pick from.

Infinite scrolling doesn't allow me to use CTRL-F. It also doesn't allow me skip down by giving the scrollwheel/trackpad/touchscreen a wipe as I'll probably bump into the limit of what you've already loaded. It sounds like your users will at least kind of know what they're looking for and not casually browsing the list (in which case infinite scrolling may be fine). Give them the option to tell your system something about what they're looking for and narrow down the set of things for them.

  • I wanted to accept your answer just cause that graphic is awesome. Not to mention the rest of your comment is well thought out. Thanks for the ideas of possible alternative data to show to the users. Apr 8, 2013 at 17:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.