For CPA firms and the books they keep
Accounting software that refuses to lose your work.
A double-entry workspace for firms managing many client books. Posted entries are immutable, every change is on the record, and the AI drafts — it never posts.
- Free forever — every feature, no seat limits
- No credit card, no sales call
- Your firm is created the moment you sign in
The product
Built around the controls you already work to
Not a spreadsheet with a login. The rules an accountant relies on are enforced in the database, so they hold whatever the interface does.
Double-entry that actually holds
Debits must equal credits before an entry can be posted, and the check lives in the database — not just the form. Amounts are integer minor units end to end, so nothing is ever a rounding artefact.
Posted entries never change
A posted entry cannot be edited or deleted — database triggers refuse it. Corrections are made the way an auditor expects: void it on its own date, or post a dated reversal. Both stay on the record.
AI drafts. People post.
Import a bank statement and the classifier proposes journal entries with its reasoning attached. Every proposal lands as a draft you review, edit, or reject. Nothing the model produces can reach the ledger on its own.
Statements that tie out
Trial balance, general ledger, P&L and balance sheet, plus a drag-and-drop builder for custom reports with formulas. A custom P&L reconciles to the income statement to the cent, by construction.
Periods you can close
Lock a period and entries can no longer be posted into it. Close a fiscal year and the system sweeps the P&L into retained earnings for you, as a real journal entry you can inspect.
One firm, every client book
Clients and their books live under your firm with role-based access, and each firm’s data is isolated at the database level. Switch between books without switching tools.
How it works
From statement to signed-off in three passes
Set up the book
Create a client, add a book, and start from a standard chart of accounts you can rename, nest, or extend. Bring opening balances in when you convert.
Get the transactions in
Upload a CSV or PDF statement. Rows are parsed, deduplicated against what you already imported, and classified into proposed entries with a confidence score.
Review, post, report
Work the review queue, post what is right, and read the statements. Close the period when the month is done.
Controls
The guarantees, stated plainly
Each of these is enforced in the database, not just the interface — so it still holds if something goes wrong in the browser.
- Immutable once posted
- Database triggers reject updates and deletes of posted entries — corrections happen as new, visible reversal or void entries.
- Append-only audit trail
- Every state change records the actor, the action and a request id. Audit rows cannot be edited or removed.
- Period and year locking
- A closed period refuses new postings. Closing a fiscal year posts a real, inspectable closing entry.
- Firm-level isolation
- Row-level security policies plus a membership check on every query scope data to firms you belong to.
- Exact money
- Amounts are integer minor units from the database to the screen. No floating point anywhere in the path.
- Safe retries
- Submitting an entry twice — a double click, a lost response — cannot create a duplicate journal entry.
Pricing
Free. The paid plan is a thank-you.
Everything on this page is on the free plan — every client, every book, every entry. If it earns its keep in your practice, you can support it for the price of a coffee.
Free
$0
Unlimited clients, books, journal entries, statement imports, reports and AI classification. No trial, no card, no expiry.
Create your free accountSupporter
$5.00 / month
The same product, plus the knowledge that you are keeping it running. Cancel whenever you like, from Settings. Billing is handled by Stripe.
Switch on later from Settings — start free.
Questions
The things firms ask first
Is it really free?
Yes. Every feature is on the free plan — unlimited clients, books, journal entries, statement imports, reports and AI classification. There is no trial, no card required, no seat count and no locked capability. There is a $5 a month supporter plan for people who want to help keep the lights on; it unlocks nothing, because there is nothing left to unlock.
Does the AI post entries by itself?
No, and it structurally cannot. Classification produces draft journal entries linked to the imported transaction. A person has to review and post each one; the database function that updates an imported row is not able to move it to a posted state at all.
What happens when I get an entry wrong?
You void it or reverse it. Voiding posts an offsetting entry on the same date, so the period’s totals are unaffected. A reversal lets you choose the date. Either way the original stays visible in the ledger — nothing is deleted, and both sides show in the audit trail.
Can I see who did what?
Yes. Every state change writes to an append-only audit trail with the actor, the action, and a request id that ties it back to the exact request that caused it.
Is my clients’ data separated from other firms’?
Yes. Every table carries the owning firm, access is checked against your active membership on each query, and row-level security policies scope reads and writes to firms you belong to.
Can more than one person work in a book?
Yes. Invite colleagues to your firm and give them a role. Preparers can draft entries; owners, partners and reviewers can post them. If two people open the same draft, the second save is refused rather than quietly overwriting the first.
How do I get started?
Create an account and your firm is set up on first sign-in — there is nothing to install and nothing to configure first. Add a client, add a book, and you have a chart of accounts ready to post against.
Bring your books somewhere they can’t be quietly broken.
Free forever, no card. Already have an account? Sign in.