Security
Last updated: September 23, 2026
MiniBrief is a web app. To sort your inbox, warn you about risky mail and have your brief ready before you open a browser, a MiniBrief server reads the mailboxes you connect, keeps the envelope of each message and never its body, and sends the AI only what a feature needs. This page explains how that works, what we hold, how it is protected, and what the product does to protect you. It complements our Privacy Policy, which lists every stored field.
The short version
- Message bodies are not stored. For each connected mailbox we keep a rolling 90-day window of subjects, senders, recipients, dates, short previews, flags and what MiniBrief worked out about each message. A body is fetched from your mailbox when you open the message and is not kept.
- The AI sees only what a feature needs. Sorting sends a subject and about 120 characters of preview per message. Summaries, reply drafts and the Brief send the message you opened or asked about, capped, only when you use them. Nothing sent to the AI is used to train models. What is kept, like your daily Brief, is listed on the Privacy page.
- Your mailbox grant never reaches your browser. The OAuth grant is exchanged on our server, encrypted with AES-256-GCM before it is written, and the key that seals it lives only in our two server processes, never in the database.
- No analytics, no telemetry, no tracking. There is no analytics service in the product, and no data broker or advertising network in our subprocessor list.
- Disconnecting a mailbox deletes what we read from it; deleting your account deletes everything. Both are self-serve in Settings.
Connecting Microsoft 365
On Microsoft 365, connecting MiniBrief usually needs a one-time approval from your administrator. That is a Microsoft tenant policy covering the mail and calendar permissions we ask for, not something we can or would want to route around.
How your email flows
- 1. You connect a mailbox. Signing up or starting a trial connects nothing. Connecting is a separate step under Settings → Mailboxes, at Google’s or Microsoft’s own consent screen, and it asks only for the scopes the features need: reading mail, the changes needed for the actions you take, sending what you approve, and read-only calendar access.
- 2. Our worker reads it. A background worker reads the mailbox through the Gmail API or Microsoft Graph, on a schedule and on push, and stores the metadata described above along with its verdicts. It reads one mailbox at a time and keeps no store of its own; its only datastore is our database.
- 3. The AI is asked, narrowly. The worker classifies new mail with a subject and a short preview per message. When you open a message and ask for a summary, a draft or a question answered, the web app sends that one message or thread, capped in length. We keep token counts and operation labels per call; results some features save, like the Brief, are listed on the Privacy page.
- 4. Bodies stay in your mailbox. When you open a message, its body is fetched live from Gmail or Outlook through our server and shown to you. Attachments work the same way. Neither is written to our database.
What we keep, and for how long
Mail rows are kept for a rolling 90 days from the message’s date, capped at the newest 25,000 messages per mailbox; a message you delete or archive away is removed after 30 days. Alongside the metadata we keep what MiniBrief works out: importance and category, whether a reply is owed, the Sender Guard level, the risk verdict with its plain-English reasons and short evidence such as a domain, and Smart Folder membership. For the risk layer we also keep a relationship baseline per mailbox: how often each address and domain writes to you, the display names an address has used, whether its mail passed authentication, and one-way fingerprints of payment details a domain has sent before, never the details themselves. Your own words and choices (client list, folder rules, senders you trusted or blocked, your settings) are stored against your account so every browser you sign in from agrees. Disconnecting a mailbox deletes everything read under it immediately; deleting your account deletes all of it.
Protection built into your inbox
MiniBrief sees your mail after delivery, through the same connection that sorts it, so it can read the mailbox the way a security team would. Every signal below is deterministic and readable: a verdict comes with its reasons and evidence, the model can only raise a tier, and every verdict is visible and reversible.
- Sender Guard and a risk verdict on every message. Each incoming message gets a tier, plain-English reasons and short evidence, judged against a baseline built from your own mail: who writes to you and how often, the names an address has used, and whether its mail passes authentication. A first contact, a Reply-To that does not match, a request for credentials, pressure to act now, or bank details that differ from what a domain sent before all count. High-risk mail is flagged before you act on it.
- Look-alike domains. A sender domain that imitates one you correspond with is called out on arrival, and MiniBrief watches roughly 150 look-alikes of your own domain (typos, homoglyphs, swapped endings, added words); when one is registered, mail from it is treated as high risk from its first message.
- Links and attachments judged before you open. For the messages a phish arrives as (money, a sign-in request, an attachment, a stranger’s personal mail) the worker scans links and attachments on the server, so a high-risk finding is pushed to your browser within minutes of the sync that saw it, if you have notifications on. A calendar invite from a stranger with links is treated the same way.
- Send-time guard. When you send, MiniBrief checks the recipients against your baseline. A look-alike of a domain you write to, or bank details or credentials headed to an outside address, stop the send until you confirm; a first-ever outside recipient, or a contact who normally writes from a work address reached at a free-webmail one, gets a one-line notice. If the check itself is ever unavailable, sending is never blocked.
- Mailbox audit. On connect and every six hours, MiniBrief checks a Gmail mailbox for filters that forward, delete, hide or mark mail as read, for forwarding addresses, and for send-as aliases that answer to a different address: the classic signs of a compromised account. A new high-risk finding is pushed to you, and a bad filter can be removed with one click (“Remove this filter”) or kept (“This is mine”). Gmail today.
- Your domain’s posture. For your own domain, MiniBrief checks SPF, DKIM, DMARC and MTA-STS weekly, straight from DNS, and shows each gap, with the record to add where there is one.
- Auto-quarantine, if you want it. Off by default. Turn it on and high-risk mail moves to Spam or Junk automatically, with a ledger and a Restore button, and never for a sender you have trusted.
- Unsubscribe & block that sticks. One click attempts the sender’s one-click unsubscribe and creates a real server-side filter in your mailbox that trashes their future mail. You can undo it under Settings → Blocked senders.
Access and authentication
- Mailbox access. Both OAuth flows use Authorization Code with PKCE; no provider access or refresh token is ever sent to the browser. The grant is sealed with AES-256-GCM under a key that exists only in the environment of our two server processes. Disconnecting a mailbox revokes the grant at Google (Microsoft has no per-app revocation endpoint, so you remove MiniBrief from your Microsoft account instead) and deletes every row read under it.
- Your account. Passwords are at least 12 characters, checked against leaked-password lists, and held only as bcrypt hashes by our authentication provider; MiniBrief never sees a password. Sign-in and code entry are rate-limited. Two-factor authentication (TOTP) is optional and enforced on the server once you turn it on. A one-time phone verification, by text message, is required only to start a free trial.
- Sessions. Access tokens expire after an hour and refresh tokens rotate; signing out revokes every session. Session cookies are HttpOnly, Secure and SameSite, and signing out also wipes the local cache in your browser.
How the platform is protected
- Row-level security on every table. Access control runs in PostgreSQL, below the API, keyed to your account: the web app reads only your rows, with your session, and no staff tool reads mail rows. The support tooling sees account and subscription fields only.
- Encryption. TLS 1.2 or better on every connection; the database is encrypted at rest by our provider; the mailbox grant is additionally encrypted before it is written. No cryptography is implemented by hand.
- Hardened web app. A Content Security Policy, frame-ancestors none so MiniBrief cannot be embedded in another site, an exact CORS allowlist, secrets held in a secrets store and never in the app bundle, and dependencies audited for known vulnerabilities.
- Content-free logs. The AI path records only a call counter, the operation, the model and token counts. Worker logs carry counters and identifiers, never a subject. No credentials or payment details are ever logged.
- Notifications. Browser alerts carry a sender and a subject line, never a preview or body, and are encrypted to your browser before they are sent, so the push service relays bytes it cannot read.
Payments
Subscription payments are processed by Stripe, a PCI-DSS Level 1 certified payment provider. Your card details are entered on Stripe’s own checkout page and never reach MiniBrief.
Subprocessors
A short list, each doing one narrow thing. Only one of them ever receives content derived from your mailbox, and one more does if you switch the morning briefing on. Google and Microsoft are the sources of your mail, at your direction, not our subprocessors.
| Provider | Purpose | Receives mailbox content? | Data processing agreement |
|---|---|---|---|
| Anthropic | The AI behind sorting, summaries, drafts and the Brief | Yes. The only one, by default. | In force, under its commercial terms |
| Supabase | Authentication, the account and mail-metadata database, the AI proxy | Metadata, never a message body | Executed July 2026 |
| Railway | The background worker that reads your mailbox | In transit, never stored there | Being confirmed |
| Vercel | Hosting for the web app and this site | In transit, never stored there | Being confirmed |
| Stripe | Payments, on Stripe-hosted pages | No | In force. PCI-DSS Level 1 |
| Resend | Sign-up and recovery email, and the morning briefing if you turn it on | Only in the briefing, which is off by default | In force |
| Twilio | The one-time text that verifies a phone number for a free trial | No. Your phone number and nothing else. | In force, with standard contractual clauses |
One honest note on Stripe: for payments it acts both as our processor and, for fraud screening and its own regulatory obligations, as an independent controller setting its own purposes. That is inherent to regulated payments rather than a gap. If you ask whether every subprocessor is purely a processor, the accurate answer is no, and Stripe is the exception.
Incident response
Our providers are contractually bound to tell us about a personal data breach; the windows are not uniform, and the database that holds your account and mail metadata commits to written notice within 48 hours. If an incident affected your data we would tell you what happened, what it touched and what we did, without waiting to have a tidy story. Because message bodies are never written to our database, the blast radius of a database incident is metadata and account records rather than your correspondence.
Deleting your data
Both paths are self-serve in Settings, and neither needs to go through us. Disconnecting a mailbox revokes the grant at Google and deletes the mailbox row together with every message row and verdict read under it, at once. Deleting your account removes everything described on this page and in the Privacy Policy. One thing deliberately outlives us: if you used “Unsubscribe & block sender”, that filter is a real rule in your own mailbox and keeps working after you leave. You can remove it in Gmail’s own settings.
What we do not have yet
A security page that lists only strengths is not much use, so here is the other column, accurate as of the date above.
- No SOC 2 report of our own. We rely on our providers’ certifications, not on one we hold.
- No published penetration test.
- Data processing agreements with the two providers added when the web app launched, our host and the worker’s host, are being confirmed and recorded.
- The mailbox audit reads Gmail today. Outlook inbox rules need a further Microsoft permission and are not covered yet.
- We are not a mail gateway, we do not detonate attachments in a sandbox, and we are not watching your inbox in real time. MiniBrief sees mail after delivery, on the schedule described above.
Reporting a vulnerability
We welcome reports from the security community. If you believe you have found a security issue, please email security@minibrief.app with enough detail to reproduce it. We ask that you give us a reasonable opportunity to investigate and address the issue before any public disclosure, and that you avoid accessing or modifying other people’s data. We will acknowledge your report and keep you updated as we work on a fix.
This document is written in plain language for transparency. It is not legal advice. The contact details for questions are in the document above.