All projects

Fintech app

OurBudget

A personal finance app for Canadians that connects to real bank and brokerage accounts.

Role
Designed and building
When
2026 – present
Status
In development
Built with
TypeScript, PostgreSQL, Drizzle, Supabase, Plaid, SnapTrade, Expo

Walkthrough

A look inside OurBudget

Screens from the Expo web build running locally against OurBudget's own deterministic demo dataset, which is generated by the same demo connector the tests use.

OurBudget dashboard with monthly spending against budget, net worth, transactions to review, top categories and upcoming bills

Every account, merchant and amount here comes from the generated demo dataset. No real bank or brokerage data is shown.

  1. Problem

    Most budgeting apps are built for the US, and the good ones hide your data behind a single aggregator. Canadians end up juggling spreadsheets and bank apps to see budgets, bills and investments in one place.

  2. Approach

    One app for budgets, accounts, transactions, investments and recurring bills, built on a provider-agnostic data model so account connections can be swapped or added without touching the core money logic.

  3. Implementation

    A strict TypeScript monorepo (pnpm) with PostgreSQL row-level security, Drizzle migrations and Decimal-based money math kept in its own package. Every account connector implements one shared contract and passes the same test suite, starting with a deterministic demo connector. Supabase Auth, then Plaid and SnapTrade in sandbox, with an Expo app for mobile and web.

Highlights

  • Built phase by phase from a written 16-phase roadmap, with tests, typecheck and lint gating each phase
  • Plaid and SnapTrade connected in sandbox (phases 11 and 12)