jhtigcal.dev
Contact
Sentinel's overview: account balance cards, a cash flow statement, net worth over time, and a money flow chart.
/ Projects

Personal finance Sentinel

Turns Philippine bank and credit card statements into one clean, searchable record of your money.

Open Sentinel
Type
Web app
Reads
6 banks
Status
Live

Highlights of Sentinel

  • Files grouped by bank, each statement marked as read.

    Reads your statements

    01

    BPI, UnionBank, MariBank, CIMB, GCash, and EastWest, PDF or Excel.

  • The merchants list, with each merchant's category and where it came from.

    Names merchants

    02

    “Gadc 123ortigasave So Pasig” becomes McDonald’s. Your own rename wins.

  • The Inbox asking who a person is to you: family, friend, yourself, household staff, or landlord.

    Asks what it can’t tell

    03

    One question per merchant or person, biggest first. Each answer files the rows to come.

  • Spending by category, savings by account, and income by source.

    Shows where it went

    04

    Spending and income by category, and what each account kept.

  • A chart of money moving from salary through each account.

    Follows money between accounts

    05

    Paying the card from savings counts as one transfer, not spending plus income.

  • The command palette, searching for “new”.

    Goes anywhere from the keyboard

    06

    Ctrl K finds a page, an account, or an action.

How it’s built

Statements are parsed on the server and checked against their own totals before anything is stored.

Reading statements

Runs on
The server, on a worker thread
Formats
PDF, Excel exports, and Sentinel’s own CSV
Accepts
Only statements whose rows match the printed totals and running balances
Never sent to
A model

Naming and sorting

Merchants
Named by Claude; your rename wins
Categories
Jev, a low-cost decision model, under a spending cap
Transfers
Matched between your own accounts

The app

Interface
React, Mantine, and TanStack
API
Effect, schema first, with OpenAPI
Storage
PostgreSQL

Hosting

Server
DigitalOcean, behind Caddy
DNS and backups
Cloudflare
Infrastructure
Pulumi

More projects

Since you’re still here.

Let’s build something boring.

Boring is the good kind of software.