Show HN: Plain HTML tool for simple personal accounting
by sras-me | 2025-10-04 15:46:10+00:00
I have been using ledger-cli (https://ledger-cli.org/) for a while and it is a great tool, but I found it hard to enter transactions while I am afk, for example using my phone while traveling.

I made this (really basic) accounting tool available at https://sras.me/accounts/ to solve that problem.

To use it, just use "view source", download the plain html and open it from your browser. Or use it directly at https://sras.me/accounts/, I don't mind.

It does not have a back-end, and all data is stored on your device's local storage (broswer's indexedDb to be exact). For syncing with other devices, you use a free service like https://getpantry.cloud/ or https://jsonbin.io/ to export the compressed and encrypted JSON data from this app, and later import the same to the app running in other devices. You can also export the journal as a text file in ledger-cli format, to use with ledger-cli, if you want to run some advanced reporting on it.

The format of input data mostly follows that of ledger-cli. That is you enter your accounts like, `Assets:Bank:MyBankName` or `Assets:Cash` or `Expense:Purchase:Food` etc. The debit/credit convention also follows that of ledger-cli. Negative numbers for debit and positive for credits. There is no support for currency symbols or commodities.

The UI is geared to make entering multiple transaction over multiple dates easy. So you can use a common source account (akin to ledger-cli where you can leave the amount for a common source/destination account empty and it will compute it automatically), and then use the UI to enter transactions spanning multiple dates (use the '+' button to generated more form fields)

Once saved, the transactions will show up in the journal. You will be able to click on the transaction date in the journal, and edit/delete the transaction.

There is also some minimal functionality to track monthly budgets. The way it work is really simple. You configure monthly allocation, and set a start date to compute budget report. The program will tell you how much funds is available for the current month. Or by how much you have exceeded the allocated amount, This is based on the transactions for the current month as well as any pending/exceeded budget allocations from the past months, starting from the configured budget date.

To use a remote service, you must create a data store in that service and use the endpoint to update/read the data store in the "remote" page. You should also include the Authorization headers that are required by the service.

For example, if you are using jsonbin.io, then you have to create a bin, and use the url to that bin and the authorization headers from there.

jsonbin.io's free tier currently limits the exported record size at 100 KB. But since the export data is compressed, this should be sufficient to store several month's worth of personal transaction data. I have not used the service from https://getpantry.cloud/, but they seem to offer storage of much larger records.

But I think it does not really matter. The app allows you to export only a subset of the transactions. So you can just export two weeks worth of recent transactions to import to other devices for syncing with them. If you end up with a large amount of data on a device, then you have to use a service that offer larger storage, or import the whole data in multiple export/import steps.

As mentioned earlier, the export data is encrypted using a user provided password but I provide no guarantee that it is unbreakable!