I have been running small businesses in Ghana for several years. A commercial property, a vehicle lending operation, a few side projects. The one thing they all had in common was that managing the books was a pain.
Commercial accounting software is expensive. The affordable options are cloud-only, which means a monthly subscription and your data living on someone else's server. The free options are either too simple (spreadsheets) or too complex (full ERP systems built for accountants, not founders).
I wanted something in between. A proper double-entry system — not a glorified expense tracker — that runs on my laptop, keeps data locally, and does not require an accountant to configure.
Building it for myself first
I started BookKeeping as a personal tool. SQLite for storage, a simple REST API, a Vue.js frontend. The goal was to replace the spreadsheet I was using to track my rental property income and the loan repayments from my vehicle lending business.
It worked well enough that I kept adding to it. Multiple entities. Trial balance. Balance sheet. And then the thing that made it genuinely useful: Mini Apps.
The Mini Apps idea
The core accounting engine is generic. But the tools I actually needed were specific — a cash flow simulator that understood my annual drawdown pattern, a loan amortisation calculator tuned for the repayment schedules I was offering customers.
Rather than hard-coding these tools, I built an extension system. A Mini App is just an HTML file that gets loaded inside the accounting system and gets access to the live data via a local API. Simple, flexible, and anyone can build one.
Making it free
I spent a lot of time with software that extracted value from people who could not afford alternatives. Bookkeeping software in West Africa is a good example — the tools exist, but they are priced for European SMEs.
BookKeeping is free. It will stay free. The source code is available for anyone who wants to extend it, self-host it, or learn from it.
If you build something useful with it, I would love to hear about it.
— Edmond