Checkbook
A finance app that turns recurring bills, paychecks, transfers, and balance snapshots into a forward-looking cash calendar.
Problem
Most personal finance tools explain what already happened. I wanted a planning surface that shows low-balance risk and cash timing before they hit a bank account.
Approach
I built the product around a projection engine first, then layered a calendar UI, auth, onboarding, demo mode, and trust features around that core model.
Outcome
Checkbook is an active private product with a broader surface than the original MVP: forecasting, setup flows, goals, debt tools, invitations, account settings, and test coverage.
Highlights
- Projection engine expands recurring events and applies transfers and snapshots chronologically.
- Calendar surface translates raw balances into warnings, summaries, and day-level detail.
- Trust work includes invite-only signup, email verification, 2FA, DB-backed auth rate limits, and deployment runbooks.
Forecasting Core
The central model is not a ledger. Accounts, income, expenses, transfers, and snapshots feed a projection pass that answers a future-facing question: what will each account look like later?
That keeps the product focused on decisions. A user can see the downstream impact of a bill, paycheck, or transfer before the date arrives.
Product Surface
The calendar is the main surface, with desktop and mobile layouts built around scanning upcoming cash movement. Supporting flows handle onboarding, bulk setup, demo data, account settings, goals, debts, and invitations.
The public demo path matters because the app handles sensitive financial concepts. It lets someone understand the product before creating a real account or entering private data.
Engineering Shape
The app is full-stack TypeScript: Next.js, React, Tailwind, Drizzle, Better Auth, Playwright, and Vitest. I treated reliability and safety work as product work rather than polish after the fact.