Security

Specifics, not badges.

We’re an early company, and we’d rather show you exactly how your books are protected than wave a logo at you. Everything on this page is a statement about how the system is actually built.

Encrypted in transit and at rest

All traffic between your browser and TheGuyBooks runs over TLS. At rest, your books live in a managed Postgres database with disk-level encryption. We name the mechanisms because vague words like “bank-level” mean nothing — and we don’t use them.

Isolated at the database layer

TheGuyBooks is multi-tenant, and the separation between businesses is enforced by row-level security policies inside the database itself, in two layers — by host, and by business within a host. A screen can’t reach another business’s books, because the database refuses to serve them.

An append-only ledger

Every document — an invoice, a bill, a check — posts double-entry ledger entries. Posted entries are never silently edited: corrections post replacement entries through a sanctioned path, voids stamp the document and leave the trail, and paid documents lock until the payment chain is unwound in order. Your books stay auditable by construction.

Two-factor sign-in

Every account can turn on authenticator-app (TOTP) two-factor sign-in, with one-time recovery codes stored only as hashes. We do not offer SMS codes — they are the weakest second factor, so we left them out on purpose.

Sign-in that fights back

Authentication endpoints are rate-limited, and repeated failures lock the account before password guessing gets anywhere. Sign-in errors are deliberately generic, so an attacker can’t use them to learn which emails exist.

Backed up and watched

Backups run automatically on a schedule. Separately, automated ledger-invariant checks continuously verify that the books still balance — if an invariant ever breaks, we are alerted. Monitoring also covers errors in the application itself.

What we deliberately don’t claim

  • We do not hold a SOC 2 attestation yet. When we engage an audit, it will be announced here — not before, and never as a badge we haven’t earned.
  • We don’t say “bank-level security,” “military-grade encryption,” or “100% secure.” Nobody honest can. We name mechanisms instead, so you can hold us to them.
  • We never see or store card numbers — and we won’t. Payment collection is designed to run entirely on hosted, PCI-scoped payment infrastructure.

Found something? Security reports go to Admin@theguys.app. We read every one.