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

  1. 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.
  2. Save it as a template. One per client, or one per (client, rate-kind) pair if you charge differently for different work.
  3. 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.
  4. 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.
  5. 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.