Your hledger journal, in the browser.
Plain-text accounting on a phone, kept in a private repository of your own. hledger itself does the accounting — the real thing, compiled to WebAssembly and running in the page.
hledger does the accounting
Not a reimplementation. hledger-lib is compiled to WebAssembly and answers every question the screens ask, so the numbers are hledger's own and new releases can be followed.
The file is what is true
Your journal stays the text file it is. Entries are appended, never rewritten; the text can be edited directly; and whatever this app does not understand is carried through untouched.
Nothing is uploaded
There is no backend. The journal is read in the page and kept on the device. The only thing it talks to is GitHub, and only when you ask it to.
Kept in a private repository
Sync to a private GitHub repository with a fine-grained token. Entries written on the phone are laid after entries written on the desktop; when both sides changed the same lines it says so rather than choosing a winner.
More than one set of books
A company's and a household's are different files, so they are different books here — each with its own repository, switched from the corner of the window.
Free, and without advertising
Nothing is served but static files, so it costs almost nothing to run and there is nothing to sell. No account to make, and nothing counted but the fact that a page was opened — without cookies, and never anything from a journal.
It does not end if this site does
All of it is public on GitHub, and what is published is static files. Put your own copy on Cloudflare — as of August 2026 this fits well inside what they give away — and carry on at an address of your own, with the journals already in your repository.