Privacy · an instrument of kkrwhofrags.xyz
Privacy
This site sets no cookies, runs no analytics and embeds no third-party scripts. The only personal data it holds is what you type into the contact form. Everything stated below is read out of the source at build time, so it cannot drift from what the site does.
in force 2026-10-02revision bf8b5efsupersedes all earlier versions
1Scope
This notice covers the site, meaning the pages served at kkrwhofrags.xyz. It does not cover anything you reach by following a link away from it.
The site is a static portfolio. There is no account to create, nothing to log in to, and no profile kept about you.
2What is collected
Nothing is collected by visiting. The site gathers no personal data from reading it, because there is no mechanism on the page that would do so.
Submitting the contact form stores exactly the fields in the schedule below, and nothing beside them. There is no hidden field, no fingerprint and no IP address attached to the record.
| Field | Type | Why it exists |
|---|---|---|
| name | string | so a reply can address you |
| string | so a reply can reach you; it is the only way to answer at all | |
| subject | string | set by the form, not typed by you |
| message | string | what you wrote |
| createdAt | number | set by the server when the row is written |
read from convex/schema.ts at build time, not transcribed
Each field is truncated on write, so a hostile client cannot fill the table with unbounded data. You never have to submit the form: the same address is published in clause 6.1 and reaching it directly leaves no record here at all.
3Cookies
There are none. Not "essential only", not "analytics you may decline": the site sets no cookie of any kind, which is why you have never been asked to dismiss a banner on it.
2 values are kept in your browser's own local storage. They are named in full below, are never transmitted anywhere, and clearing site data removes them permanently.
| Key | Kind | What it holds |
|---|---|---|
| cyrus-view-mode | localStorage | which of the two views you last chose, so the site opens in it again |
| cyrus-entry-register | localStorage | whether you asked for plain English rather than the technical version, so every page that has one opens the same way |
read from the component that writes it, not transcribed
4Who else is involved
Convex stores contact submissions, and is the only processor that ever receives them. Netlify serves the pages, and like any web host keeps ordinary server logs of the requests it answers; those logs are Netlify's, not the site's, and nothing here reads them.
The page's Content-Security-Policy permits it to contact https://*.convex.cloud, wss://*.convex.cloud and its own origin, and nothing else. This is not a promise you have to take on trust: it is a rule your browser enforces, and anything else the page attempted would simply be blocked. Every host on that list belongs to Convex.
read from the CSP in netlify.toml at build time
There is no analytics, no tag manager, no advertising network, no embedded video, no social widget and no font served from anywhere but this origin. Nothing you do here is measured, and nothing about you is sold or shared, because nothing about you is held.
5Keeping and removing
Submissions are kept while they are still useful to answer or to remember a conversation. They are not exported anywhere, not enriched against any other source, and not used for anything but replying to you.
Ask and your submission is deleted. Ask and you get a copy of what is held, which will be the fields in Schedule 1 and nothing else. No proof of identity is demanded beyond replying from the address you wrote from.
6Contact and changes
Any question about this notice, and any request under clause 5.2, goes to cyrus@kkrwhofrags.xyz.
The in force date in the masthead is the date this page was last built. Because the clauses above are derived from the source rather than written alongside it, a change to what the site collects necessarily changes this page too.