security

How Clew handles your code

Last updated 2026-05-29.

Clew turns your repository into an architecture diagram. To do that we have to read your code — but we don't have to keep it. This page is the long version of what we promise at the connect step.

The tone here is deliberately sober. The brand is irreverent elsewhere; this is the trust moment. Every claim below mirrors what's actually in the implementation. If anything reads as overclaim, write to [email protected] and we'll tighten it.

What we keep

For every repository you connect, our database stores only the derived diagram — the modules, the edges between them, the per-module changelog "why", and the list of loose ends. We never persist your source code, file contents, or git history beyond what's reflected in the derived view.

What an ingest looks like

  1. A GitHub webhook (push to your tracked branch, or a merged PR) tells our orchestration Worker that a re-sync is due.
  2. The Worker spawns a fresh, isolated sandbox for the job — a Cloudflare Container running on a Firecracker microVM — and passes in a short-lived installation token scoped only to your repo.
  3. Inside the sandbox we git clone --depth 1 your repo, read its structure with a TypeScript AST parser (ts-morph, no npm install), cluster the import/call graph deterministically (Louvain), and call our LLM only to name and narrate what the structure already says — never to author it.
  4. We write the diagram + per-module changelog + loose-ends list to our database. Rows are scoped to your account by Postgres row-level security.
  5. The sandbox is destroyed. The clone and the installation token die with it.

What we don't do

What we keep, in one table

Category Where Retained for
Your source code Only inside the ephemeral sandbox — never in our database Destroyed at end of job (≤ 10 minutes)
Derived diagram + changelog + loose ends Supabase Postgres, EU region Until you disconnect AND request deletion
Your GitHub OAuth identity Supabase Auth, EU region Until account deletion
GitHub installation token Worker memory + sandbox env Job-scoped, destroyed with the sandbox
Per-IP rate-limit hash (signup endpoint) Cloudflare KV 10 minutes
Webhook delivery / queue dedupe markers Cloudflare KV 10 minutes

Verify, don't trust

We are open-sourcing the extractor — the deterministic structural pipeline that runs against your code. You'll be able to read it, run it yourself, and confirm the implementation matches the claims above. Coming soon. Until then, treat this page as our promise — and write to [email protected] if the implementation drifts from any claim here.

Sub-processors

We are honest about who else touches your data. Our Privacy Policy §5 and our DPA §6 list them in full; the short version:

We will publish at least 30 days' notice on the Privacy Policy before adding a new sub-processor that processes customer data.

What we explicitly haven't promised yet

We don't claim SOC 2 or ISO 27001 today. We'll seek certification when we go after customers who need it; we're not going to claim it before it's true. The same is true of penetration testing reports, bug bounties, and a public security.txt — these are coming, just not yet.

Reporting a security issue

Write to [email protected]. We respond within one business day. We do not yet run a paid bug bounty.


Operator: Backthread OÜ, Estonia (registration number [REGISTRATION NUMBER], registered office [REGISTERED ADDRESS]). Long-form policy detail in the Privacy Policy, the DPA, and the Terms of Service.