freelance billing
temmet is a free browser-based timer — no accounts, no data sent anywhere, no subscription. This recipe turns it into a billable-hour tracker that produces a timesheet you can drop into any invoicing tool.
for who
Freelancers, consultants, contractors — anyone who bills time and either uses a heavyweight time tracker that doesn't quite fit, or has been making do with a spreadsheet.
the job
Track each work session against a client and a rate, end the session when you stand up, end the month with a clean export ready for invoicing.
how to map it
- Switch to Advanced mode. Add a single participant — you. Type the client name in the role field. Set the hourly rate to your billing rate for that client.
- Save it as a template. One per client, or one per (client, rate-kind) pair if you charge differently for different work.
- Start a session. Press TIME = MONEY when you sit down. The session label is for the work item — "API integration", "design review", whatever you'd put on the invoice.
- End it when you're done. esc closes the session. It lands in history with the client (role), the rate, the duration, and the total cost.
- At month end, filter and export. History → date range → last month → CSV.
the remix
The role field is free text. That's the move.
- Use it as the client name so every session in CSV is keyed to who you're billing. Sort or filter by role in your spreadsheet to get per-client totals.
- Use the session label as the invoice line. "Wireframes for the onboarding flow", not "design work". CSV export carries the label intact, so the invoice writes itself.
- Save a template per (client, rate) pair. If you charge $150/hr for code and $200/hr for code review with the same client, two templates beat a slider.
- Set a default session name like "What did I deliver?" so every fresh session prompts you to fill it in before you start.
tips
- Round to the nearest five-minute increment in your invoicing tool, not in temmet. Let temmet hold the actual time; aggregate it later.
- The active session survives a refresh, so you can close the tab between work blocks without losing the meter.
- If you forget to end a session and discover it the next morning, the resume prompt will catch it within twelve hours. Older than that, the session is dropped and you'll need to reconstruct from memory.
- Back up your data monthly via JSON export. Your timesheet is your livelihood — keep a copy.
questions
- Should I use Simple or Advanced mode?
- Advanced. You want one named participant — yourself — at your billing rate, with the role field set to the client name. CSV export then has the client right in a column.
- Can I track multiple rates per client?
- Yes. Save one template per "rate kind" — "Acme · senior" at one rate, "Acme · code review" at another. The session label can refine further.
- How do I generate an invoice?
- Filter the history view to a date range, export CSV, and pull the rows into your invoicing tool. The Total Cost column is the invoice line; the Duration column is the description.
- What about multi-day projects?
- One session per work block, not one per day or per project. Short sessions add up cleanly in CSV; long-running sessions risk the screen sleeping or the tab crashing.