A client project for a finance business in Borama. Only the public landing page is shown; the staff system isn't, to protect the client's data.
The problem
The business ran everything in Excel. Every hagbad (rotating savings) group was its own spreadsheet, with a column for each payment period, hand-typed formulas for balances and fees, and colour codes to mark who had already been paid out. Murabaha financing and savings were tracked in separate workbooks.
As the business grew, this became hard to manage:
- Complex and fragile: one wrong formula or a sorted column could silently break a group's balances.
- Slow: working out who gets paid next, what each member still owes and the admin fee meant checking several sheets by hand.
- No single view of a customer: the same person could be in a hagbad group, repaying a murabaha and holding savings, with no way to see it all in one place.
- Shared by copying files: staff passed workbooks around, so nobody was sure which version was correct, and there was no record of who changed what.
- No safety net: risky customers were remembered rather than recorded, and deleted rows were gone for good.
What we built
Kaydiye is a web system that does the same work the spreadsheets did, without the formulas to maintain.
- Hagbad groups: daily, weekly or monthly groups in Somali shillings or US dollars. The system tracks every contribution, works out each payout slot, deducts the admin fee and shows who has been paid. The ledger still looks like the familiar spreadsheet, so staff adopted it straight away.
- Murabaha financing: enter an item, its price, the profit rate and the duration, and the system calculates the markup, total repayment and installment schedule, then tracks paid, pending and late installments.
- Kaydin savings accounts: deposits and balances per customer.
- One customer record: every group, financing agreement and savings account for a customer in one place, plus agents and the customers they bring in.
- Join requests and waiting lists for full groups.
- Red and yellow lists to flag customers who need caution before they join a group or take financing.
- Reports and a dashboard for collections, payouts and outstanding balances, instead of building them by hand.
Built to be trusted with money
- Staff accounts by invitation only, with role-based permissions
- Database transactions for murabaha agreements, payments and deposits, so a payment is either fully recorded or not at all
- Activity log of who changed what, and a trash bin so deleted records can be restored
- Rate limiting, input validation, and automated backups
- An automated test suite covering core flows, permissions and security, run in CI
- Deployed on a VPS behind Nginx, with MongoDB running as a replica set
The result
What used to take hours of checking spreadsheets now takes a click: the system knows who gets paid next, what everyone owes, and how each group and financing agreement stands. Staff work from one shared, always-current source of truth instead of passing files around.
