Case study
UpNext: start with a choice, not a plan
Independent project · Product and interaction design · Implementation and revision with AI agents · Web, Android and iOS
UpNext is a habit app that suggests specific activities as cards and lets you choose something to try today. I designed the product and its interactions, built it with AI agents, tested a web MVP, and released it on Android and iOS.
Introduction
Start with a choice, not a plan.
UpNext is a habit app that suggests specific activities as cards and lets you choose something to try today. I designed the product and its interactions, built it with AI agents, tested a web MVP, and released it on Android and iOS.
The next obstacle was choosing.
The project began with the burden of thinking up activities and making plans. Testing revealed another problem: even with activities provided, unfamiliar ways of browsing and choosing them gave people something to learn before they could start.
About this project
Independent project · Product and interaction design · Implementation and revision with AI agents This case covers improvements from April to September 2026, not the product’s entire development period.
01. Before choosing a habit
01. I wanted to try before choosing a habit.
Before I could use a habit app, I had to decide which habit I wanted and make a plan. That preparation felt burdensome. I wanted to try something, but first I had to decide what I would keep doing.
Try it, then decide what to repeat.
I wanted a different order: try a small activity first, then find what I enjoyed. If something felt worth doing again, perhaps repeating it could eventually become a habit.
Meet an action before setting a goal.
In UpNext, meeting an activity to try today comes before entering a habit to repeat. I started by reducing the preparation needed to decide what to try, rather than managing a goal already chosen.
02. Choosing from suggestions
02. Choose from activities already offered.
I thought of the roguelike games I enjoyed. They offered a set of possibilities, and I chose what to try. I took part in the decision without having to prepare the options myself.
Six concrete activities to consider.
I brought that structure to everyday activities. The app offers six different activity cards, and people choose what they can do today. Each card names a concrete action, such as walking 1,000 steps or stretching for five minutes. I wanted to shift the task from inventing an activity to judging whether a suggested one fits today, while keeping the decision with the person.
Offer direction. Leave the decision open.
During MVP planning and testing, I researched nudges and choice overload. The guiding idea was to change the choice environment while leaving people free to decide. A meta-analysis by Chernev and colleagues (2015), covering 7,202 participants and 99 observations, showed that choice overload depends on factors including task difficulty and uncertainty about preferences. I read this as a reason to make activities concrete and easy to assess, not proof that six cards is the right number. UpNext’s effect still needs testing.
Research · MVP planning and testing
Make the options easier to judge.
Choice overload depends on the complexity of the options, the difficulty of the task, uncertainty about preferences, and the goal of the decision.
Chernev, Böckenholt & Goodman · 2015 ↗Nudge: the principle and measured effects
Preserve the freedom to choose
Thaler and Sunstein’s libertarian paternalism proposes shaping the choice environment without eliminating freedom of choice. It connects to my decision to let people inspect and reconsider ordinary cards before confirming.
Sunstein & Thaler · 2003 ↗An average effect, in a specific setting
DellaVigna and Linos (2022) analyzed 126 randomized trials covering about 23 million people at two US nudge units. The average increase in take-up was 1.4 percentage points. A separate sample of published academic trials averaged 8.7 points; the authors examine differences including selective publication.
DellaVigna & Linos · Econometrica, 2022 ↗These are public-sector results, not habit-app results or an expected improvement for UpNext.
Read, choose, and reconsider.
Randomly offered activities will not all fit someone’s day. People needed room to read without choosing, and to reconsider after choosing. The first tap opens the details; after reading, they can add the activity to today’s selection. Ordinary cards can be removed or replaced before confirmation. Confirming creates today’s board, and people record completion themselves after the activity.
Room to decide also adds steps.
Details and selection changes leave room for a decision, but they also add steps. For suggested activities to make starting easier, browsing and choosing them could not become another obstacle.
03. Unfamiliar controls
03. The options were there. The controls felt unfamiliar.
While I built the web app, optimized the Android TWA, and moved to Swift, 19 Android testers and 12 Apple testers took part in internal testing. I repeatedly heard that the early card controls were not intuitive. Feedback also described friction with horizontal scrolling, drag recognition, and inspecting cards through device tilt.
Browsing was competing with dragging.
That feedback challenged the original intent. I had provided options so people would not have to think up activities, but now they had to learn how to handle those options. Horizontal browsing conflicted with card dragging: the controls needed to choose an activity were getting in the way of the choice.
Keep the decision. Reduce the friction.
I did not want to remove every step for reading details or reviewing a choice. People still needed a chance to judge whether a suggested activity fit their day. I focused on reducing friction when browsing and inspecting cards while preserving that room to decide.
04. Resolving conflicting gestures
04. Preserve the choice. Separate conflicting gestures.
The most direct problem was in iOS input handling. Drag recognition began as soon as a finger touched a card, blocking horizontal scrolling. Moving to the next candidate and moving the card itself were not being distinguished.
Related: hold cancellation and relative tilt
Separate browsing from card movement.
I handled taps separately and made dragging begin only after the finger had moved a minimum distance. Cards followed the finger only when vertical movement was greater. Horizontal movement could browse candidates, while vertical movement could manipulate a card. Touching a card alone no longer started a drag.
Start from the opening pose. Stop when released.
I also adjusted the tilt response. Opening a card now establishes a reference pose, so holding the device at an angle does not make the card start at a large tilt. Only movement from that starting pose affects the card. Releasing a hold early also ends its progress, shuffle sound, and continuous iOS haptics together.
Match the response to the intent.
These changes aligned the screen’s response with what someone was trying to do. A movement toward the next candidate should browse. Letting go should end the response.
Preserving the choice sequence in Swift
Moving from the web to Swift also left out part of the choice flow, separately from the input problems. The early Swift version used a two-column card list with tap selection, an approach I tested for convenience. Choosing a card worked, but opening the deck and exploring its candidates had not carried over from the web.
Bring back the sequence, with its cost.
I rebuilt the sequence in Swift: open the deck, explore the candidates, read the details, and review the selection. Keeping the expanded cards and detail screen in sync added implementation work. This was a decision to preserve the web’s choice experience on iOS, not evidence that cards performed better than a list.
Review the actions between screens.
Working with AI agents required more than checking that cards appeared and selection worked. I also had to check whether people could read and choose in the intended order. During the port, I reviewed what people could do between screens as well as how each screen was arranged.
05. Results and open questions
05. What shipped, and what remains untested.
UpNext grew from a web MVP into a product available on Android and iOS. I implemented the flow from receiving activities and reading their details to confirming today’s choices and recording completion. Internal feedback informed changes to input handling and card responses.
Two weeks after launch, learning from real use.
Two weeks after launch, around 60 people across Android and iOS were using UpNext in East Asia and North America. I am collecting data from these users to inform the next improvements. This is the beginning of learning from use beyond internal testing. As the data accumulates, I want to examine whether suggested activities make starting easier and lead people to return.
Test understanding, then the burden of starting.
Next, I want to examine two questions separately. First, can a new user browse candidates, change a selection, and confirm today’s activities without help? Then I want to compare choosing an activity from suggestions with deciding on one from scratch, to see whether the perceived burden of getting started differs.
The work continues after the suggestion.
I began by focusing on which activities the app would offer. Building and testing taught me to give equal attention to what happens after the suggestion. Thinking up an activity for someone was only a start. They also needed to read it, judge whether it fit their situation, and decide to try it today.
Try UpNext
UpNext is available on iPhone and Android. Explore the cards and choose something to try today.
About
About the designer
I'm Jongmin, a product designer exploring design engineering. I care about how things work, and how they feel.
I think through the whole experience: what someone needs, how they get there, and the details that make it feel right.
Product design is my starting point. I'm exploring design engineering to bring more of those ideas into working interactions.
Contact
Something on your mind?
A role, a project, or just a hello. I'd like to hear it.