Privacy policy
Last updated: November 2, 2026
Who runs critique.work
critique.work is run by Tommaso De Rossi (GitHub: remorses), who is responsible for the data described here. Contact: tommy@unframer.co.
This policy covers the hosted service at critique.work. The critique CLI runs on your machine and only sends data to critique.work when you use --web. If you set CRITIQUE_WORKER_URL to another server, this policy does not apply to it.
What is stored
| Data | Why | How long |
|---|---|---|
| The rendered diff (desktop and mobile HTML), the raw patch, and a preview image | To show the link you shared | 7 days, or no expiry if you have an active license. Unpublishing deletes it sooner. |
| An owner secret, a random ID made on your machine | To let you delete your upload | Same as the diff |
| License records: the license key, its status, your Stripe customer and subscription IDs, and dates | To make links of paying users permanent | No automatic expiry |
Diffs are stored compressed in Cloudflare R2. Password protected diffs are stored encrypted. Owner secrets and license records are stored in Cloudflare Workers KV. Your email address is not stored by critique.work. Stripe keeps it, and it is given to Resend once to send you the license key.
Who can see your diff
- Anyone with the link can open the diff, its
.patchand its preview image. Links are long random-looking IDs and there is no public list of them. But if someone posts a link publicly, search engines and others can find it. - The ID of a public diff is a hash of its content. If two people upload exactly the same diff, they get the same link.
- A password encrypts the diff on your machine before upload (AES-256-GCM). critique.work never receives the password, so neither the operator nor Cloudflare can read the diff. Viewers decrypt it in their browser. A short password can be guessed by anyone who gets the encrypted data, and a lost password cannot be recovered.
- The CLI also prints a key that opens only that diff, for
curl. When you send it, critique.work uses it to decrypt that one response and does not store it. - Public diffs, without a password, are not encrypted. The operator can technically read them.
- Public diffs get a preview image that chat apps and social sites show next to the link.
Do not upload secrets, credentials, or personal data that you are not allowed to share.
Cookies and browser storage
| Name | What it holds | Lifetime |
|---|---|---|
IndexedDB critique | Keys made from the passwords you typed that worked, so you do not type them again. The browser does not let any script read the password back. Never sent to critique.work. | Until you clear site data. The last 10 are kept. |
critique.work has no analytics, no ads and no third party tracking scripts.
Logs
critique.work does not keep its own access logs and does not store IP addresses. Cloudflare processes every request (for example your IP address and browser headers) to run the service, under its own privacy policy. Error messages can appear in Cloudflare's short-lived worker logs.
Service providers
- Cloudflare: hosting and storage of diffs and license records.
- Stripe: payments. Stripe collects your payment details and email. critique.work gets your email from Stripe to send the license key, and stores only the IDs listed above.
- Resend: sends the email with your license key.
On your machine
The CLI saves your license key and owner secret in ~/.critique/license.json. The same owner secret is sent with every upload from that machine. The critique review command sends your diff to the AI coding agent you run locally, not to critique.work, so that agent's own terms apply.
Delete your data
- Run
critique unpublish <url>on the machine that uploaded the diff. It deletes the HTML, patch, preview image and owner secret. Copies cached on Cloudflare servers and in browsers can stay up to 1 day, or 7 days for the preview image in browsers. - To delete a license record, or a diff you can no longer unpublish, email tommy@unframer.co with the link.
- You can also email to ask what data about you is stored, or to correct it.
Changes
If this policy changes, the date at the top changes too. The history of this page is public in the GitHub repository.