---
title: "MoneyFlow"
url: https://phatdev.net/en/projects/moneyflow
lang: en
alternate:
  vi: https://phatdev.net/vi/projects/moneyflow
markdown: https://phatdev.net/en/projects/moneyflow.md
---

# MoneyFlow

> iPhone and iPad app for Vietnamese household finances: one shared ledger for the family, quick entry with categories picked from the note, rolling budgets, bills and recurring transactions, savings and a live 99.9 gold price, debts and loans, and cost splitting with the minimum transfers. Synced through a server the household runs itself.

- Role: iOS · Family finance · Sync
- Status: Version 0.6.0, used internally by the family
- Technology: Swift, SwiftUI, SwiftData, Node.js, PostgreSQL
- Docs and changelog: https://phatdev.net/docs/moneyflow
- All projects: https://phatdev.net/en/projects.md

## Project facts

- Role: Author: planning, architecture, product direction
- Stack: Swift 5, SwiftUI, SwiftData; Node.js and PostgreSQL server
- Version: 0.6.0 (Oct 11, 2026)
- Runs on: iPhone and iPad, iOS/iPadOS 26.1+

## Metrics

- 63: app tests for bills, recurring items, budgets, gold price, CSV and category suggestions
- 27: default categories (9 income, 18 expense) with identifiers stable across devices
- 250+: Vietnamese keywords behind category suggestions, accent-insensitive
- 0: third-party libraries or SDKs in the app

## Highlights

- **One shared ledger for the household**: Transactions, categories and budgets sync between members through a server the household runs itself. Splitting is computed over every member, with the minimum transfers needed to settle.
- **Categories picked from the note**: Type "phở" or "grab" and the app picks the category from the household's history, then a Vietnamese keyword set. A manual choice is never overridden.
- **A gold price that says how fresh it is**: The 99.9 buy-back price comes through a proxy server, with no API key in the app. Old or missing prices are labelled, and alerts fire only for a freshly fetched price.
- **Budgets and bills that do not slip**: Rolling budgets alert at 80% and 100%. Bills remind at 9 AM and show overdue clearly. Recurring transactions keep their original day even through short months.
- **The household owns its data**: The store is encrypted while the device is locked, the app locks with Face ID or Touch ID, and the session token sits in the Keychain. The app ships no passwords or API keys.

## In-depth analysis

### The problem

A Vietnamese household usually has several people spending: a couple, sometimes children or grandparents. Each keeps track in their own way, or not at all. At the end of the month nobody can answer simple questions: how much did the household spend, where did the money go, who spent more than their share, are the electricity and water bills due yet, what is the gold we hold worth now.

The existing approaches all have gaps. Personal spending apps are usually designed for one person, so splitting costs in the home is still done by hand. A shared spreadsheet works but is slow to fill in on a phone, easy to break with a formula and never reminds you of anything. On top of that, a household's financial data is something many people do not want on a third party's service. And things that are very Vietnamese, such as the 99.9 gold price, monthly electricity and water bills, and notes like "phở" or "grab", are rarely handled well by foreign apps.

### The solution

MoneyFlow is a shared financial ledger for the whole household: quick entry on the iPhone, sync to a server run by the household itself, and the calculations a household keeps having to do already built in.

#### Fast entry, categories picked for you

The amount groups thousands as you type, with six quick amounts. Type a few words of note and the app picks the category: the household's own history first, then a built-in set of about 250 Vietnamese keywords, accent-insensitive. A manual choice is never overridden.

#### One shared ledger, accurate splitting

Transactions, categories and budgets sync between members. Because everyone sees every expense, the app can work out each person's total, the even share, and the minimum set of transfers that brings everyone level. The even share is computed over every registered member, including someone who has not spent anything yet.

#### Budgets, reports, bills and repeating items

Per-category budgets roll over automatically and warn at 80% and 100%. Period reports show the breakdown, the cash flow and each member. Monthly bills are reminded ahead of the due date at 9 AM and are shown clearly when overdue; recurring transactions such as salary and rent are created on the right day and keep their original day of the month even through short months.

#### Savings, gold and debts

The 99.9 gold price (the buy-back price) is updated live through a proxy server, so the API key is never inside the app. When there is no real price or the price is old, the app says so instead of letting you think it is the current price, and price alerts fire only for a freshly fetched live price. Savings goals have progress and deadlines; money lent and borrowed has repayment dates and a net balance.

#### Data stays with the household

Data is stored on the device, the store is encrypted while the device is locked, the app locks with Face ID or Touch ID, and the session token is in the Keychain. The sync server is set up by the household, authenticates with bcrypt and JWT, and depends on no third-party service apart from the gold price source.

### Comparison with the usual approaches

The table compares groups of common solutions rather than individual products. The "personal spending app" and "shared spreadsheet" columns describe the typical case; not every product behaves that way. Key: Yes means done well, Partial means done in part or by hand, No means not available.

| Feature | MoneyFlow | Personal spending app | Shared spreadsheet |
|---|---|---|---|
| One ledger for several members | Yes | Partial | Yes |
| Cost splitting with the minimum transfers | Yes | No | Partial |
| Category picked from a Vietnamese note | Yes | Partial | No |
| Rolling budgets with 80% and 100% alerts | Yes | Yes | Partial |
| Bill reminders ahead of time, overdue shown | Yes | Partial | No |
| Recurring transactions created automatically | Yes | Partial | No |
| Live 99.9 gold price, gold profit and loss | Yes | No | Partial |
| Debts and loans per person | Yes | Partial | Partial |
| App lock with Face ID | Yes | Partial | No |
| Data on a server the household runs | Yes | No | No |
| Automatic import of bank transactions | No | Partial | No |
| On the App Store | No | Yes | Yes |

> MoneyFlow's strength is one shared ledger for the household with accurate splitting, Vietnamese-aware category suggestions and a live gold price, while the data stays in the household's hands. Its limits: figures are entered by members rather than pulled from banks; it works in Vietnamese dong only; savings, gold, debts, bills and recurring items stay on each device and do not sync; the shared ledger has no privacy between members and is not end-to-end encrypted; the household must set up and run a server; and the app is still an internal development build that has not been released.
