Books that know what's missing.
From the bank's CSV export to reconciled books to a Preparer Package your accountant can read — without putting your financial history on somebody else's server. Private, cash-basis books for the owner-operated business, in one HTML document that opens in the browser you already have. No account. No telemetry. No cloud ledger. No software that stops working when you stop paying. Zero network calls unless you deliberately trigger one of its two named paths — each behind an action of yours, both off as shipped.
requests this page makes. No fonts, no scripts, no analytics — and a Content-Security-Policy header that forbids the page from loading anything else. Open the network tab and watch it stay empty.
calls the product makes on open, on save, or on any timer. Nothing in it fires on its own.
network paths in the entire file — each behind a deliberate action of yours, both inert as shipped. Named in full below.
Most bookkeeping software is a subscription to someone else's server, holding the most sensitive record you own — every dollar in, every dollar out, every account, every client — on a machine you will never see, at a company that has to still exist next year for your books to still open.
The Keep is the other answer. It is one document. You save it wherever you save things. It keeps your books in your own browser — encrypted under a passphrase only you have, if you set one. The first-run interview asks; leave it blank and the app stores them plain and says so, in amber, on the Vault screen. And by default it has no way to send them anywhere: under the settings it ships with, there is no code path that transmits your books at all.
| Date | Memo | Amount |
|---|---|---|
| 03-14 | Invoice 041 paidOperating ← Accounts receivable | 4,800.00 |
| 03-15 | Payroll runOperating → Wages | 2,310.55 |
| 03-18 | Quarterly estimate set asideOperating → Tax reserve | 1,140.00 |
| 03-21 | Software, annualOperating → Software & Subscriptions | 289.00 |
Figures as of the rate pack's published date — tax law changes; verify before acting. The app prints that sentence too.
A number you do not have is stored as unknown, with no value — and every screen that would have used it says so, instead of computing on a zero you never gave it. Standing reads your books on four levers, Known, Booked, Sorted, Proven; an unknown counts against the first until you answer it.
The first screen is not an empty ledger. It is a conversation — a few dozen questions, more if you run a business, each one turning on a named part of the app rather than filling a database field. Every answer is saved the instant you give it. Close the tab at question nine and nothing is lost.
“I don't know” is a legal answer. It records that you don't know, and the app keeps a list of what is still open instead of pretending you told it zero.
The panels above are drawn in the product's own stylesheet. These are the rooms themselves — the first opening, the ledger, Standing, the tax estimate, the Preparer Package — as they render in the file.
Before you buy, read what your preparer would receive: a sample Preparer Package, generated from sample books, its basis of accounting stated in the header. Open the sample package (PDF, about 130 KB).
The receipt page after checkout carries the file. Run one of those on it before you open it — and on Windows keep the SHA256 at the end, or certutil answers with a different hash (SHA-1) that will not match ours. If the number differs by one character, you are not holding the file we published, and you should not open it.
And then go further: the file is its own source code. Open it in a text editor and read what it does. Every claim on this page is checkable against those bytes, and the kind of person this product is for is exactly the kind who will check.
Printed here rather than discovered later. If one of these is a dealbreaker, it is better that you learn it now and keep your money.
There are no bank feeds and no import daemon, because both require handing credentials to a middleman. Transactions are entered by you, or brought in by you as CSV — parsed entirely in this window's memory.
It keeps a local snapshot ring and can recover itself from that, but if you lose the machine and kept no copy, the books are gone. That is the same trade as a paper ledger in a safe, stated plainly.
Minnesota is computed from its own TY2026 brackets and standard deduction, verified against the Minnesota Department of Revenue release of 2025-12-16 — the app prints that verification line on the screen where it uses them, and says there that Minnesota-specific additions and subtractions are not modeled. No other state is modeled. Name one and the app tells you so in those words and asks for the one rate it needs, instead of inventing a number that would look exactly as confident as a real one. A state with no broad individual income tax is counted federal-only — the correct answer, not a hole. A preparer signs the return.
A key needs a server to check it against, and the absence of a server is the product. So the file works if you copy it. We are asking you not to.
An annual edition, not a leash. Your year buys every build we ship inside it, and those builds are yours to keep forever. It renews each year so the next year's builds keep coming, and you can cancel whenever you like. The file never phones home — we built it so we can't switch it off. Cancel, and you keep what you have; what you give up is next year's edition. For scale: mainstream cloud bookkeeping rents for a few hundred dollars a year and stops working the day you stop paying. This doesn't.
There are cheaper ways to keep a ledger on your own machine, and some of them are good. A ledger is the floor. What the year buys above it: Compass, one next action at the top of every screen, ranked from the state of your books rather than from a list you wrote; Standing, a reading on four levers — Known, Booked, Sorted, Proven — of how far the books are from something you could hand over; Tax Reserve, what each draw should carry so that April is boring; and the Preparer Package, the handoff itself, with its basis of accounting printed in the header.
Why a year, and not once: the tables change every year — brackets, the standard deduction, the self-employment base, the mileage rate — and the year buys the builds that carry them. The app watches the age of its own rate pack and turns that line amber when it is stale. If you never renew, this cost you $149 once; the file you hold does not know the difference.
And the copy you own never expires. The license inside the file calls each build you receive perpetual, and the file carries no mechanism that could check, limit or revoke it — not a policy, a property of a document that phones nobody.
One person, for personal or internal business use — the license's own words. Every version shipped in your paid year is yours. Stop paying and the file you have keeps working forever.
You are buying a license to a file you keep. The license agreement is inside the file: accepted on first run, kept under Vault → Legal.
Thirty days, no questions and no interview.
The file keeps working for good. Your books live in this browser, not in the file — back them up from inside the app: Vault → Backups → Download encrypted backup. The file alone is not the backup.
Renews annually until you cancel. Cancel anytime — every build you have received keeps working.
For a bookkeeper, preparer or advisor keeping books for clients. Same file, same hash — what Practice buys is the license.
You are buying a license to a file you keep. The license agreement is inside the file: accepted on first run, kept under Vault → Legal.
Thirty days, no questions and no interview.
The file keeps working for good. Your books live in this browser, not in the file — back them up from inside the app: Vault → Backups → Download encrypted backup. The file alone is not the backup.
Renews annually until you cancel. Cancel anytime — every build you have received keeps working.
Your books live in your own browser's storage, on your own machine. Set a passphrase and they rest encrypted under AES-256-GCM, with the key derived from that passphrase by PBKDF2-SHA256 at 600,000 iterations — the snapshot ring and any bound file are encrypted under it too. Skip the passphrase and all three are stored plain, and the Vault screen says so in amber. With a passphrase set, the one unencrypted path out is a labeled button — Download backup (.json) — that you press on purpose.
There is no server-side to breach, because there is no server side. Under the settings the file ships with, your books are never transmitted anywhere — not a policy, a property. What we will not say is “unhackable”: your machine's own security is still yours to keep, the same as it is for anything else on it.
In your browser's storage, on this machine — not inside the HTML file itself. The file is the application; the browser holds the ledger, tied to the browser and profile you opened it in.
That has one sharp edge, and we would rather print it here than let you find it: clearing your browsing data clears the books. The snapshot ring protects you from a corrupted store, not from that. The answer is built in — bind the books to a file on disk (Vault → Durability → Bind a books file…) and every save is also written there — encrypted if you set a passphrase, plain if you did not. Binding uses the browser's File System Access support, which today means Chromium browsers: Chrome, Edge and their relatives. Everywhere else the app runs fully — export a copy on a schedule instead, and keep it where you keep important things.
No. Download it, put it on a USB stick, open it on a laptop with the Wi-Fi off — everything works, from a plain file:// address, forever. The only two things that touch a network are optional and yours to trigger: the update check (fires only when you set a URL and click it) and the local-model chat (off by default, aimed at your own machine unless you deliberately point it elsewhere).
Then the encrypted books cannot be opened — by you, or by anyone. There is no reset email because there is no server to send one, and no backdoor because a backdoor for you would be a backdoor for everyone. That is what encryption that actually works means, and we would rather tell you here than in a support thread. The Keep cannot reset it, and neither can we.
So: write the passphrase down and keep it where you keep important paper. The snapshot ring protects you from a corrupted file — not from a lost passphrase.
By email. Every update in your paid year is a new file — we send it to the address on your receipt, and its new checksum is published here so you verify it the same way you verified this one. That address is the only thing we ever hold: there is no account, because there is nothing for an account to unlock.
The file keeps working. It asks nothing of us after the day you buy it — no activation, no key check, no company that has to still exist next year for your books to still open. Updates would stop; the product would not.
No. It is bookkeeping and tax-estimation software. It computes from the rules and rates its build carries, each with a source and verification date attached, and it exports a Preparer Package your accountant can read — but a return is still yours and your preparer's to sign, and the app says exactly that, inside, more than once.
Thirty days, no questions and no interview. A buyer who wants their money back has told us something more useful than the money.
You have now read everything we would say in a sales call.
You are buying a license to a file you keep. The license agreement is inside the file: accepted on first run, kept under Vault → Legal.
Thirty days, no questions and no interview.
The file keeps working for good. Your books live in this browser, not in the file — back them up from inside the app: Vault → Backups → Download encrypted backup. The file alone is not the backup.
Renews annually until you cancel. Cancel anytime — every build you have received keeps working.