Building Daily Habits for Rewards Apps — Steve Kovo
Steve Kovo

Building Daily Habits for Rewards Apps

Prototype home screen showing a four day streak, daily tasks, and quest progress

How to turn a passive experience into something people want to use every day

Company: Undisclosed

Role: Research, UX Design, Behavioral Design, Rapid Prototyping

The Challenge

Working in the rewards space, I noticed a struggle between the platforms themselves and their users. People using these apps want an effortless utility they set up once and collect free rewards from. Rewards platforms want to improve their own metrics, which is hard to do with a passive user base. It got me thinking about how rewards platforms could drive those business outcomes in ways that also provide more value to their users.

A 2025 cross-industry benchmark study found rewards and loyalty apps sit at the bottom of daily engagement across every app category measured. A separate analysis puts typical rewards and savings apps around 15 to 20 percent stickiness, meaning most monthly users open them on a small handful of days a month, against 65 to 70 percent for apps like Instagram or TikTok. A 2025 consumer survey of loyalty app members found the average user logs in about eleven times a month, and only 15 percent open one daily.

The Hypothesis

A daily streak could help with retention metrics, but what do people actually do to earn their streak? One option is tying it to receipt scanning, building a daily rewards habit by piggybacking off other daily habits like a morning coffee run. But what about people who work from home, or don’t have a job that gets them out shopping regularly? What about people who can’t afford to purchase something every day? Some rewards platforms offer free ways to earn by playing game apps, but that requires data and storage to download those apps, and some people can’t or don’t enjoy playing games. To make a daily streak work for all users, they need something they can do every single day, for free, without leaving the app.

When I was designing learning products for Filament Games and GoNoodle, the challenge was how to get someone to want to do something, with nothing forcing them. How do you make it fun? Raph Koster’s A Theory of Fun for Game Design argues that what makes something fun, and creates real engagement, is finding the balance between easy and hard. Make something too easy and people get bored. Too hard and people give up. Fun lives somewhere in the middle.

The one thing someone can do in a rewards app outside of the post-shopping moment, where receipts get redeemed for rewards, is browse offers. Users can search, browse by category, and scroll through endless lists of offers, redeemed by purchasing certain products or taking certain actions. But that’s overwhelming. That’s hard. The easy option for a rewards app is letting users link an email account and automatically scan for e-receipts. But that doesn’t solve the problem. It doesn’t give the user anything to do, and it doesn’t make browsing offers any easier or more fun. But what if users only got a small set of randomly selected offers once a day, with an occasional bonus reward mixed in? That could be fun.

Diagram comparing the transactional shop, scan, earn loop with the daily habit loop built from the offer drop, custom lists, and streak

The System

Trying to solve daily rewards habits led to a daily streak, which led to a daily set of offers, which led to the question of what to do with those offers. I quickly realized I wasn’t designing one new feature. I was designing three co-dependent features, a daily habit system.

Daily Offer Drop

A small, curated batch of offers opened like a foil mystery card pack. Browsing feels bite-sized instead of overwhelming, and an occasional bonus reward keeps users opening offer packs every day.

Custom Lists

Not just a single “liked offers” list like most rewards platforms use, but multiple user-customized lists that allow users to organize offers the way they actually shop, weekly groceries, a big-box run, whatever works best for them. Saving offers turns a passive, forgettable action into daily, purposeful planning.

Daily Streak

Multiple valid ways keep the streak alive. Scan a receipt from a daily beverage run, play a connected game for free, or simply open today’s Daily Drop for free without leaving the app. No single user type has to change their habits to participate. Any action taken within the app keeps the streak alive. Adding milestones to a daily streak feature would help further incentivize users, and rewards apps have an advantage where they could even pay out monetarily for hitting those milestones as opposed to relying on a simple badge or a cosmetic flourish.

The Approach

I used this project as an opportunity to dive deeper into AI-assisted workflows. I’ve found that AI design tools are fine for rapid prototyping and quickly testing out ideas, but they aren’t very good at the design part. For this process, I wanted to start in Figma, then use AI to assist in turning my designs into a functional demo. So I decided to test out Claude Design, and it got messy fast. There’s no clean way today to push a change made inside Claude Design back into Figma. The only workaround I found was a Figma plugin called html.to.design, which converts HTML back into native Figma layers. Getting Claude Design to build from my Figma designs had the same problem in reverse. Claude Design says it can read .fig files, but I did not find that to be the case. Instead, I fed it screenshots, written descriptions, and exported style data, then refined the result over several rounds of prompting. None of it worked the first time, but all of it worked eventually.

Prototype screen Prototype screen Prototype screen Prototype screen Prototype screen Prototype screen

The Outcome

Within a single week I had a fully designed, complete working prototype with all three features that make up the daily habit system.

Next time I’d like to try a few more tools before picking one. Figma Make, Framer AI, maybe others, tested side by side with Claude Design instead of committing early. That said, Claude Design held up well. It’s robust, easy to work with, and easy to share via link, HTML export, whatever you need. It’s not very restrictive about what you can build, and you can set up your own design system inside it, which really helped keep things consistent as I built the prototype.

Animation was the one weak spot. Prompting motion in Claude Design works better than I expected, but the control is limited. It’s definitely not a replacement for a real animation tool. I’d like to try Figma’s motion tools next time around.

As for the UX, overall it is more seamless and intuitive in action than I had anticipated when designing in Figma, which really shows the importance of prototyping. The only issue I found is that the Custom Lists feature might need additional UX work, as I’m not sure it would work for all kinds of rewards apps, especially ones built around fitness data like step goals, completed game tasks, or rewarded streaming. A list makes sense when you’re planning a shopping trip. It’s less obvious what it means when the reward comes from an activity instead of a purchase.

Fetch GoNoodle