The problem
Small landlords track rent on paper or in chats. Tenants dispute payments, and repairs get forgotten — there is no single record showing, month by month, what each tenant owes, has paid, and still owes.
What was built
A standalone rent and maintenance ledger: properties with units, tenants whose agreed rent is copied from the unit at move-in so later rent changes never rewrite history, payments recorded against the exact month they cover with a printable receipt (TT-0001...) for each one, an M-Pesa code that can only be entered once so a payment can never be counted twice, a month-by-month tenant ledger showing due, paid and balance with Paid / Partial / Unpaid states, an arrears view largest-first that never lets a current-month payment hide an older missed month, and maintenance tickets that stay open until the repair is done. Kenyan defaults throughout: KES, +254 phones, M-Pesa receipt codes, and no external services.
Standalone ledger for small landlords: properties and units, month-by-month tenant ledgers, printable receipts (TT-0001...), duplicate M-Pesa codes rejected, arrears largest-first, maintenance tickets, reports and CSV exports. Kenyan defaults: KES, +254 phones, M-Pesa receipt codes.
Challenges & solutions
Arrears honesty: a payment for this month must never hide an older missed month, and advance payments must show separately from what is owed — solved by counting arrears month by month from positive monthly balances only.
Outcome
A working ledger for small landlords: one record per tenant per month, a receipt for every payment, and a repair list that stays open until done — with public pages that state plainly what it does not do: no tenant portal, no M-PESA integration, no late fees.