# BillMyCommits 1.0.0

I'm terrible at tracking time. I start the timer but forget to stop it. I stop the timer but forget to start it again. I haven't been able to find tooling that actually works for me so I thought that, with the help of Claude, I would finally finish a side project and build something that tracks my time at the piece of work instead of multiple times where I have proven to be quite forgetful.

I'm tired of guessing how long I worked on this feature and having to round down (to be as honest as possible) and just leaving cash on the table.

BillMyCommits fixes that. Version 1.0.0 is live today, free during beta (probably forever).

## What BillMyCommits does

BMC connects to your GitHub repos, groups them by client, and turns commit history into the bones of an invoice.

Pick a client and a date range. BMC pulls commits from every repo tied to that client, sorts each one into a category (feature, bugfix, refactor, docs, test, chore), and lets you turn the ones you want to bill into line items in one pass. Set hours and rates globally or per line, add a tax rate if you need one, export to PDF or email it to the client.

No timer to start. No timer to forget. You write code, you commit code, and the raw material for the invoice is already sitting there at the end of the month.

## The privacy promise

I want to be specific here, because I'm a freelance dev too and most repos I touch are covered by NDAs that say your code doesn't leave your machine without permission.

**BMC never fetches your code.**

The integration calls two GitHub endpoints. One lets you pick which repos belong to a client. The other reads commit metadata: message, timestamp, author, SHA. It never calls the contents API, never pulls diffs, never reads file bodies, never touches branch contents or PR descriptions. Commit messages and metadata are what an invoice needs. Nothing else gets read.

One caveat about OAuth. GitHub's permission model is coarse. To list commits on private repos, BMC has to request the `repo` scope, which on paper grants full read and write access to your private repositories. GitHub offers no "commits only" scope. BMC's code never asks GitHub for your files. The [privacy page](privacy) spells out exactly what gets read and what doesn't.

If your commit messages contain sensitive information, that's a commit hygiene decision you already make every time you push to a code host or a CI provider. BMC treats commit messages with the same trust boundary they already cross.

## Why I built this

I'm a freelance Elixir dev in Vienna. I bill in dollars and euros, I'm bad at time tracking despite knowing better, and I've watched years of revenue leak out of invoices built on "I forgot what I did that week."

## What's in 1.0.0

*   **GitHub integration.** OAuth login, repo selection, commit fetching with date filtering. GitHub only at launch.
    
*   **Multi-repo aggregation per client.** Attach any number of repos to a client. Cross-repo work comes back as one list of line items.
    
*   **Automatic commit categorization.** Every commit lands in one of seven buckets (feature, bugfix, refactor, docs, test, style, chore) via conventional-commit keyword matching. The commit message becomes the line item description, and you edit anything too technical before sending.
    
*   **Hour estimation.** BMC suggests hours per commit. Override per line, or change the hourly rate for the whole invoice.
    
*   **Multi-currency.** USD, EUR, GBP, AUD, CAD, JPY, CHF, set per client.
    
*   **PDF export and email send.** Send from BMC with the PDF attached, or download it and send through your own pipeline.
    
*   **Public share links.** Every invoice gets a UUID-based public URL. Send the link, no client login needed.
    
*   **Invoice status tracking.** Draft, sent, paid, cancelled.
    
*   **Draft-first workflow.** Nothing leaves your account without an explicit send.
    

## What's deliberately not in 1.0.0

Things people will ask about:

*   **Real-time time tracking.** BMC works after the fact by design. If you want a timer, run one alongside it.
    
*   **LLM-written commit summaries.** Commit messages become descriptions verbatim today. Rewriting them into client-friendly prose is on the roadmap.
    
*   **Recurring or scheduled invoice generation.** You start each invoice from a date range. Per-client cadences (weekly, biweekly, monthly auto-draft) are on the roadmap.
    
*   **GitLab and Bitbucket.** GitHub only at launch. Other providers are on the roadmap.
    
*   **Editing an invoice after send.** Status still moves through sent, paid and cancelled, but line items lock on send. Re-issue if the billed work needs to change.
    
*   **Client portals.** No client login. Clients get PDFs and share links.
    
*   **Variable retainer modeling.** Retainers work as fixed amounts today. Variable work against a retainer is on the roadmap.
    
*   **Multi-jurisdiction tax.** One tax rate per invoice. Real multi-jurisdiction tax is its own product and I'm not going to pretend otherwise.
    
*   **Multi-user teams.** BMC is for solo freelancers. Agencies aren't the audience right now.
    

Every one of these is a decision, not an oversight.

## Pricing

BillMyCommits is **free during beta** (and probably forever).

## Start using BMC

[Sign up at billmycommits.com.](https://billmycommits.com) Connect a repo, tell BMC which client it belongs to, and let it draft the first invoice.

If something breaks, the Discord is the fastest way to reach me. I'm in there and I answer.

## Join the Discord

There's a [BMC Discord](https://discord.gg/334DJPUt6U).

Roadmap updates land there, bug reports get triaged fastest there, and freelance devs compare their own invoicing workflows. The early cohort is the useful place to be, because their feedback shapes the next year of the product.

I'm in there daily. If something is broken, I'd rather hear it from you in #bugs than discover it in a billing mess three months later.

## Release notes

Starting with this post, every BillMyCommits release gets a blog post with a changelog.

Release post or it didn't happen.

### Changelog: 1.0.0

**Added**

*   Initial public release
    
*   GitHub OAuth login and repo selection
    
*   Commit fetching with date filtering and per-repo caching
    
*   Automatic commit categorization (feature, bugfix, refactor,
    
*   Hour estimation per commit with per-line and global overrides
    
*   Multi-repo aggregation per client
    
*   Multi-currency support: USD, EUR, GBP, AUD, CAD, JPY, CHF
    
*   PDF export via ChromicPDF
    
*   Email send with PDF attachment
    
*   Public invoice share links (UUID-based, no auth required)
    
*   Invoice status tracking (draft / sent / paid / cancelled)
    
*   Client management (CRUD) with per-client hourly rate, defaul
    
*   Account dashboard
    
*   Draft-first send workflow
    

## Closing

If you're a freelance dev who has ever guessed at last month's hours, try [BillMyCommits](https://billmycommits.com).

Free during beta. No card on file. [The Discord](https://discord.gg/334DJPUt6U) is open. And if something's wrong, I want to know.

[Sign up.](https://billmycommits.com) · [Join the Discord](https://discord.gg/334DJPUt6U).
