The single biggest leak was hiding behind one wall
The goal was simple to state and hard to hit: get more people to upgrade within a day of generating something with AI. It wasn’t a clean-slate build. It was an existing product, an existing funnel, and an existing credit system underneath it, and the job was to find where that system was quietly failing the people already inside it.
I went in expecting a UX problem, the kind you solve by redesigning a screen. What I found instead was a listening problem, and most of the fixes turned out to live below the screen, in the system that decides when and how we ask someone to pay.
I started in the funnel, since that’s the layer everyone already trusts: Analytics Register, first AI generation, upgrade, all inside a one-day window. Back in May we were converting at 3.39%, and by the time I picked this project up that number had climbed into the low 4s, so something was already working.
But a funnel tells you that something is leaking without telling you where, so I went looking for the single largest drop-off point across the whole journey, and it wasn’t subtle once I found it. That’s the kind of number that reframes a whole project, because it isn’t really a UX problem so much as a moment where the product goes completely silent right when it should be making its best case.
The AI trial limit reached message and Upgrade prompt inside AI Chat
Learning a system I didn’t know, one question at a time
Fixing the surface of that wall (better copy, a clearer call to action, an input box that stays enabled instead of locking) was the easy part, and it’s already moving through design review. The harder problem sat underneath it, in the credit system itself, and that meant learning a topic I’d genuinely never had to think about before: how credits actually got tracked, spent, and reconciled across billing and engineering logs that had never been designed to talk to each other.
I couldn’t do that alone, and I didn’t try to. I worked closely with an engineer to pull that data apart and make sense of it, and the biggest lesson from those weeks wasn’t about credits at all.
It was about communication, and specifically about not being afraid to ask a question the second something stopped making sense to me, rather than nodding along and guessing later.
That habit is the reason the redesign is grounded in what the system actually does instead of what I assumed it did.
Venngage’s Free, Premium, Business, and Enterprise plan tiers
Realizing design is a system, not a screen
Here’s the part that changed how I think about the craft. For the first rounds of this redesign, a user will keep seeing almost the exact same screens they see today. We’re deliberately holding off on adding new UX moments until later phases. But the system running underneath those screens is changing completely, from a flat allowance to a pool weighted by what each action actually costs.
That meant the design decisions I was making weren’t really about pixels, they were about sequencing and intuition. Not “what’s the mathematically optimal moment to show an upgrade prompt,” but “what won’t interrupt someone too early, won’t show up too late to matter, and will still let the system feel obvious once you’ve used it a few times.” Those are product design decisions even though nobody will see a single new screen for a while, and getting comfortable making calls at that layer, ones that won’t be visible in a screenshot, was probably the single biggest shift in how I approached this project.
The product asked for money exactly once
Here’s the insight that reframed the whole AI Chat side of the work. Chat is one of our strongest drivers of upgrades, but it converts worse than it should, and the reason became obvious once I mapped the actual conversation flow: chat only has one single moment where it asks you to upgrade, which is the instant you run out of credits. Every interaction before that point, every edit, every generation, every follow-up question, never shows you anything about what the paid plans are actually worth. The product spends the whole conversation being helpful and then asks for money exactly once, at the worst possible moment.
So the goal became surfacing that value throughout the core editing flow instead of saving it for the end. The clearest example so far is a set of paid-feature suggestions we’re now testing directly inside chat: apply your brand kit, try a color theme, right after someone’s first generation, instead of waiting for a wall that may never come for a lot of users.
“Apply my brand” and “Suggest color themes” suggestion chips inside AI Chat after a first generation
5,836 people were asking. Brand Kit just wasn’t there.
Brand Kit is one of our second-highest-converting paid features, but it has some of the lowest traffic, and reading three months of AI Chat conversations told me why: unique users were explicitly asking for brand-related help every single week, inside a surface where Brand Kit doesn’t exist at all. The demand was already there. It just wasn’t anywhere near the feature.
The design decision I’m proudest of came out of that gap. Instead of a generic paywall, the gate needed to be the value moment itself, so when someone asks directly for their brand inside a generation, the AI now builds the entire design and leaves out only the brand elements, then offers to add them, so the user sees exactly what they’re missing on their own actual design rather than in a screenshot somewhere else. If the request is only brand-adjacent, the edit completes first and we offer “apply my brand instead” afterward. Logo uploads stay ungated no matter what, and that line never moved through any review. It’s a small piece of interaction design sitting on top of a very large, very real signal.
The My Brand settings page showing icons/images/fonts gated behind Upgrade
Two structural bets no competitor had made yet
Once the reactive fixes were moving, I wanted to know whether we were still thinking too small, so I benchmarked how Canva, Adobe Express, Gamma, Visme, and Simplified each handle their own free-to-paid gate. My first round of ideas came back from that research and from our own chat data as a set of small, targeted nudges, and the product owner’s feedback was direct: these are real, but they’re tweaks at the edges, not big enough to move the goal.
That pushback was the right kind of pushback, and it sent me back to find two structural ideas that no competitor was doing yet. I brought both forward as recommendations rather than commitments, because the strategic case needed to land clearly before it became anyone’s next sprint.
- A real temporary full-tier unlock, triggered by in-chat intent.
- Rendering the upgrade as a visual before-and-after instead of a sentence of copy.
A 9% lift, and a clear chain of cause and effect
The trend is the part I’d point to first. More importantly, every point of that movement traces back to something specific:
- A wall with no pitch behind it, now carrying one.
- A feature people were already asking for, moved to where they were actually asking.
- A system that asked for money exactly once in an entire conversation, now asking earlier and more often.
That’s the chain I’d want a reviewer to notice: a data point connected to a system-level decision connected to a measurable, still-climbing result.
The credit system rebuild is the biggest lever still in motion
- A model tier selector, so people feel the cost of quality directly.
- Keeping the AI chat open through the moment someone upgrades, instead of dropping them back to zero.
- A pricing page refresh: only about 16% of people who land there currently convert, and that gap is its own open question.
Alongside all of this, I went back and helped clean up how we tracked the whole funnel in the first place, fixing inconsistent event names and untracked entry points so that everything above could actually be measured with confidence. It’s not the most visible part of the work, but nothing else here would hold up without it.