Security
What it reads, and where that goes
You are being asked to hand over a record of client work: your notes, a time export, or access to a repository. This page says what is read, what is sent to the AI model, what is stored, and where the protection stops.
Last updated
What is read
It depends on how you provide the record of your work.
| How | What is read |
|---|---|
| GitHub connection or token | For the repo and dates you choose: each commit’s hash, date, author, the first line of its message, and how many files it touched. |
| Command-line tool | From your local history: each commit’s hash, date, author, message and message body, and the paths of up to 20 files it touched. |
| Pasted git log | The commits in what you paste that fall inside your dates. |
| Pasted or uploaded time-tracker export | For each entry inside your dates: its date, description, tracked time, and the client, project and task it was filed under. Entries the export marks as not billable are left out. |
| Pasted or uploaded notes | Whatever you paste, exactly as written. |
File contents are never read. When commit details are requested from GitHub, GitHub’s reply includes the diff; that part is discarded and is neither stored nor passed on.
What is sent to the AI model
Drafting is done by Anthropic’s Claude models through their API. A draft request sends the repo or project name, the date range, your hours and rate, and the record of work listed above: the commit information, the time entries, or your notes. When you edit a draft by chat, the draft, that same record and the names of your clients are sent with your message. The Slack bot sends what you write to it, plus the invoice and client details needed to do what you asked.
Notes and time exports are used for the draft and the chat that follows it. They are not stored on the server afterwards; only the invoice lines written from them are.
Nothing here is used by this product to train a model. How Anthropic handles data sent through its API is set out in its commercial terms.
What is stored
- Your account email, business details, logo, and payment links.
- Your clients: name, email, and any address or notes you add.
- Your invoices and their PDFs.
- Commit history you upload with the command-line sync.
- A record of each AI draft: what the model returned and how large the request was.
- A log of each email sent: recipient, subject, the start of the message, and whether it was delivered.
- Access tokens, in the forms described next.
How it is protected
- Tokens are encrypted before they are stored. GitHub and Slack tokens are encrypted with AES-256-GCM, with the key held outside the database.
- Command-line tokens are stored as hashes. The token itself exists only on your machine.
- Every row belongs to one account. The database itself enforces that an account can read and change only its own rows. Files are kept in private storage under the same rule.
- Passwords are never seen by this product. Sign-in is handled by Supabase Auth, and you can use Google instead of a password.
- Everything travels over HTTPS.
Who else handles the data
| Service | What it does here |
|---|---|
| Supabase | Database, file storage and sign-in. |
| Vercel | Runs the app and counts page views, without cookies. |
| Anthropic | The AI model that drafts and edits line items. |
| Brevo | Delivers invoice and reminder emails. |
| Upstash | Counts usage against plan limits. |
| GitHub, Slack | Only if you connect them. |
Limits you should know about
- The one-click GitHub connection uses a permission that is broader than the product needs. A fine-grained token avoids that; see GitHub access.
- Invoices are emailed from an address shared by all accounts, in your business’s name.
- This is a small product run by one developer. It has not had an outside security audit.
Removing your data
- Remove a GitHub token on the Repos page; the stored copy is deleted.
- Delete clients and invoices in the app at any time.
- To delete your account and everything stored for it, write to mail@bluenebula.dev.
Reporting a problem
If you find a security problem, write to mail@bluenebula.dev.