Independent product · 2025–present

Bank Ledger

A dependable, local-first financial workspace that makes checking, budgeting, reminders, and secure credential storage feel like one coherent tool.

Role
Sole architect & product designer
Platform
Electron desktop application
Data
Local-first SQLite
Delivery
AI-assisted implementation
Transaction entry form and populated ledger table
A financial workspace designed around the way people review and record transactions.

01 · The challenge

Personal finance software should reduce cognitive load—not add to it.

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.

Local by default

User-controlled SQLite files, backups, and locations keep ownership visible.

One workspace

Transactions, budgets, reminders, and credentials share one interaction model.

Recoverable actions

Rollback-safe restores, snapshots, and recoverable deletion reduce risk.

02 · My role

Product ownership from first sketch to packaged application.

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.

Product strategyInteraction designSystem architectureTechnical directionQuality standards

03 · Architecture

Separation that keeps the application understandable.

Explicit boundaries connect desktop capabilities, interaction, application behavior, API handling, validation, and persistence.

Electron desktop shell · sandbox · OS encryption
Modules Ledger · Budget · Password DatabaseSensors + Behaviors semantic events · feature logic
Express API authenticated loopback routesValidation normalized, bounded records
SQLite transactions · history · settings · credentials
20K+lines of code
109automated tests
5included languages
2release targets

04 · Product experience

Details designed as one system.

Budget planning

See next month before it arrives.

Recurring fixed expenses become a plan with available capital, remaining need, days left, and a daily target.

Budget Planner with recurring expense controls
Timely reminders

Commitments surface at the right moment.

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

Transaction reminders above the ledger
Secure utility

Credentials live beside the workflows that need them.

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

Password Database with fictional credentials
Localization

The interface adapts beyond translated labels.

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

Bank Ledger in Spanish
Español
Bank Ledger in Simplified Chinese
简体中文
Responsive behavior

Different screens deserve different information priorities.

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

Filtering and sorting settings
Shared view controls
Large-screen columns
Large-screen columns
Small-screen columns
Small-screen columns

05 · Engineering posture

Local-first does not mean security-last.

The result

A serious financial tool designed to keep evolving.

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é