Local by default
User-controlled SQLite files, backups, and locations keep ownership visible.
Independent product · 2025–present
A dependable, local-first financial workspace that makes checking, budgeting, reminders, and secure credential storage feel like one coherent tool.

01 · The challenge
Traditional registers, budgeting tools, and password managers split related household workflows across disconnected products. Bank Ledger brings them together while keeping financial data under the user’s control.
User-controlled SQLite files, backups, and locations keep ownership visible.
Transactions, budgets, reminders, and credentials share one interaction model.
Rollback-safe restores, snapshots, and recoverable deletion reduce risk.
02 · My role
I conceived the product and remain the sole architect and designer of its visual language, interaction model, feature behavior, and system structure.
Development is AI-assisted, but it is not “vibe coded.” I define requirements, boundaries, data flows, security posture, usability decisions, acceptance criteria, and final implementation direction. Every feature is reviewed against documented architecture and automated tests.
03 · Architecture
Explicit boundaries connect desktop capabilities, interaction, application behavior, API handling, validation, and persistence.
04 · Product experience
Recurring fixed expenses become a plan with available capital, remaining need, days left, and a daily target.

Startup reminders connect recurring obligations to the ledger without an external notification service.

OS-backed encryption protects credential values before SQLite persistence; copy controls keep saved passwords masked.

File-driven catalogs update controls, dates, numbers, and currency formatting. Custom catalogs require no application-code changes.


Large- and small-screen columns are configured independently while shared controls manage filtering, search, sorting, and record limits.



05 · Engineering posture
Context isolation, disabled Node integration, and contained navigation.
Per-launch tokens become scoped HttpOnly sessions for protected routes.
Validation, write locks, discrepancy reporting, and rollback-safe restores.
Cross-platform CI and packaged-build smoke testing.
The result
Bank Ledger demonstrates how I approach difficult product work: understand the human workflow, define strong boundaries, make consequential actions recoverable, and sweat the details users touch every day.
Discuss the project Return to résumé