Privacy
Effective November 10, 2026
Your reports stay in your browser
The runner (retrylab.py) runs on your machine and sends events only to the staging webhook and observer URLs you give it. Its report is a file on your disk. When you open a report here it is read and validated in your browser and stored only in this browser (IndexedDB), together with any project name you type and the purchase record of a paid project. Reports are never uploaded to RetryLab. Text, JSON and PDF exports are created in your browser and downloaded directly.
We cannot restore reports or project names you remove from this browser or lose by clearing site data. Keep the report files and, for paid projects, the purchase record.
What the server receives
- Checkout: the payment method you chose, the project’s random ID (a UUID that contains nothing about your systems) and a random checkout attempt ID. The server creates the checkout with Square or PayPal and returns a signed ticket that your browser keeps.
- Payment verification: the server keeps the provider order identifier and payment status in a private order ledger. It checks with Square or PayPal until the provider confirms a $39 USD payment or the order closes. After a confirmed payment, the return link can restore the project unlock in another browser. RetryLab stores a keyed hash of the return code.
- Unlock check: when you open a paid project, or run
retrylab.py --full, the project ID and purchase record are sent so the server can confirm them (POST /api/access). Nothing else is sent by the runner: no URLs, secrets, events or results. - Campaign counters: the server counts free exports, checkout starts and provider-confirmed sales, with a coarse campaign label from a fixed list (for example
retrylab_guideorretrylab_launch), the language “en”, payment provider, mode and amount. It stores no IP addresses, cookies, account identifiers, webhook or observer URLs, target names or report data with these counts. The analytics table uses a keyed hash of the order number to avoid double-counting. Sandbox payments are not counted as sales. The demo project is never counted.
Secrets
The runner reads webhook and observer credentials only from environment variables. They are not written to its config template, its output or its reports, and are never sent to RetryLab. Reports include the origin (scheme, host, port) of your webhook and observer, not their paths or query strings; review a report before sharing it.
Payment providers
Payments are handled on Square’s or PayPal’s own pages under their privacy policies. RetryLab does not see or store card numbers or PayPal credentials.
Local storage
Besides IndexedDB the app uses local storage for the last project you opened and a campaign label from the link you arrived by (kept 30 days). No advertising or third-party tracking scripts are used.
Contact
Questions: contact support.