A fintech app for credit-score improvement. v1 was honest class work — UX thinking solid, visual execution generic. v2 is the rebuild: restrained palette, tokenized components, real edge states, no decoration that doesn't earn its space.
I picked fintech as my first end-to-end UX project because I wanted to learn the hardest domain. Financial anxiety is real. Trust is everything. The design has to disappear out of the way of the user. v1 didn't reach that bar. v2 does.
Same screen, same flow, two years of growth between them. Everything the critique names is visible in the side-by-side: the palette, the icons, the trust signal, the component discipline.
All twelve v2 screens — color and wireframe — are live and clickable. Browse the full v2 screen set ↗
The flows from v1 still hold — they were the strongest part of the original work. What needed rebuilding was everything that sat on top of them: palette, components, typography, signal language. v2 is a tokenized system rebuilt from the wireframes up.
Five execution gaps in v1, each paired with the v2 fix. Not "I'll redesign it someday" — actually rebuilt and shown above.
Five competing colors. Green, yellow, red, blue, plus accent. No signal hierarchy. Bright fintech-positive defaults that read as friendly-startup-template, not financial app.
One primary blue. Three semantic states. Blue (#2563EB) for action and trust. Green for excellent, amber for fair, red for error. Each color has one job. Calm beats bright when the user is anxious about money.
Generic stock icons. The wallet logo specifically read as clip-art. Standard rounded glyphs throughout — the default Material/Feather set every class project deploys.
Tabler outline icons, used consistently. One icon set, one weight, one style — never mixed with other libraries. Applied across all twelve screens, never decorative.
Emojis on security messaging. "Your data is encrypted and secure" paired with a winking face. The casual tone actively undermined the trust signal.
Plain language. No decoration. The encrypted-and-secure banner was pulled from every screen except sign-up, where it earns its place. Trust signals state themselves once, at the right moment, then get out of the way.
Layout overlap on Score Improvement Plan. Header collided with the action card below. A QA-grade miss any production review would catch.
A real component library with spacing tokens. 24px outer padding, 16px between sections, 10–14px inside cards, 8px between row items. Documented in a design system reference. Overlap is structurally impossible.
Class-project projections presented as outcomes. The original brief had usage numbers that were aspirational, not measured. Calling them "results" was a junior mistake.
Honest about its status. v2 is a design system rebuild — not a deployed product. No invented metrics. Real usability testing is on the roadmap, and when it ships, the numbers go in.
The wireframes from v1 held up. The hi-fi didn't. v2 is what happens when the hi-fi catches up to the thinking.
Every spacing value, every radius, every color decision is documented and reused. The screens above aren't one-off Figma frames — they're built from a tokenized component library that another designer could rebuild from the README.
24px · outer screen padding
16px · between sections
10–14px · inside cards
8px · between row items
Radius: 36 / 14 / 12 / 10
Frame · large · standard · small
52 / 500 · display
28 / 500 · h1
20 / 500 · h2
17 / 500 · subtitle
15 / 400 · body
13 / 400 · small
11–12 / 500 · caption
Real software has empty states, network errors, and broken connections. v1 didn't have them. v2 does — and they don't just say "error," they give the user productive things to do instead.
The error state doesn't end at the error. It surfaces three productive alternatives: check your connection, browse card recommendations, read credit education. The user came here for a reason — the error shouldn't kill the session, it should redirect it.
Empty states earn their keep by reducing the cost of the first move. v2's empty state has one clear primary action, not five. The user knows what to do without thinking about it.
Every v2 hi-fi screen traces back to a wireframe. The gray-bar style isn't low-fi — it's deliberate. Forcing yourself to evaluate layout without content makes the structural decisions visible. If the wireframe doesn't work in grayscale, no amount of color will save it.
Picking fintech as a first project meant I couldn't coast on intuition. Financial anxiety, trust signals, regulatory framing, multi-state flows — the domain refused to let me design pretty surfaces over unclear thinking. Every later project benefitted from that discipline.
The lo-fi flows from v1 are the same flows v2 ships. The further from structure, the more visible the experience gap. v2 caught up to the structural thinking that was already correct in v1.
v1 was screen-by-screen Figma frames with eyeballed spacing. v2 is a tokenized system documented well enough that another designer could rebuild it from the README. The system is the deliverable, not the screen.
v1's brief had projected engagement numbers that read like results. Hiring managers see through that immediately. v2 ships honest: design system rebuilt, real usability testing on the roadmap, no invented metrics in between. Every case study after this one — Violet, Sheffield, Confection — uses only real, defensible numbers because of what v1 taught.
CreditWise v2 is the rebuild of a class project, done after I learned what a class project teaches: that the gap between thinking and execution is everything. The flows held. The system caught up. Real usability testing is next.