End-to-end design of a consumer app that lets users earn cashback on purchases and automatically donate a portion to nonprofits — from competitor research and product requirements to beta testing and public launch.
Millennials and Gen Z — mobile-first, socially conscious shoppers
Background & Problem
What if everyday shopping could fund the causes people actually care about — automatically?
Good Deeds connects users, nonprofits, and brands. Users discover brand offers, earn cashback on purchases, and automatically donate part of that cashback to any of the 1M+ eligible nonprofits in the US. The idea is simple: give doesn't have to be a separate act.
The users
Millennials and Gen Z — mobile shoppers who care
Our target users are comfortable with mobile shopping and respond well to cashback incentives. More importantly, they're conscious consumers — more likely to buy from brands that support causes they care about, and more likely to stick around if the product reflects their values.
The stakeholders
A three-sided marketplace
Users
Shop, earn cashback, and donate — all in one place
Nonprofits
Reach new supporters and receive recurring donations without extra fundraising overhead
Brands
Build meaningful relationships with customers by supporting the causes they care about
My Role
I was the first and only designer at Good Deeds. That meant owning everything — competitor research, product requirements, UX, UI, branding, and iteration after beta. I worked in two-week sprints with a PM, two app engineers (iOS and Android), a QA engineer, a data analyst, a content writer, and a marketing lead.
Each sprint started with a requirements review. I asked questions about technical constraints early, did user and competitive research to explore solutions, and shared work regularly to get feedback from stakeholders before going further.
Core User Journey
Shop, Save, Give — the three flows that make up the full experience. Click any step to see it in action.
Design Challenges
Beta launch surfaced two problems fast. Both were friction problems — one at the start of the journey, one at the end. We had two weeks to fix them before public launch.
Challenge 01
Onboarding asked for too much, too soon
Beta users dropped off before they ever saw what the app could do. The signup flow had too many steps — users felt like they were giving up personal information before they'd decided whether the app was worth keeping.
"I want to get into the app as soon as possible. I don't want to provide that much info before I decide to keep it."
— Beta User
The tension
Business need
Personalization data
We needed user information to personalize the experience and give meaningful insights to nonprofit and brand partners.
User need
Get in fast
Users wanted to explore the app before committing to anything. Every extra step before value was a reason to quit.
After discussing feasibility with the team, I proposed stripping the onboarding down to one step: select your preferred nonprofit. That's the core value of Good Deeds — it made sense to keep it. Everything else was moved to the Account tab or surfaced contextually later in lower-stakes moments.
Multiple required steps before users could explore the app — personal preferences, payment info, permissions. Users consistently told us they felt interrogated before they'd decided to stay.
Beta flow required users to complete several steps before reaching the app
Reduced to one core step: selecting a nonprofit. Cashout account setup was deferred to the moment users actually wanted to withdraw. Other data collection was moved to Account settings, surfaced when relevant.
New flow: one step to get into the app — select a nonprofit, then start shoppingPayment setup deferred to the moment users want to cash out — lower stakes, higher intent
Challenge 02
Users didn't know if it was working
Cashback takes 45–90 days to process. For first-time users, that's a long time to wonder whether anything actually happened. Beta showed us a spike in support tickets asking "where's my cashback?" — users weren't uncertain about the app, they were uncertain about whether their purchase had registered at all.
I worked with our UX writer and marketing manager to figure out what to say and when. We landed on two lightweight changes for launch:
Fix 1
Interstitial after purchase
When users close the in-app browser after shopping, we show a brief screen explaining the cashback timeline — setting expectations before confusion can set in.
Fix 2
Push notifications
We send notifications when cashback status updates — pending, confirmed, available. Each one is also a celebration for the nonprofit getting a donation.
Interstitial explaining the cashback timeline + push notifications updating users at each stage
Challenge 03
Craft and details that made it feel real
Shipping a 0→1 product means there's no existing pattern to inherit. Every screen, state, and icon had to be considered from scratch — including the parts most users never notice when they're working correctly.
Refining the header bar
Working with the marketing team and based on stakeholder feedback, we iterated on the app's header bar — adding the Good Deeds logo to strengthen brand identity, making search more prominent, and creating a new bookmark icon to better communicate it holds a collection of saved offers.
Header bar iteration: logo placement, search prominence, and a new bookmark icon
Designing beyond the happy path
Happy paths are the easy part. I worked closely with the engineers on every edge case — empty states, loading screens, error messages, and failure flows. These details matter most when something goes wrong.
Edge cases, empty states, and loading screens designed alongside the main flows
Nonprofit category icons
Nonprofits are a core part of what makes Good Deeds work. I collaborated with our VP of Nonprofit Partnership to design icons that accurately represent 27 nonprofit categories — starting from free icon resources, then editing each one to better fit the category's idea and maintain a consistent visual language.
27 nonprofit category icons — adapted from free resources and refined for clarity and consistency
Outcomes
88%
Onboarding to nonprofit selection in the first month after launch
↓
Fewer customer support tickets about missing cashback after the post-purchase update
1M+
Eligible nonprofits available to support at launch
The two-week sprint between beta and public launch was the most compressed design work I've done. Every decision had to be argued, tested, and handed off fast. The 88% conversion rate on nonprofit selection — the one step we kept — confirmed the instinct was right: lead with the value, defer the friction.
App Store reviews
Fell GoodDec 16 · SageCA Run
★★★★★
"I love that this app allows me to give my cash back to non-profit organizations so easily. I feel as though I am making a positive impact in other people's lives! Isn't this what life is about? Thank you, Good Deeds!!"
Good DealDec 7 · Zeko Madson
★★★★★
"Love the idea, great execution. An easy app that makes it easy to support great foundations. This app has made it easy to start being more proactive in causes I support - Well done 🔥"
Love it!!Dec 15 · Emmie1745
★★★★★
"This is such a cool idea, and the app is very user friendly. I love that I can support my favorite organizations with every purchase!"
So easy to give back!Nov 26 · Sleed12341
★★★★★
"Really easy to use. The app has a lot of cash back deals, and I already got $15 back."
Solid potential!Nov 18 · Jebuskid
★★★★★
"The nonprofit I volunteer with partnered with this app and I am more than happy to support our cause in such a seamless way!"
Nov 15 · Paul Hermany
★★★★★
"This app is a great idea and is well executed. The Integration with shopping sites is seemless and the navigation is non-blocking, unobtrusive, and intuitive."
From the team
"
I was blown away by how gracefully Penny managed the heaps of work she needed to manage by herself as our startup's only designer. She took on UX, User Research, Branding, Copy and more — while always delivering before the agreed timeline, leaving room to gather feedback and iterate.