Back to work

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.

Open the interactive version in the console한국어로 읽기

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.

UpNext · Promotional film

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.

Open a habit app. Does preparation feel burdensome? If yes, UpNext offers an activity. If no, choose a habit and make a plan. Both lead to action, then back to opening the app.Open habit appToo muchpreparation?YESNOUpNextAn activity offered firstChoose a habitMake a planIf I want to try againTake action

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.

Original web component · detail and selection excerpt

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.

7,202 participants99 observations across 53 studies

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.

Legend card · 3D detail
Select and review

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.

Android 19 and Apple 12 internal test participants. Recurring feedback concerned unfamiliar controls, scroll and drag conflicts, and device tilt. Choosing became another thing to learn.INTERNAL TESTING19Android12AppleActual participantsCARD CONTROLSGestures felt unfamiliarBROWSING CANDIDATESScroll and drag conflictedINSPECTING DETAILSDevice tilt felt uncomfortableBEFORE THE ACTIVITYAnother thing to learn:how to choose.
Feedback themes summarized from internal testing. Not individual quotes or issue counts.

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.

The same sideways gesture: intended browsing versus early drag captureINTENTSee anothercandidateEARLY BEHAVIOURDrag startson contact0102030401020304Horizontal scrollNext candidateDrag takesthe input firstScrolling blockedbefore the list can move
Explanation of the input conflict, not a recreated tester session. The lower rail stays still while the gesture moves.

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.

Keep browsing, reading, reviewing and confirming. Separate horizontal browsing from tapping or lifting a card to inspect it.KEEPRoom to decideBrowse candidatesRead detailsReview the choiceConfirmChange an ordinary card before confirmingCHANGEConflicting inputsSame touch,competing responsesBrowse horizontallyTap / lift to inspect
Keep the chance to reconsider. Change how the interface recognizes the intended action.

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.

Early Swift · restored commit
Swift · build 40
Current 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.

iOS · completion and XP

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.

UpNext

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.

More about Jongmin in the console

Contact

Something on your mind?

A role, a project, or just a hello. I'd like to hear it.