Skip to content

RW

Reginald Woods

  • Portfolio
  • Resume
Contact

Reginald Woods

  • Portfolio
  • Resume
Contact
← All Projects

Desktop Finance Tracker

A commercially released desktop budgeting app for Windows and macOS that keeps every customer's financial data on their own machine.

Accompt began as a simple expense tracker for a friend who didn’t want a subscription, but the functions and macros in the spreadsheet template he bought kept breaking. So, I built an application with the structure and safeguards the spreadsheet lacked. Eventually, it grew into a commercial desktop application for Windows and macOS, bringing income, expenses, savings, debt, and goals together in one private, local-first system.

I chose local storage because it serves both the product and the business model. It makes a one-time purchase viable by avoiding recurring server costs and the need to collect or store customer financial data. For users, the same decision means faster access, stronger privacy, and direct control over their information and the relational database with foreign keys preserves data integrity. Finally, to keep development efficient, I used a shared codebase for Windows and macOS, allowing the product to reach both markets without doubling the work required to build and maintain it. And releasing it commercially meant building purchase-based licensing, automatic updates, code-signed Windows builds, and signed, notarized macOS releases.

This project allowed me to carry an idea through every stage, from understanding the user’s needs to delivering a reliable product they could purchase and use.

Project stack

01

ReactJS

Powers the interface inside Electron’s renderer process, which is isolated from direct database access. Data requests pass through the main process, while React updates only the parts of the interface affected by each change.

02

Electron

Packages the app for Windows and macOS from one codebase, with an IPC layer separating the interface from database access.

03

SQLite

Runs the entire backend from one local file instead of a server, with scoped queries, enforced relationships, integer-cent money, and migrations that can roll back.

04

Redux Toolkit

Holds every value the interface reads, with memoized selectors that pre-index transactions into maps and derive balances and goal progress rather than storing them.

05

Chart.js

Visualizes the data across several chart types, allowing users to follow trends over time, track progress toward their goals, and compare figures side by side.

06

GitHub Actions

Provides the macOS build environment the project needs, since signing and notarizing require Apple tooling that can't run on the Windows machine I develop on.

Highlights

01

Data Precision

Amounts are stored as integer cents and only formatted for display, so no balance is ever the result of adding two floating-point numbers.

02

Schema Migrations and Rollback

Each schema change backs up the database first, verifies integrity with a foreign key check after, and rolls back atomically if anything fails.

03

Derived State Architecture

Goal tracking derives progress from the associated transactions themselves rather than storing it, so coals never fall out of sync with the actual data.

04

In-Memory Indexing and Memoization

Transactions are pre-indexed into maps once, so regrouping a report by category, account, or period recomputes without walking the full history.

05

Server-Side Licensing and Activation

Purchases issue a license through a backend I built and host, and the app stays gated until it activates against it and the activation confirms.

06

Recurrence and Date Handling

Goals that roll over on a schedule handle leap years and month-end dates, so a target set for the 31st still fires in a month that doesn't have one.

07

IPC Architecture and Process Isolation

The preload bridge exposes a fixed set of named operations rather than generic data access, so the renderer can only request what the main process allows.

08

Release Automation and Code Signing

Universal macOS builds are signed, notarized, and stapled by an automated pipeline, so no release ever requires a manual signing step.

Next project Gadgetz Theme →
All projects

Let’s Talk

Contact Info

☏

1-818-966-7753

✉

Reggie@ReginaldWoods.com

in

linkedin.com/in/reginaldwoods

Hire Me →

Send a Message