Role
Product Lead | Mowa
Skills

Overview
Mowa Books is a local-first accounting, invoicing, and payroll app for freelancers, builders, and small businesses. The product is built to make day-to-day bookkeeping disappear: send an invoice, run payroll, record a transaction, and the books reconcile themselves. Multi-currency from day one (NGN, USD, GBP, EUR), with payroll tax handled automatically.
Why was it built?
Most bookkeeping tools for small operators ask the user to think like an accountant. Mowa Books does the opposite: the user records what actually happened (sent an invoice, ran payroll, paid a supplier), and the bookkeeping is a consequence of those actions, not a separate task. The product is shaped for freelancers, builders, and small businesses that need clean books for compliance and decision-making without learning accounting in the process.
How is it built?
Mowa Books is a local-first web application. Data lives in the browser via Dexie / IndexedDB, with a clear path to cloud sync as a paid tier. The full Next.js 16 application runs on Cloudflare Workers via @opennextjs/cloudflare, which keeps deployment unified with the rest of the Mowa stack. Authentication runs on Clerk; the payroll tax engine is built in pure functions, fully unit-tested, so payroll calculations stay reliable as the codebase evolves.
What's shipped so far
- Multi-business books with per-currency accounts (NGN, USD, GBP, EUR).
- Invoicing with PDF rendering, payment tracking, and partial / paid / overdue states.
- Payroll with automatic tax calculation.
- Project-level instalment tracking with CSV import.
- Categorised transactions, account-scoped reports, and CSV export per report tab.
- Local backup, restore, and a sample-data first-run flow for new users.
- In-app knowledge base of 16 step-by-step guides.
Results
- Live in private beta at books.mowa.work.
- Built on Next.js 16 + OpenNext + Cloudflare Workers.
- Multi-currency, multi-business, with automatic payroll tax handling.
- 3-day free trial, no card required, sample data on first run.