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.
Next
AlgoMotion