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.






Every account, merchant and amount here comes from the generated demo dataset. No real bank or brokerage data is shown.
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.
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.
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)