Skip to content

03 / In-house product

2026

DebtLens

Every debt, every currency, one honest number

  • NEXT.JS
  • REACT 19
  • TYPESCRIPT
  • POSTGRES
  • DRIZZLE
  • ZITADEL

Summary

DebtLens pulls debts across institutions, currencies, and statement formats into one view — amortization, payoff scenarios, utilization, debt-to-income — computed deterministically to the cent. Next.js and Postgres, a pure-function math core, and statement parsing for PDF and CSV. In development.

A · Problem

Debt hides in fragments — a card here, a line of credit there, two currencies, a dozen statement layouts. No single view tells you what you actually owe, or the date you'd finally be free of it.

B · Approach

A side-effect-free calculation engine: money as integer cents, rates as integer basis points, so amortization schedules and payoff timelines come out deterministic and testable. Statements ingest through fuzzy CSV mapping and PDF parsing; Bank of Canada rates reconcile multi-currency balances; scheduled jobs handle reminders and refreshes.

C · Artifacts

React components
159
Postgres tables (Drizzle)
13
math models, each unit-tested
4
currencies reconciled — CAD · USD
2

Amortization, payoff, utilization, and debt-to-income models each behind their own test suite; CSV and PDF statement parsers with a rule-based categorizer; S3 presigned uploads, Upstash rate limiting, Zitadel auth, and Vercel cron for daily FX and reminders.

D · Outcome

A precise, multi-currency picture of what you owe and when it ends — deterministic enough to act on. In development.