What Ringi knows, and who else sees it
Effective July 14, 2026 · Ringi is built and operated by Connor Tessaro · connor@ringi.dev
Ringi handles a sensitive thing: what your teammates privately think about a contested decision. You should get the whole picture without hunting for it, so here it is: what's collected, where it lives, who touches it, and how to delete it.
What Ringi collects
- Workspace basics. Your Slack workspace id and name, and the ids and display names of people involved in a decision.
- The decision. The title and context typed into
/ringi, and the channel the brief posts to. - Stuck-thread checks. In channels Ringi was invited to, it counts replies on long threads. When one looks stuck, it reads that single thread once to decide whether to offer help. The messages pass through the AI check once and are never stored: the database keeps the thread's id and the outcome, and the observability trace records the verdict with the message content redacted.
- Positions. What each stakeholder writes to Ringi in their private DM, and the structured position extracted from it.
- The paper trail. Briefs, stamps, objections, gut-checks, revisions, and the decision log: names, plaques, outcomes, and text embeddings used to find related past decisions.
- Install credentials. The OAuth bot token Slack issues on install, stored to act in your workspace.
That's it. No message history beyond that, no channels Ringi wasn't invited to, no tracking pixels, no analytics cookies on this site.
Who sees what inside your team
The product's mechanics are its privacy rules. Nobody ever sees a stakeholder's DM reply. The brief shows a synthesized view, not transcripts, and stamps stay blind until everyone has stamped. Objections reach the team as "a stakeholder can't stamp yet," not as a name; the objector chooses what to reveal by what they accept. The App Home tab only ever shows decisions and in-progress alignments from public channels — anything run in a private channel stays out of that workspace-wide view.
Who processes it outside your team
| Service | Role | What it handles |
|---|---|---|
| Slack | Platform | All messages; governed by your workspace's own Slack agreement |
| Google (Gemini API) | AI processing | Decision text, positions, and the one-time stuck-thread check, sent to extract positions and write briefs. Sent via the paid API, which Google does not use to train models |
| Langfuse | AI observability (US) | A copy of each Gemini call's input and output (the same decision text and positions), stored so we can debug quality and cost, and deleted after 30 days. Channel-thread message content is the exception: it is redacted from traces, which keep only what the AI produced (the verdict, or the drafted decision title). Not used to train models |
| Supabase | Database (US) | Everything listed above, in Postgres |
| Vercel | Hosting (US) | Runs the app and serves this site |
| Google Fonts | Typography | Your browser requests two fonts; Google sees the request's IP |
Nobody else. Your data is never sold, shared for advertising, or used to train models.
The theater page
ringi.dev/theater replays recorded runs with fictional AI teammates. Watching it stores nothing about you.
Retention and deletion
The decision log is the product: decisions are kept so your team can search its own precedent. There is no automatic purge yet; this page will say so when that changes. Uninstall Ringi and it loses access to your workspace immediately. Email connor@ringi.dev from your workspace's domain and everything stored about that workspace is deleted within 30 days, confirmed in writing.
Changes
Material changes to this policy get announced in the app's Home tab before they take effect. The page's history lives in version control.