
02_tonnie-cuts
TONNIECUTS
A better way to run your salon. We've replaced the chaos of manual booking with a system that just works.
// Problem: Manual ledger management creates systemic vulnerabilities in shop scaling.
// Architecture: Automated booking and instant digital reconciliation.
// Stack: Fastify · Prisma · PostgreSQL · M-Pesa SDK
// Status: Live at tonniecuts.com. Powering Nairobi's top stylists.
// THE_PROBLEM
The Accountability Barrier
Financial integrity shouldn't be an afterthought.
// THE_SOLUTION
Auditable Growth.
TonnieCuts replaces the uncertainty of paper-based tracking with a robust digital ledger. We've automated the reconciliation process to ensure every transaction is auditable and every staff payout is accurate.
// THE_TECH_FLEX
Engineered a double-entry reconciliation engine that protects shop owners from ledger drift, providing real-time financial visibility across multiple locations.
// ARCHITECTURE_SNIPPET
// reconciliation.service.ts
export class ReconciliationService {
async reconcileLedger(shopId: string, period: DateRange) {
const transactions = await this.db.ledger.findMany({
where: { shopId, createdAt: { gte: period.start, lte: period.end } }
});
const balance = transactions.reduce((acc, tx) => {
return tx.type === 'DEBIT' ? acc - tx.amount : acc + tx.amount;
}, BigInt(0));
if (balance !== 0n) {
throw new LedgerDriftError(`Imbalance detected: ${balance}`);
}
return { status: 'BALANCED', totalVolume: this.sum(transactions) };
}
}// TECH_STACK