06 · 2026
mastro

— In short
The back-office I run the studio on: clients, installment plans, maintenance retainers, recurring costs and a month-by-month cash forecast.
In Italian, “mastro” is two things at once: the ledger where every euro in and out gets written down, and the master craftsman — the one who actually knows the trade. This is both: the back-office where I keep score of the freelance work. Clients, projects, installment payment plans, out-of-retainer jobs, monthly maintenance retainers with hour quotas, recurring costs.
The hard part isn’t the records, it’s time. Installments move: a client pays late and the whole plan shifts from there. Postponing is an explicit action here, propagated by date to the installments that follow — nothing rewrites itself behind your back. From those due dates, plus active retainers and recurring costs, comes the cash forecast for the months ahead, and from there the client hours statement and the printable account summary — monthly, half-yearly or annual.
Underneath sit three separate layers: a pure TypeScript domain — no React, no Firebase, tested in isolation — repositories over Firestore, and a Next.js interface. Money is integer cents, due dates are ISO date-only strings: two decisions made on day one so rounding and time zones never get a vote. It’s single-user and private: the preview above is the demo, running on sample data in the browser.
What’s inside
- Installment plans with date-propagated postponement
- Maintenance retainers with hour quotas
- Month-by-month cash forecast
- Printable account statement as PDF
- ⌘K command palette and installable app
- Demo on sample data
Need something like this?
Tell me in a few lines what you do and what you need — I reply within 24 hours.
Next project