I wanted Xero to stop lying to me about what my stock was worth. This is the tool that happened instead.
I run a small workshop. Timber in, furniture out. A handful of SKUs, two locations, one person doing the books at 11pm after the glue dries. Xero handles the invoices beautifully. And then you ask it the only question that matters, what did this sale actually cost me?, and it shrugs.
So I did what everyone does: spreadsheets. Three of them. A purchases sheet, a sales sheet, and a monstrosity called costing_FINAL_v7 that knew too much to die. Every void in Xero was forty minutes of hand-unwinding. Every freight bill was a judgment call I spread with a calculator and a bad mood. Month-end meant reconciling my made-up numbers against the trial balance and hoping the drift was small enough to ignore.
It never was.
Cin7 and DEAR are genuinely good products, for companies with a warehouse manager, a barcode fleet, and a couple hundred a month to spend on inventory theatre. I priced them out for a workshop with nine SKUs and walked away insulted. Xero's own inventory item type is a contact-name field with ambitions. Everything else in my price bracket averaged my costs, which isn't costing, it's rounding with confidence.
The Xero API, meanwhile, is genuinely lovely. Bills, invoices, credit notes, all readable. Manual journals, writable. Trial balance, right there. Everything needed to own the inventory truth locally and push one clean summary journal up per day. Nobody had built the small version of that. So I built the small version of that.
The engine you'd expect: FIFO layers, exact per-sale COGS, voids that restock the exact slices at their original cost, bill amendments that recost what's still on the shelf and raise a conflict when it isn't. Assemblies with real BOM rollups. Landed costs that hit open layers to the cent. A nightly draft journal, one per day, idempotent, reviewed in Xero with coffee.
The parts I didn't expect to care about: an audit trail where every consumption links back to its layer, a reconcile page that proves my stock value against Xero's trial balance, and a conflict log instead of silent best effort. The boring stuff is the product.
It's not multi-warehouse barcode enterprise. No serials, no batches yet, no purchase orders. They're on the list, in that order. It doesn't want to be Cin7. It wants to be the thing you run before you're big enough to need Cin7, and it wants month-end to take ten minutes instead of a night.
If that's your situation too (one business, real margins, Xero as the ledger), it's already running. This page you're reading is served by it.
— the person paying for the server