FintechNext.jsPrismaCase Study

Modeling TFSA, FHSA, and RRSP: Building MapleWealth for Canadians

By Kasim Kazmi · August 3, 2026 · 4 min read

Most personal finance apps are built for a US audience and treat every savings account the same way. Canada's registered account system doesn't work like that.

MapleWealth is a private-first personal finance dashboard I built specifically for Canadian users, using Next.js 16, TypeScript, Prisma, PostgreSQL, and Better Auth. The starting problem was that most consumer finance tools model a 'savings account' as one generic bucket — which doesn't match how registered accounts actually work in Canada.

TFSA, FHSA, and RRSP aren't interchangeable

TFSAs, FHSAs, and RRSPs each have their own contribution room rules, tax treatment, and withdrawal implications. A generic 'net worth tracker' that just sums account balances misses the part that actually matters for financial planning in Canada — how much contribution room is left, and what the tax consequences of a withdrawal or contribution actually are.

MapleWealth models these as first-class account types rather than generic savings buckets, so tracking and projections are built around the real mechanics instead of an approximation.

Privacy-first as an architectural constraint, not a feature checkbox

Financial data is about as sensitive as personal data gets, so 'private-first' needed to shape the data model from the start rather than get bolted on later. That meant building around Better Auth for authentication and keeping the data model scoped tightly to a single-tenant, privacy-conscious experience rather than a broad multi-tenant SaaS assumption.

Practical tools on top of the account model

On top of the account modeling, MapleWealth adds rule-based savings and emergency-fund allocation, CSV transaction imports so users aren't stuck manually re-entering history, and dividend tracking backed by structured financial analytics.

Production Lighthouse numbers: 99 performance, a perfect 100 SEO score, and a 2.2s Largest Contentful Paint — solid results for a dashboard that's inherently data-dense and chart-heavy rather than a static marketing page.