Account privacy
An account is optional. Anonymous audits still work without signing in.
What we store
Your normalized email address, an internal account ID and creation date. Your saved stack contains catalog tool and plan IDs, seats, any monthly cost you enter, optional renewal dates, and creation/update dates. Account alerts, when enabled, are linked to your account.
Sign-in and retention
Magic links expire after 15 minutes and can be used once in the browser that requested them. We store a hash of the token, never the raw token. Sessions expire after 30 days and use a signed, HttpOnly, Secure, SameSite=Lax cookie. Signing out revokes the current session.
We keep keyed hashes of the email and network for a sliding one-hour rate limit: at most five requests per email and twenty per network. Expired limiter rows and tokens are cleared on later sign-in requests; expired sessions are cleared on later session creation. Expired credentials are refused immediately even before cleanup.
Accounts and saved stacks remain until you delete them. Local development without a database uses process memory and loses data when the server restarts. A pending audit save stays in your current browser tab for up to 15 minutes and is removed after saving or signing out.
Email delivery
When Resend is configured, it receives your email and sign-in message to deliver the link. Its service policies govern provider-side logs. Development console mode prints only the sign-in URL, never your email; anyone with server-log access can see that short-lived URL. No email is sent unless delivery is explicitly configured.
Delete your data
Use Delete my data on your account page to remove your account, stack, login tokens, sessions, email rate-limit records and account alerts, plan entitlements and verification runs. This cannot be undone. The browser cookie is cleared.
Anonymous report links, waitlist signups and analytics are separate from your account and are not linked to its ID. Deleting an account does not remove those independent records. Anonymous reports expire after 180 days. Account emails, typed costs and login tokens are not included in custom analytics events.