What this site collects
Your reading state
Scroll position, saved posts, and series progress are stored in your browser and synced to Cloudflare KV. localStorage holds the cached state for fast reads; IndexedDB holds the cryptographic identity keypair (described below). Both are local to your browser and tied to a pseudonymous identity — not your name or email address. If you clear your browser storage, the association is gone.
Comments
If you post a comment, your chosen display name and the comment text are stored in a Cloudflare D1 database. Deleting a comment masks the content but retains the database row — this is a constraint of the audit trail, not data hoarding. If you want permanent removal, email ethan@gtfo.dev and I'll handle it manually.
A pseudonymous identity
On your first visit, your browser generates an ECDSA P-256 keypair. The private key never leaves your device — it lives in your browser's IndexedDB, marked non-extractable. A hash of your public key is stored server-side as a stable identifier for your reading state and any comments you post. It is not linked to your name, your email address, or any account. Clearing your browser's IndexedDB generates a new identity and severs all prior linkage.
What this site does not collect
- No analytics or tracking scripts
- No cookies at the application level — Cloudflare's edge infrastructure may set its own as part of their DDoS mitigation
- Cloudflare may log your IP address at the infrastructure level as part of normal edge operation — I don't receive or store it within the application
Verifiable data disclosure
A Merkle tree of all data stored against your identity is maintained server-side. You can view and verify everything stored about you at /privacy/my-data/.
Infrastructure
This site runs on Cloudflare Pages and Cloudflare Workers.
Contact
Questions, data removal requests, or concerns: ethan@gtfo.dev.