Case Study
Built & launched · sunsettedDUO Neobank for Couples
A couple-first finance workspace for shared bills, budgets, investing, and approvals, built around the pain of managing money across too many disconnected tools.
A full-stack fintech prototype with partner-consent approval flows, identity verification, and banking-style integration boundaries, built solo.
Problem
The pain point that caught my attention was not just tracking expenses; it was shared intent. Couples can split bills manually, but decisions around savings, subscriptions, investments, and high-value transfers need clarity, consent, and history. Most consumer finance products still feel built for one account holder, then force couples to improvise around the edges.
Solution
I built DUO as a full-stack fintech prototype with Angular for a structured, state-heavy client and NestJS for the approval and orchestration layer. I used Plaid-style banking boundaries and Persona-style identity flows because the product only works if account access, verification, and sensitive actions feel explicit. The core interaction is partner-aware: important actions move into a pending approval state before they become final.
Outcome
The result is a product story around trust, not just dashboards. DUO shows how I think through financial UX, multi-step flows, and backend rules when user intent needs to be auditable. The demo also gave me a stronger pattern for building Angular features that remain understandable as the product grows.
Technical decisions
How it's built
- Angular standalone feature modules keep banking, bills, identity, and investment flows separated without fragmenting the user journey.
- NestJS owns the approval rules because partner consent is business logic, not a front-end-only state toggle.
- Plaid and Persona are modeled as integration boundaries so account data and identity verification stay isolated from presentation code.
- Docker keeps the local full-stack workflow close to the way the services would be deployed.
What I'd do differently
- I would add a richer audit log before expanding the transaction model.
- I would validate the approval language with real couples before adding more banking features.
- I would separate demo fixtures from integration adapter code earlier to keep the architecture cleaner.