Adding a feature to an existing app


In this project, I created a new feature that would be added to the Duolingo app to enhance the users' experiences. First, I researched problems that users encounter in the app, and from there I came up with a design solution. The feature I designed is a way for users to set a goal and a timeline, and Duolingo would provide custom lesson plans based on that information.

Final Prototype


  • Figma


  • 1 product designer: Emily Heiden

My Role

  • User research

  • UX/UI design

  • Prototyping


  • 80 hours


Duolingo is a language learning app with daily short lessons for users to learn almost any language. However, there is currently no way for the user to set goals in the app, and there is no option for custom lesson plans. After doing initial user research I found that many users like to use the app for a specific reason such as to learn some basics of a language before traveling to a country where that language is primarily spoken. The users expressed frustration at how the current lesson plan requires a new student to start learning the language often with the alphabet or very simple (seemingly random and useless) words. These users need to learn relevant and useful words and phrases sooner in their lesson plans.


The feature I designed is a way for users to set a goal and a timeline, and Duolingo would provide custom lesson plans based on that information. This would provide the user with a more efficient way to learn a language, and in turn, increase user retention of the app.



To start researching, I created a survey to gather information on the problem. Thirty-one participants completed the survey, providing me with plenty of data to move into the next phase of brainstorming a solution.


One question from the survey

User Interviews

Next in the research phase of the project, I conducted user interviews to inform the design. I created an interview script with 7 questions and interviewed 3 users remotely. The purpose of the interviews was to understand why and how the participants use Duolingo as well as to understand their pain points more in-depth. Ultimately, I used this information to create a persona that helped to guide my design decisions throughout the project.


I created 1 persona for this project based on the data gathered during the user interviews. I referred back to this persona during the design process to ensure that I was designing the feature to be useful for the target user.


User Flow

I created a user flow with all of the paths a user can take while using the Duolingo app so that I could understand the user's journey and needs.


Task Flow

Lastly, before starting the design process, I created a task flow to visualize what pages I needed to create and how they would connect.




I began the design process with low-fidelity sketches to brainstorm several different design solutions before committing to one. My sketches were based on the survey and user interviews. To the right, I have included initial sketches to brainstorm the button placement on the homepage which would open up the added feature page.


Mid-fidelity Wireframes

After sketching out my ideas. I created mid-fidelity wireframes to confirm the layout of my designs before moving on to high-fidelity wireframes.


High-fidelity Wireframes

Using Figma, I translated my mid-fidelity wireframes into high-fidelity wireframes. Taking my mentor's suggestions into consideration, I iterated on these wireframes twice before moving on to user testing.


Final iteration before User Testing


Usability Testing

I created a fully-functional, high-fidelity prototype on Figma. I recruited 3 participants to test the prototype. The participants made observations, gave suggestions, and asked questions while clicking through the prototype. Afterward, I created an affinity map to group the data in a way that would help me to understand the users' needs and pain points.

Affinity Map

After the usability testing, I gathered all of the feedback from the users and created an affinity map using post-it notes. This helped me to organize the feedback into the following categories: successes, pain points, suggestions, and questions.



User Feedback Changes

  • A change that I made from user feedback was to include a way to view more options on the Learning Goal page. I chose to use an ellipsis as the icon that would open up a pull-up menu.

  • I added a new page which is a pull-up menu where users would be able to select more options to customize their learning goal as well as the option to delete the goal.

  • On the learning goal homepage, I added a small timeline with a percentage to show the user how much progress they have made on their learning goal.




Future Revisions

If I were to have more time to work on this project, I would create an in-depth timeline page, as well as continue with the idea of adding more than one goal at once with the option to switch between goals. I would also want to do more user testing with a larger population.


I enjoyed adding a feature to a product that already exists because I felt like I could focus on producing quality work and I could give my attention to small details more than I can with larger projects in the same amount of time. The challenge was that I had less flexibility when working on one feature, but I'm okay with that because I like being one of many contributors to a project.

Thank you for reading my case study!

If you would like to connect, please reach out on LinkedIn.