PRIVACY
Local-first, by design.
Struppëflo runs in your browser. Boards, cards, and AI keys never touch our servers. Below is exactly what gets sent, in which tier, and how to turn any of it off.
Tier 0 — Always
No data ever leaves your browser.
| Boards, cards, links, zones | Stored in localStorage. Never sent anywhere. |
| AI provider keys | Stored in localStorage. Sent only to the provider that owns the key. |
Tier 1 — Anonymous, no consent needed
Event names and small counts only. No content.
| Page views and demo interactions | Anonymous, via Vercel Analytics. |
| Product events | brain_dump, organize, suggest_links, workflow_generated, template_used, xray_opened, prompt_copied, run_started, run_completed, open_in_model, key_connected, tour_completed, waitlist_joined, board_created_blank, result_added_to_board, result_split_into_cards, run_helpful_yes, run_helpful_no, telemetry_opt_in, telemetry_opt_out. |
| Per-run telemetry | Provider, model, card count, input/output tokens, duration, status. Not the prompt content or output text. |
| Outcome feedback | Thumbs up/down on run results. Optional one-line note (sent only when you submit it). |
Tier 2 — Opt-in, structural only
Toggle in Help → Help improve Struppëflo. Default off. Never collects titles, bodies, or prompts.
| Board structure | Card type histogram, zone count, link type histogram, dependency depth. Plus a sha256 fingerprint of the structural shape (not the text). |
| Edit stream | Each add/edit/remove event on cards, links, zones — with ms since the previous edit. Struggle signal: lots of edits before a run often means the prompt was hard to compose. |
| Per-run outcomes | Provider, model, prompt fingerprint (sha256 of compiled markdown), output length, thumbs rating. |
| Run quality | Did the user re-run the same prompt? Did they add the result to the board or split it into cards? |
| Session | Anonymous user id, start/end timestamps, edit count, run count, thumbs distribution, final structure. |
What we never see
Even with Tier 2 enabled.
| Card titles, bodies, or prompt text | Never collected at any tier. Server route's zod schema rejects these fields. |
| Your AI provider keys | Browser → provider direct; Struppëflo's servers never see them. |
| Your output text from runs | Streamed in your browser; we only see length and your thumbs rating. |
| Your identity | The 'user id' is a random 24-char hex stored in your own localStorage. We don't see your name, email, IP, or anything else. |
Where the data lives
Tier 1 events are retained by Vercel Analytics for the standard Vercel window. Tier 2 telemetry is stored in Vercel KV (Redis), keyed by date, with a 90-day TTL. We do not sell or share either tier with third parties.
Contact
Questions, deletion requests, or concerns: justin@attiteud.com.