I recently worked on a feature in Wimemo called Travel Units.
The idea is simple: a trip is often not just yours. It belongs to a family, a couple, a group of friends, or someone you traveled with. So Wimemo lets people organize trips, plans, photos, and comments around the people who actually shared the journey.
But the completion rate was low.
At first, I thought the feature needed to be more visible. Then I looked at the UI again and realized the real problem was simpler:
The prompt said something like “Complete your travel unit.”
That made sense to me as the builder.
It meant: add members, connect accounts, send invites, wait for acceptance.
But to a normal user, it meant almost nothing.
“Complete setup” is not user language
Users do not open an app to complete a database state.
They want to know what to do next.
So I changed the prompt based on the actual missing step:
If there are no members, say “Add who you travel with.”
If members are not connected yet, say “Send the join invite.”
If an invite is still pending, say “Share again.”
The CTA should describe the action, not the internal state.
Value has to appear at the moment of action
A Travel Unit is not just a contact list.
The real value is that shared trips, plans, photos, comments, and updates stay organized around the people who traveled together.
That value cannot be hidden in a product philosophy doc.
It has to show up right where the user is deciding whether to act.
So the copy now explains the outcome in plain language.
Not “complete this unit.”
More like: add these people so your shared memories stay together.
Even copy changes deserve real tests
This was a small change: SwiftUI state, localized strings, and CTA keys.
Still, I ran localization lint, a simulator build, simulator tests, and CI.
It sounds excessive until you ship one broken string key into production.
For indie developers, growth is not always a new feature.
Sometimes it is removing one vague sentence that made users stop.
What is one place in your product where users are not confused by the feature, but by the next step?
We hit the same wall with our onboarding. The prompt was "Find rising Threads conversations" — which made sense to us but users just stared at it.
Changed it to: "There are 3 Threads conversations growing right now that match your topics — here's what people are saying." Same feature, but now the user sees the actual conversation instead of being asked to go find one.
Your point about value showing up at the moment of action is key. We hid the value behind an abstract step ("find"), when we should've just shown it.
The real insight here is that users don’t fail at “understanding features”—they fail at recognizing progress.
“Complete your travel unit” describes a system milestone, not a human outcome. Once you rewrote CTAs around the next visible action in plain language, you didn’t improve usability—you removed the cognitive translation layer between intent and execution.
That’s usually where conversion is actually lost.