Your personal data is controlled by:
Jakub Zakrzewski
Jakub Zakrzewski Consulting
Tax ID (NIP): 5213997741
Address: al. Jana Pawła II 27, 00-867 Warsaw, Poland
Email: privacy@pullyapp.com
(hereinafter: "we", "us", "Pully")
| Data | Purpose | Source |
|---|---|---|
| Email address | Account creation, recovery | Provided by you or Apple Sign In |
| Name (optional) | Personalization (display name) | Apple Sign In (first login) |
| Apple identifier | Authentication via Apple | Apple Sign In |
| Device identifier | Device recognition for sync | Auto-generated (UUID) |
Body measurements are health-related data under Art. 9 GDPR. We collect them only with your explicit consent:
You can withdraw consent at any time in Settings > Privacy. Withdrawal results in deletion of all measurements from our servers.
If you enable Apple Health integration:
With your consent, we collect anonymized usage data via TelemetryDeck:
We do NOT collect: exercise names, weights, notes, or personal information. Your user identifier is hashed (one-way) — TelemetryDeck cannot identify you.
You can disable analytics in Settings > Privacy.
With your consent, we collect crash reports via Sentry:
Before sending, we strip: email address, display name, exercise names, workout notes. User identifier is hashed.
You can disable crash reporting in Settings > Privacy.
| Location | Data | Encryption |
|---|---|---|
| Your device (SwiftData) | All data — source of truth | iOS device encryption |
| iOS Keychain | Apple identifier, device ID | OS hardware encryption |
| Supabase (EU, region eu-central-1) | Account backup (sync) | TLS 1.2+ (transit), AES-256 (rest) |
| TelemetryDeck (EU) | Anonymized events | TLS (transit) |
| Sentry (EU/USA — processing under SCCs) | Crash reports | TLS (transit) |
Pully is offline-first — your data is always available on your device, even without internet. Sync is a background process.
We do not sell your data. Ever.
We use the following sub-processors:
| Service | Data | Purpose | DPA |
|---|---|---|---|
| Supabase (Singapore Pte. Ltd.) | Account + training data | Sync and backup | Yes |
| TelemetryDeck (Germany) | Hashed ID + events | Usage analytics | Yes |
| Sentry (USA, SCCs) | Crash reports | App stability | Yes |
| RevenueCat (USA, SCCs) | Anonymous ID + purchase events | Revenue analytics | Yes |
| Apple Inc. | Payment data, Apple Health | Payments, health | Independent controller |
For data transfers outside the EEA (Sentry, RevenueCat), we rely on Standard Contractual Clauses (SCCs) approved by the European Commission.
| Data | Retention Period |
|---|---|
| Account and training data | Until account deletion |
| Body measurements | Until consent withdrawal or account deletion |
| Analytics (TelemetryDeck) | Auto-deleted after 24 months |
| Crash reports (Sentry) | Auto-deleted after 90 days |
| Backups | Deleted within 30 days of account deletion |
You can download a copy of all your data in JSON or CSV format. Go to Settings > Export.
You can edit your data directly in the app (workouts, plans, measurements, profile).
You can delete your account and all associated data in Settings > Account > Delete Account. Deletion is:
Export in JSON and CSV formats is always free (including free-tier users). Settings > Export.
Contact us at: privacy@pullyapp.com
You can disable analytics and crash reporting in Settings > Privacy.
You can withdraw consent for:
Withdrawal does not affect the lawfulness of processing carried out before withdrawal.
You have the right to lodge a complaint with the President of the Personal Data Protection Office (UODO), ul. Stawki 2, 00-193 Warsaw, Poland, www.uodo.gov.pl — or with the supervisory authority of your EU member state of residence.
We implement the following technical and organizational measures:
All notifications are local (UNUserNotificationCenter). We do not send server-side push notifications.
Notification types:
Pully does not use cookies. The app contains no web browser or web components. We do not use:
Pully is not intended for persons under 16 years of age (per Art. 8 GDPR). We do not knowingly collect data from persons under 16. If you learn that a child under 16 is using the app, please contact us — we will promptly delete their data.
We will notify you of material changes via:
Continued use of Pully after publication of changes constitutes acceptance. Previous versions of this policy are available upon request.
For data protection inquiries:
Pully does not employ automated decision-making or profiling within the meaning of Art. 22 GDPR. Calculations displayed in the app (estimated 1RM, personal records, session comparisons) are mathematical computations for display purposes only — they do not make decisions affecting your rights.
For clarity — Pully never collects: