AnvilReps Privacy Policy
Controller and contact
The data controller is Paweł Grzeszczak, address: Kazimierza Pułaskiego 3/33, 05-400 Otwock, Polska, email: contact@anvilreps.com. This policy covers the PWA, iOS app and shared AnvilReps backend.
Data and purposes
We store your username, secure password hash, sessions, verified account recovery email, and document acceptance record: version, document text, language, channel, and server timestamp. One-time verification and password reset links are stored as expiring hashes. Google sign-in provides an account identifier and email; configured Cloudflare Access verifies access identity. We do not store your Google password.
Profile data includes weight, height, age, sex used for calculations, activity, training experience and goals. Training data includes plans, sets, loads, repetitions, time, distance, RPE, notes, custom exercises and uploaded images. We use it for storage, synchronization, statistics and estimates. Measurements and estimates may reveal health information. Measurements and calculation details are not required to create an account or keep a diary; you may omit them. Estimates remain unavailable without the inputs they need.
Technical data such as a device identifier, IP address, request time and browser details supports operation and security. Do not enter health information about others. We do not sell training data, use it for advertising or send it to AI services.
When Apple purchases are enabled, we process transaction identifiers and status, product, expiry, renewal, refunds and the AnvilReps account association to provide Premium and prevent purchases being reassigned. We do not receive card numbers or payment bank account details. Apple handles payments under its own privacy policy: https://www.apple.com/legal/privacy/.
Legal bases and choices
Operating your account and features relies on performing the contract; security and necessary claims on legitimate interests; legal duties on applicable law. Processing health data requires separate explicit consent, independent of accepting the terms.
Withdraw health-data consent without contacting support: select the withdrawal option in Account deletion and confirm. Account access and synchronization are blocked immediately and deletion is queued for completion within 30 days. Export any data you need beforehand. A deletion request without this option preserves access until processing. Withdrawal does not affect previously lawful processing. Restricted storage until completion is solely for erasure and necessary obligations, not further statistics. Remove offline copies on other devices separately. You may also contact contact@anvilreps.com about restriction or the scope of your request. Privacy information is not marketing consent.
Estimates are simple calculations on your inputs. We do not make solely automated decisions producing legal or similarly significant effects on you.
Device storage and recipients
Essential cookies store sessions, CSRF tokens and the one-time Google verification nonce. The server session does not expire automatically and remains active until sign-out or revocation. The PWA session cookie is automatically renewed while using the app. The PWA uses browser storage and cache for preferences, offline data and queued changes. iOS uses protected app files, device preferences and Keychain for sessions. Signing out may retain unsent account data.
Account and workout data is stored in managed PostgreSQL on Render in Frankfurt; Render also runs the application API. Cloudflare R2 stores private artwork and encrypted database backups. Access is limited to the operator and authorized infrastructure providers as necessary. Cloudflare handles network traffic and access protection. When Google sign-in is available, its script contacts Google on the sign-in screen. Selecting a video starts YouTube and contacts its provider. You choose the recipient of an export.
Google, YouTube, Cloudflare and Apple have their own privacy policies and may process infrastructure data outside the European Economic Area. Google and Cloudflare describe using the EU–US Data Privacy Framework and standard contractual clauses in their transfer policies. Contact contact@anvilreps.com for information about recipients, applicable safeguards and how to obtain a copy. Provider policies: https://policies.google.com/privacy/frameworks and https://www.cloudflare.com/privacypolicy/. Render: https://render.com/privacy; Resend: https://resend.com/legal/privacy-policy; Zoho: https://www.zoho.com/privacy.html.
We use Resend to send email verification and password reset links and account change notifications. These messages contain the recipient address and link or notification, without workout data. Messages sent to the operator contact address are handled through Zoho Mail. We process sender details, content and attachments as needed to respond and fulfil your request. Do not send passwords or unnecessary medical information.
Retention and rights
Account and training data is retained while you use the service and until a deletion request is fulfilled, except data necessarily retained for legal duties or claims. Acceptance evidence is retained only as long as necessary to demonstrate the applicable contract.
We create encrypted backups before migrations. For account deletion, a signed exclusion ledger stored outside the database prevents the account being made available after restoring a backup. It contains only technical account, request and custom-exercise identifiers and remains while backups requiring exclusion exist. Historical backups are isolated from normal service use and covered by the operator’s deletion procedure. Minimal Apple transaction identifiers are retained as necessary to handle subscriptions and prevent abuse. The deletion confirmation email address is removed after successful delivery. Delete offline copies on other devices and personal exports separately; the server cannot erase a disconnected device.
You may request access, correction, deletion, restriction and portability where applicable, and object to processing based on legitimate interests. Contact contact@anvilreps.com without sending a password. We generally respond within one month and notify you of justified extensions. You may complain to the Polish President of the Personal Data Protection Office (UODO).