The time tracker knows what I did. The accounting software knows how to invoice. Why am I the glue between them?
I built Hour Cap to close that gap. Track time with invoice-ready descriptions, then push to Xero as a draft invoice. The descriptions you write while working become the line items your client sees. No reconstruction, and no rewriting.
The part that took the most engineering: retainer billing. If you have a client on 40 hours/month, you need budget tracking that auto-resets each period, handles different period types (not everything is monthly), alerts when you're approaching the cap, and lets you invoice per-period. Most time trackers treat this as a static project estimate when it's not.
Other things I found surprisingly complex to get right:
- Rate cascading (project → member → org default) so different team members can bill different rates on different projects
- Timer midnight crossing (if someone forgets to stop a timer, it should split across days, not show 18 hours on Tuesday)
- Invoice line item grouping (some clients want one line per task, others want one line per project - same data, different views)
Built with Laravel 12 and Livewire 4. Solo dev, bootstrapped. Free tier available, no credit card required.
If you use Xero and want to try it, I'm giving 12 months free to beta testers who connect their Xero account. Genuinely looking for feedback on the invoicing workflow.