Privacy

Privacy, in plain English.

What we store, where a campaign draft goes during a run, and how to delete stored run content.

StoredAccount + runs

Email, usage ledger, subscription state, and completed runs you keep in history.

Not soldNo resale

We do not sell account data, run content, campaign drafts, or feedback.

DeleteForget runs

Use history or the API to wipe stored run content while keeping billing records.

Account data, when you sign in

The minimum we need to manage your account and subscription.

When you start a hosted run, we store:

What is stored in your browser

A local cache for fast reopen, mirrored on your account.

The Coldread web UI runs in your browser. We keep a local cache so re-opening a run is instant (no round-trip to the server). For signed-in users this cache is mirrored on the server-side run record; anonymous one-shot runs live only in this browser.

Clearing browser data removes the local cache; the server-side copy on your account stays. Use the per-run forget button on /history to remove stored run content from your account (and from every device).

Where your asset goes during a run

Browser → Coldread server → model provider; the completed run is saved to your account.

When you click "run," the web UI POSTs your asset to a serverless endpoint (/api/simulate) hosted on Vercel. The endpoint forwards the request to our model provider using a server-managed key, streams the reactions back to your browser, and on completion writes the run record (asset, reactions, summary) to your account in our Postgres database (Neon, a US region, encrypted at rest). The same flow applies to /api/compare, /api/follow-up, and the bearer-token MCP/CLI twins under /api/mcp/*.

Why we save it: so follow-up tools (ask_follow_up, ask_panel_follow_up) and history browsing work cross-device — your runs live on your account, not on a single laptop. You can forget any run from /history (web) or via DELETE /api/runs/:id (MCP/CLI). This wipes stored content, but keeps the minimal billing/usage row. Failed runs are not stored at all.

Caveat we will not paper over: Vercel, our hosting provider, may log request metadata (IP, timestamp, route, response status) at the platform level for operational reasons. Vercel does not see API request bodies in normal operation. The CLI and MCP server authenticate to the same coldread.dev endpoints with a token minted at /mcp; the same data path applies to those surfaces.

What the model providers see

The asset and the persona prompts; nothing more.

The simulation runs against our model provider — xAI (Grok) by default, with Anthropic (Claude) as the fallback and for image / PDF extraction. The provider receives the asset and the persona prompts as model inputs and returns model outputs.

If you analyze a video, the clip is uploaded to temporary storage (Vercel Blob), sent to Google's Gemini for transcription and on-screen analysis, and then deleted once processing finishes. Where a clip's audio is transcribed separately, that runs through a Whisper provider (Groq or OpenAI). The resulting transcript becomes the asset the panel reacts to.

Each provider's data-handling policy for API usage applies — see xAI, Anthropic, and Google.

Analytics, cookies, and error reports

What we do collect, where it goes, and what we don't do with it.

Vercel Analytics. We use Vercel's built-in analytics for page-view counts and Core Web Vitals (load time, interactivity, layout shift). Vercel anonymizes visitor identity at ingestion using a daily-rotating hash; we cannot tie a page view to a specific user. Their privacy policy covers what they collect.

Auth.js session cookie. When you sign in, we set a session cookie (authjs.session-token) so subsequent requests don't make you sign in on every page. It identifies you to our server only — no third party can read it.

Client-side error reports. When something throws inside the React app and the root error boundary catches it, we POST a small report to /api/client-error containing: the error message, the stack trace (if any), a Next.js correlation id, the URL where it happened, and your browser user-agent. If you're signed in, your user id is attached so support can follow up. We use this to find and fix bugs; nothing else.

Web fonts (Fraunces, Inter, JetBrains Mono) are loaded from Google Fonts — that loads in your browser, not via our server.

What we never do

In plain language.

Service providers we rely on

The third parties that process data on our behalf.

Contact

Questions or concerns.

Reach us via /contact or through PeachStateAI.

This page describes Coldread as currently operated. It is not legal advice. Material changes will be posted here with a dated revision note.

← back to Coldread