We ran our own invoicing on spreadsheets for over a decade - roughly eleven hundred files across paid, pending and cancelled folders, plus delivery orders and credit notes. It worked, but the archive was unsearchable and invoice numbering depended on somebody remembering.
The replacement covers client records, service expiry tracking with one-click renewal invoicing, and full invoice management with PDF and Excel export, email delivery and multi-admin logins. Because the hosting plan has no shell access, every setup task that would normally be a command line job - first admin creation, data import, database migrations, backup and restore - was built as a browser page instead.
The interesting part was the migration. Five hundred invoices, sixty-two clients and seven hundred and eleven line items were parsed out of two decades of slightly inconsistent spreadsheet layouts, with every invoice's line items verified to sum exactly to its stated grand total. Zero mismatches. Invoice numbers reused across two different clients - a genuine historical quirk - were preserved as separate records rather than silently merged.
It is the system we run the business on, which is the only test of a billing platform that really counts.