Private by default
Kink Negotiation is built around the assumption that what you put on a card is yours. Nothing about a card is searchable, indexable, or visible to anyone who doesn't have the link.
Every card sits in a database table with row-level security set to deny-all. The site's browser code never holds a database key — all reads and writes flow through a small set of server endpoints that authenticate with a private service-role key your browser never sees. If a card link isn't in someone's hand, there's no way for them to land on it.
On top of that, you can attach an optional 4–8 digit PIN at the moment you create a card. The PIN is hashed (salted scrypt) before it's stored, so even a server-side compromise of the database wouldn't reveal it. Anyone with the link still needs the PIN to open the card.
We also keep the request logs as minimal as possible: no analytics on the content of cards, no third-party tracking inside the wizard or the view page. The site uses anonymous Vercel page-view analytics for capacity planning only.
