Qwark
Building a 0 to 1 fintech product
Professional portfolio management starts at ₹50 lakh in India. I designed a fintech product that brings goal-based financial planning to the people who actually need it.
Every plan is a journey tied to a real goal, like buying a home

Goal progress: the one element testers universally praised
The problem
In India, portfolio managers and wealth advisors only work with clients who maintain at least ₹50 lakh. Everyone else, including well-paid professionals in Tier 1 and Tier 2 cities, is left figuring it out alone. Most end up copying someone's portfolio from Twitter or Reddit with no sense of when to rebalance, when to exit, or how any of it connects to what they actually want the money for.
Qwark is a subscription-based fintech platform that provides goal-based financial planning for this underserved segment. Instead of managing abstract portfolios, users create "journeys" tied to real goals: a house, a wedding, their kid's education. We advise on allocation, sector selection, and rebalancing based on their risk profile and timeline. The subscription model replaces the traditional AUM percentage, making proper advisory accessible without a ₹50 lakh gate.
What I did
I was the only designer on a 4-person team, which meant I did everything from user research and branding to writing PRDs and negotiating vendor pricing for KYC and Account Aggregator integrations. I ran 50+ user interviews, designed every screen in the app, built a design system on top of Material Design 3, open-sourced a Figma plugin for developer handoff, and tested the product with 22 real users before launch.
I mapped every user flow as a multi-lane diagram connecting user actions to frontend screens, backend states, API calls, and analytics events. On a 4-person team, everyone needed to see how their piece connected to the user's experience. The dev could trace which API fires when, the CEO could follow the business logic, and I could spot where we needed tracking.
User research: finding our users
800+ surveys, 50+ interviews, 2 personas
When I joined Qwark in October 2023, the product vision was clear but unvalidated. A 4-person team about to invest months of engineering into assumptions. No user data, no interviews, no surveys. I needed to find who our users actually were before we wrote production code.
No budget for a research agency and no existing user base. I started wide with surveys to find patterns, then went deep with interviews to understand the people behind the numbers.
The 15-question survey targeted 25 to 45 year-olds in urban India earning ₹15L to ₹1Cr. Distribution was scrappy: LinkedIn, investing subreddits, WhatsApp alumni groups, friends forwarding to their networks. 800+ responses in three weeks.
From those respondents I recruited 50+ people for 30-minute remote conversations, a mix of confidence levels, income brackets and life stages. Semi-structured: start with their investing story, dig into frustrations, end with their ideal tool. I ran all 50 myself over six weeks. No agency. Just Zoom and a growing Notion database.
Affinity mapping in FigJam pulled quotes, behaviours and pain points into clusters. The same split kept appearing. Our users weren't one audience: two groups with similar frustrations who wanted different things from the product.
“I know I should be investing for my daughter's education, but I have no idea if what I'm doing right now will actually be enough in 15 years.”
“Every advisor I've talked to just wants to sell me their fund. Nobody asks what I'm actually trying to achieve.”
“I spend more time researching a phone purchase than I do thinking about where to put my savings. That's not laziness. It's because I genuinely don't know where to start.”
Copy-paste investing
62% of respondents pick stocks or mutual funds based on what they see others recommend on social media.
Goal disconnect
Only 23% said their current investments were tied to specific life goals like buying a house or funding education.
Trust gap
71% don't trust financial advisors because of hidden fees or commission-based incentives.
Knowledge barrier
45% understand the importance of rebalancing but don't know when or how to do it.
“I earn well but I have no idea if what I'm doing will actually cover my kid's education in 15 years.”
“My friend told me to start a SIP so I did, but I genuinely don't know if I'm doing it right.”
Surveys give you what, interviews give you why
The survey told me 62% copy investment ideas from social media. Interviews told me they do it because they feel unqualified to decide themselves and are afraid of looking stupid asking for help. The why changes how you design the solution.
Two personas was enough
I felt pressure to define more. But two personas the whole team could actually remember and argue about were more useful than five that sat in a PDF.
User testing: testing before launch
22 sessions, 7 critical issues, 4 flows redesigned
Two rounds of moderated testing, 11 participants each, recruited from our survey pool and matched to the Sakshi (Active Learner) and Nikhil (Cautious Optimizer) personas. Each session was 30 minutes on Zoom: 5 minutes of context, 20 minutes of task-based think-aloud, 5 minutes of open feedback. I ran every session and scored on a severity-coded rubric.
Round 2 used the same 4 flows and the same persona mix on redesigned prototypes. The improvement was clear, except Sakshi personas now wanted more detail on the portfolio screen. The simplified view worked for Nikhil but felt sparse for power users. That led to a collapsed-by-default, expandable-on-tap detail view that served both.
Round 2: one hero number at the top

Secondary details moved below, on scroll
“I feel like I'm taking an exam. Can you just tell me what's good for me?”
“I see seven numbers on this screen and I don't know which one matters.”
Onboarding felt like a quiz
Users described goal setup as "being tested". 6 of 11 hesitated at step 3 of 7: too many questions upfront with no visible payoff.
Portfolio was data-heavy
Users couldn't find the single most important number on the portfolio screen. Seven metrics competing for attention.
Alerts used jargon
"Rebalance your equity allocation" meant nothing to Nikhil personas. Notifications were dismissed unread.
Risk profiling felt arbitrary
Users didn't see how their answers translated into portfolio composition. The mapping was invisible.
Goal details: 3 taps too many
Users expected to tap a goal card and see details immediately. The nested navigation confused everyone.
Progress ring, the one win
"I can see I'm 63% there, that's motivating." The goal progress visualisation was the only universally praised element.
6 of 11 users abandoned at step 3 of 7. Felt like a quiz.
Reduced to 4 steps with a progress bar. Added a preview of what they'd get at each step.
Seven numbers, no hierarchy. Users couldn't find total portfolio value.
Single hero metric with secondary details on scroll.
Financial jargon in notifications. Users dismissed without reading.
Plain language with action context: "Your Retirement goal needs attention. You're ₹2L behind."
3 taps to reach goal details. Users expected direct access from the card.
Goal cards expand inline or open the detail view directly on tap.
Up from about 60% in round 1. Onboarding completion improved the most, from 40% to 90%.
Average time to complete core flows dropped by a third. Fewer steps, clearer labels.
Instead of managing abstract portfolios, people create journeys tied to real goals: a house, a wedding, their kid's education.
In testing, the goal progress visualisation was the only element everyone praised.
Qwark advises on allocation, sector selection and rebalancing based on each person's risk profile and timeline.

Scroll the page and the journeys screen scrolls too
Test early, test ugly
Our first round was on high-fidelity prototypes, and that was a mistake. Users focused on visual polish instead of flow logic. Next time I'd test mid-fi wireframes first.
Every major win was subtraction
Fewer onboarding steps. Fewer portfolio metrics. Simpler alert language. We didn't add a single feature from testing.
Design system: right-sizing Material 3
40 tokens, 3 modes, 20+ components
Material Design 3 gave us a head start: token architecture, role-based colour and a proven typography scale. The challenge was separating what helped a 4-person fintech team from what only makes sense at Google scale. Each guideline went through one question: does this help us ship faster and more consistently without a dedicated systems team?
M3's three-tier hierarchy (reference, system, component tokens) compressed from 100+ colour tokens to 40 that covered every screen. Each token is a Figma Variable with light, dark and high-contrast modes, so switching updates every component at once.
M3 saved us about 3 weeks. Then we had to unlearn it: the first developer build looked like a Google product, and the real work was replacing M3's defaults with financial trust cues.
“Can I explain this in 30 seconds at standup?”
Kept
- Colour roles (primary, secondary, tertiary, error)
- Dynamic colour via tonal palettes
- Shape scale
- Typography scale (display to label)
Adapted
- Elevation simplified from 5 levels to 3
- Custom fintech palette instead of M3 defaults
- Component variants reduced to essentials
- Motion tokens mapped to Framer Motion
Dropped
- Material You personalisation
- Full FAB component set
- Navigation rail and drawer patterns
- Extended colour roles
Developer handoff: Variable Mode Injector
An open-source Figma plugin
Our design system had 40+ tokens across 3 modes. Figma's Inspect panel showed raw CSS values, not token names, so our developer was hardcoding rgba(23,78,166,1) instead of --color-primary. Every component handoff became a 15-minute call explaining which token mapped to which value in which mode. Across 20+ components, that was unsustainable.
No existing plugin handled multi-mode variable injection, so I built one. Select a frame, inject all modes, and get side-by-side copies in light, dark and high contrast that keep their variable bindings, so Inspect shows the token name next to the resolved value.
After the plugin shipped, handoff calls dropped from daily to weekly. The conversation shifted from "is this the right shade of blue?" to "should this token role be primary or secondary?" It's published on GitHub under MIT.
“Wait, which token is that?”
Reflections
Design for trust in fintech
People are cautious with new financial products, especially when real money is on the line. Every design decision had to earn credibility through clear language, transparent processes and honest complexity.
Build tools when the pain is real
The Variable Mode Injector plugin started as frustration with an actual workflow problem. Building for real pain makes better tools than building for hypothetical use cases.
Doing PM work made me a better designer
Negotiating with vendors, reading API docs and writing PRDs taught me to think past the screen. Understanding business and technical constraints changed how I approach design problems.
The shipped flows
Real screens from the beta, grouped by flow
Onboarding


Account aggregation



Goal journeys


Portfolio



