Two sets of books.
One set of numbers.
The accounting console we built for our own company. Enter a transaction once, and it lands in the right books on its own — no second spreadsheet to keep in step, no month-end surprise.
Run it on your own server·Free forever
The same three transactions, kept two ways
You already know how this goes wrong
Three things that happen to every small company that keeps its own books.
The two files stopped matching
Someone fixed a number in one place and not the other. You find out in March, when it is far too late to remember which one was right.
The invoice never went out
The work shipped in May. The invoice went out in August, after the client asked about it. Nobody was watching the gap in between.
Nobody can say what you are owed
Not without opening four files, filtering each one and adding it up by hand — and getting a slightly different answer every time.
Mark it once. It files itself.
Every transaction says which books it belongs to — internal, external, or both. The two views read from the same rows, so they cannot drift apart.
- Salaries stay internal. A pay run marked internal never appears in the external view. You do not delete it, and you do not keep a second copy of it.
- Client income counts twice, on purpose. Revenue that belongs in both books is entered once and shows up in both.
- Two currencies, two totals. New Taiwan dollars and US dollars are added up separately. Nothing invents an exchange rate for you.
Dual books

One page for everything you are owed
Who should be billed, who has been billed, and who still has not paid — with the next thing to do sitting on every row.
Billing board

Nothing sits in limbo
An item moves forward on its own as dates pass and payments arrive. You never set a status by hand, so it is never quietly wrong.
Two kinds of money, one list
A contract is signed once and billed in stages. A subscription bills every month, forever. On a Tuesday morning they are the same job, so they share the same list.
Nagging that reaches you
A reminder inside the app only works if someone opens the app. These go into a Google Calendar instead — so they turn up on your phone at nine in the morning, next to your meetings.
Connect the calendar once. Dates move when the work moves. There is nothing to keep running in the background.
Where the money is, and who is late
Two questions you ask constantly, answered on two pages instead of in a spreadsheet you rebuild every quarter.
Overview

- Every account, every currency. Balances sit side by side, unconverted, so the number you read is the number in the bank.
- Money in against money out, month by month, with the trend behind it.
Reports

- How old the debt is, per client — not just how big it is.
- Work you agreed to but never billed for. A signed contract nobody scheduled is money you will forget to ask for.
Ask your books a question
Point an AI assistant at it and ask in plain words. It reads exactly what you can read, and nothing you cannot.
It can write, too — “log that NT$18,500 cloud bill as an external expense” is a sentence, not a form.
Nobody has to work in a language they are guessing at
Switch, and the whole thing follows — buttons, tables, even error messages. Try it:
The rest of the month
Bookkeeping is not only ledgers and invoices. These are the parts that make it survivable.
Clients and suppliers
Everyone you deal with is a proper record, so a name is never typed twice or spelled two ways.
Money people fronted
Someone paid out of their own pocket. Track what the company owes them and settle it properly.
Checking against the bank
Match what the bank says against what you recorded, and write down the difference instead of arguing with it.
Payroll
Staff, pay items and pay runs, posting straight into the internal books where salaries belong.
Receipts on file
Upload the receipt or the contract and attach it to the entry it justifies. No shoebox.
More than one company
Run several companies from one install. Each one only ever sees its own numbers, and you switch with a click.
Three commands, your own server
It is an ordinary web app with an ordinary database behind it. Put it wherever you already put things.
bun install
cp .env.example .env.local
# database address, a secret, Google sign-in
bun dev # then open localhost:3000
The first person to sign in sets up the company. There is a Docker setup in the repo if you would rather not think about versions.
- Built with
- Next.js 16, React 19, Tailwind CSS
- Database
- Any PostgreSQL — nothing in it is tied to one provider
- Sign-in
- Google, with invites and owner & admin roles
- Hosting
- Your server, a container, or a serverless platform — the repo does not insist
- Licence
- Apache 2.0. Use it, change it, sell what you build with it
Stop reconciling your own files
It is the tool we run our own company on — not a general-purpose accounting suite, and not trying to be. If you keep two sets of books and chase your own invoices, it will probably fit.
Already using it? Log in here.