We don’t store your text.
The text you paste into the humanizer and the detectors is processed in memory and discarded. We never write that prose to disk, never index it, and never use it to train models. Not Anthropic’s, not ours, not anybody’s.
One opt-in exception: Pro voice profiles retain a writing sample you explicitly upload, so the humanizer can match your voice. Detailed below.
What we log
Every humanize / detect request produces one log line containing only:
- timestamp
- hashed IP address (sha256 with a static salt — used only for rate-limit accounting and abuse detection on anonymous requests)
- authenticated user id, when signed in
- tier (anon / free / pro)
- word counts (in / out)
- latency, status code, which model ran
- intensity level / mode (standard or academic) / voice name, when applied
The log line never contains your prose. The structured logger truncates any field longer than 200 characters as a defensive guard.
Voice profiles (Pro)
When you create a voice profile, you paste a 100–2000 word writing sample of your own. We store two things tied to your account:
- the sample text you uploaded, exactly as you pasted it
- a ~150-word style fingerprint we generate from it (cadence, register, vocabulary tells, punctuation habits)
We retain both so you can re-train or refine voices over time. Voice samples are scoped to your user id, never indexed for search, never used to train models, and never visible to other users.
Delete any voice at any time from the Voice tab in your Pro dashboard. Deletion is immediate and removes the sample and the style fingerprint together.
Account data
If you sign in, we keep the minimum needed to run your account:
- your email address (used only to identify your account and send sign-in links)
- the auth provider you used (Google or magic-link) and your Supabase user id
- your Stripe customer id and subscription state (status, current period end), if you upgrade to Pro
Subscription data is mirrored from Stripe’s webhook so we can resolve your tier server-side. Cancel and your row reverts to free at the period end; delete your account and the row cascades out with it.
Rate-limit counters
Daily usage counters live in Upstash Redis, keyed by hashed IP (anonymous) or user id (signed in). Counters reset on a rolling 24-hour window. No request payloads are stored.
What about Anthropic?
We send your text to Anthropic’s API to perform the humanization, detection, and voice-fingerprint passes. Anthropic does not train on API inputs by default and applies their own retention policies; see anthropic.com/legal/privacy.
What we do NOT do
- No third-party analytics on your input or output text
- No saving humanizer drafts or detector inputs to a database
- No fine-tuning models on your prose, ever — including voice samples
- No selling, trading, or sharing your text with anyone
- No cross-user visibility — voice profiles are strictly scoped to your account
See also: ethics for what we won’t do; terms for what you and we agree to.