Security

What QuorumFile stores, who else processes it, and how to report a vulnerability.

Reporting a vulnerability

Email hello@thecompound.tech. Include the URL, what you did, and what you saw. There is no bounty and no NDA to sign. We will confirm receipt, and we will tell you what we changed.

The same address, with a machine-readable expiry, is published at /.well-known/security.txt under RFC 9116.

Accounts

QuorumFile has no user accounts. There is nothing to sign in to, no password to reset and no session to steal, and a build gate fails the deploy if an authentication route ever appears in this repository while this page still says otherwise.

What is stored

  • The HUD participant code you enter into the Decision Sheet, and the sheet generated from it, so the same sheet can be re-opened from its link
  • If you use the contact form, the address and message you send
  • If you buy, Stripe collects your billing address and your card
  • Anonymous usage analytics — page views and clicks. Form inputs are masked in session recordings and no profile is created for a visitor who never identifies themselves

Who else processes data

  • Stripe — takes the payment and holds the card details — we never see a card number
  • Supabase — the database holding the generated Decision Sheets and HUD's own published agency roster
  • PostHog — anonymous product analytics, proxied through this domain
  • Vercel — serves this site and holds its access logs

Also true

  • A HUD participant code is a public identifier — it is on HUD's own published roster, which is where we read your program type from. Nothing about a resident, a tenant file or a household ever reaches this site.
  • The election catalogue is verbatim eCFR text. Nothing on this site paraphrases a regulation into quotation marks.
  • Payment pages are Stripe's own hosted checkout on a Stripe domain, so a card number is never typed on this site.

QuorumFile is built and run by Compound Labs. The declarations on this page are part of this product's own configuration and are re-checked at every deploy against the repository they describe: a product that claims to have no accounts and ships an authentication route fails the build, and so does one that takes payment without naming its payment processor here.