Passion project
Interaction design


Designing a music streaming app feature that keeps track of music users intend to listen to.


Product Designer


User research, prototyping, concept testing, user testing


4 weeks

project goals

Project Goals

i.e. Why did you do this project, Jennifer?

The goals of this project were largely for personal growth. After designing at several B2B startups, I was often isolated from users and relied on designing with assumptions.

The primary goals of this project were to test my assumptions by speaking to users when it made sense to inform my interaction design decisions.



Throughout the project, I spoke to users at three stages of the design process: facilitating user research, concept testing with low-fidelity wireframes, and usability testing with medium-fidelity prototypes.

The outcome was three iterations of the feature.



I enjoy finding new music to listen to. For instance, when an artist releases a new album or a friend recommends an interesting track.

However, I’m not always in the mood to listen to something new. There are days I’d rather have Taylor Swift on repeat than listen to the new Black Country, New Road with 4298 experimental sounds.

So now I have to record the name of the album and its artist with the intention of listening to it later.

How can we help users keep track of music they intend to listen to?



Save music

Save music you intend to listen to into a 'Listen later' list. Organize this music into categories.

Search and filter

Search and filter from music saved into ‘Listen later’ to rediscover music that fits your current mood and interested genres.

Track listening progress

Motivate users to listen to saved music with a visual representation of listening progress.

research & definition

Research & Definition

i.e. why the heck do we need this feature?

User goal

Not everyone listens to music the same way. Let’s define our user as a music connoisseur.

These are users who actively search for new music to listen. The goal of a music connoisseur is to experiment. This means listening to music from a variety of artists or genres.

Current experience

Popular music streaming apps such as Spotify are great at supporting playlist creation; however, the primary purpose of a playlist is to contain music the user is already familiar with.

As a result, users must find workarounds to keep track of music they intend to listen to. The easiest workaround is to create one long list. Workarounds imply that music streaming apps currently do not fulfill user needs.

Turns out, we need this feature because the current experience did not fulfill user needs.

User research

What makes the current experience insufficient to user needs?

The current experience is not robust enough to support the scale and variety of music our users intend to listen to. The goal of our users is to experiment. This means a typical list of music for our users will a) be extensive and b) have a lot of variety.

The current experience is overwhelming. As users continue to add music to their list, it increases in scale and becomes increasingly difficult to decide what music to listen to.

The current experience is demotivating. Experimenting with music is requires active and intentional listening, It is easier to listen to music that the user is already familiar with. Staring at one long to-do list is dejecting.



I used user stories to ideate on the research insights.

the first iteration

The First Iteration

Wireframes & concept testing

What did I learn after concept testing these wireframes?

  1. Users use album covers to decide what to listen to

  2. What a user wants to listen to is dependent on their mood

  3. Users want to organize music into categories but the categories themselves vary all the time (can be by genre, mood, artist, etc.)

  1. Increase the card size of albums

  2. Add search & filter by mood functionality

  3. Create a robust organization system by letting users categorize their own music

the second iteration

The Second Iteration

Medium-fidelity prototypes & usability testing

What did I learn after usability testing these prototypes?

  1. Progress tracking language is confusing, which makes progress difficult to interpret

  2. Users are unsure what to expect when tracks are shuffled — i.e. what order would they play in?

  1. Redesign progress tracking with more explicit language

  2. Provide visual feedback to user when they tap ‘Shuffle play’

the third iteration

The Third Iteration

Refinement & interaction design

Refining progress tracking

Tabs were used with explicit in progress, not started, and listened labels.

Refining shuffle play

A queue was added to provide visual feedback and let the user know what order tracks would be played when ‘Shuffle play’ was tapped.

Refining categories

When users make categories, it is important to be able to add both albums and individual tracks. Robust organization systems for users would accommodate both.

Albums and tracks differed in appearances, which created some visual imbalance. A toggle was added so users can list albums as a group of tracks or track-by-track, which helped with visual imbalance.

Refining language

From a branding perspective, the language for “category” also needed some refining. A few options were explored.

if this project was shipped

If this project was shipped...


How will we know if we have successfully fulfilled user needs?

  1. How many hours do users listen to new music?

  2. How diverse are the genres and artists users to?


If I were to collaborate with engineers on this project, what questions would I ask?

  1. How can we group music by mood?

  2. What kind of user listening data can we collect?



Refinement is an iterative process

When I was designing my second iteration of prototypes, I had no idea that there would be more iterations. I thought I was moving into high-fidelity prototyping but in the end, this iteration was definitely more medium fidelity. I learned to trust the process and really felt that user testing was what challenged my craft and interaction design skills. Without it, I would have stopped after my second iteration with an end product that was less refined.