CommerceTallyhubGH
2025 — presentInventory, point of sale and business operations for retail and wholesale
Core banking for savings-and-loans companies and rural banks

kernvo.com — captured from the live site
Kernvo is core banking for savings-and-loans companies and rural banks — the institutions too large for a spreadsheet and too small to be sold a core banking licence at bank prices. Customers, the cash desk, the loan book and the general ledger are one system, so the moment a teller takes a deposit the books already know about it.
It ships at kernvo.com. The work started under the name Franlind, which is why the repositories below still carry it — same product, same architecture, new name.
Every posting writes a balanced double-entry journal by itself. A journal whose debits and credits differ is refused at the engine, not flagged in a report afterwards. An unbalanced ledger is impossible rather than merely unlikely, and the trial balance, income and expenditure statement and balance sheet are drawn from the postings instead of typed up after them.
That one decision is what makes the rest safe to build.
Every role in the building gets the screen it needs, and they all write to the same ledger.
A role says what somebody may do. It does not say what they may do alone, and the second question is the one that loses money. Limits are configurable per institution, and above them a posting waits for a second pair of eyes — enforced in the posting engine, not in a policy taped to the counter.
Every active loan is graded by how late its oldest unpaid instalment is — current, OLEM, substandard, doubtful, loss — and provided for as a percentage of principal at risk. A provision run posts only the movement against what the ledger already carries, so re-running one is safe.
A double-entry ledger has to be the only writer of balances; every other surface reads projections of it. Keeping the ledger in its own service means the web and mobile clients can move quickly without ever being in a position to invent a balance. The onboarding form engine is separate for the same reason — application flows change constantly for regulatory and product reasons, and they should never require a release of the banking client.