All projects
Invoice & Payment Tracker App
Invoicely — a local-first invoicing app: create invoices, record payments, and see what's outstanding, with no account or database required.
The problem
A small business invoicing a handful of clients doesn't need a full accounting suite — it needs to send an invoice, see who's paid, and know what's overdue, without setting up an account or a server.
What I built
- A dashboard: outstanding balance, revenue collected, overdue amount, a 6-month revenue trend chart, and an invoice-status breakdown.
- Invoices with line items, tax, discounts (percent or fixed), and multi-currency support (USD, PHP, EUR, GBP, AUD, CAD).
- Status — draft, sent, paid, overdue, cancelled — computed automatically from due dates and recorded payments.
- Partial or full payments against any invoice, with a full payment history, plus a lightweight per-client CRM and a print-ready PDF layout for every invoice.
Technology
ReactTypeScript
ViteTailwind CSSRecharts
Key technical decisions
- Local-first, no backend. Clients, invoices, payments and settings all persist in the browser via
localStorage, so there's no account, server, or database to stand up. - Status is derived, not stored. Whether an invoice shows as draft, sent, paid, overdue, or cancelled is computed from its due date and recorded payments each time it's viewed, rather than kept as a separate field that could drift out of sync.
- Seeded with sample data. The app ships with a handful of demo clients and invoices so it's usable immediately — Settings lets you clear it and start fresh.