Privacy Policy
This policy explains which personal data the Brawnly app for iPhone and this website process, why, and what rights you have. It reflects the current app version.
In short: without an account, your workouts, plans and body data stay on your iPhone. With an account, they sync to our backend in Frankfurt (EU). Brawnly only uses Apple Health if you turn it on: heart rate and workouts are shown in the app and never leave your device; height and body weight are read into your profile and written back to Health, and like your other profile data they are synced when you sign in and sent to our AI provider if you request an AI plan. Analytics never receive body values, your date of birth or Apple Health data. We do not sell data and show no ads.
1. Who is responsible
The controller under the GDPR is:
Dennis DonnerEduard-v-Winterstein-Straße 11
14480 Potsdam
Germany
Email: app-support@donner.io
We have not appointed a data protection officer because the legal threshold is not reached. For all privacy questions, write to the address above.
2. Scope
This policy covers the Brawnly app for iPhone (“the app”), the online services it uses and the website brawnly.donner.io. It does not cover the App Store itself or Apple’s own services, for which Apple is responsible.
3. Using the app without an account
You can use Brawnly without an account. During setup you enter your date of birth, height, body weight, training goal, experience level, training days, the equipment you do not have and exercises you want to skip, and you choose whether exercise pictures show a female or a male model. Your workouts, sets (weight, reps, optional effort rating), notes, routines, training plans, personal records, gym setups and machine settings and your body-weight log are stored locally on your iPhone.
Without an account these data are not sent to us. They may be included in your iPhone backup, depending on your settings. Even without an account, the app loads the exercise catalogue and programmes from our backend; this transmits technical connection data such as your IP address, but no profile or training data.
Legal basis: Art. 6(1)(b) GDPR (providing the app you asked for).
4. Account and sign-in
An account is optional. You need one to sync between devices, to load exercise pictures, for the AI training plan and to send feedback from the app.
- Sign in with Apple: Apple sends us a user identifier and, if you allow it, your email address (or an Apple relay address) and your name. We store the identifier and the email address in your account. The app does not use your name.
- Email and password: we store your email address and a hash of your password, never the password itself.
Your account has a random user ID. Sign-in is handled by our backend provider Supabase.
Legal basis: Art. 6(1)(b) GDPR.
5. Syncing your data
When you are signed in, the app syncs the following data with our backend (Supabase, data centre in Frankfurt am Main, Germany, region eu-central-1):
- Profile: date of birth, height, body weight, training goal, experience level, training days per week and preferred weekdays, unavailable equipment, excluded exercises, picture preference (female/male model) and unit system.
- Training: workouts (start and end time, title, notes), exercises and sets (weight, reps, effort rating, warm-up and completed flags), routines, training plans and personal records.
- Body weight log: date and weight of each entry.
- Gym setups: name, type, available equipment and your machine settings with notes.
Database rules ensure that each account can only read and change its own data. Heart rate and workouts read from Apple Health are not synced (see section 6).
Legal basis: Art. 6(1)(b) GDPR. Height, body weight and date of birth are used to fit your training; we do not use them for any other purpose.
6. Apple Health (HealthKit)
Connecting Apple Health is optional and off until you turn it on in the app under Profile → Apple Health and confirm Apple’s permission dialog. You decide per data type what Brawnly may read or write.
- Read: height, body weight, workouts and heart rate.
- Written: height and body weight that you enter in Brawnly.
- Heart rate and workouts from Apple Health are only shown in the app (for example on the Progress tab). They are not stored by Brawnly and are not sent to us or anyone else.
- Height and body weight read from Apple Health are taken into your Brawnly profile and body-weight log. They are then handled like values you entered yourself: they stay on your device, and if you are signed in they sync to our backend (section 5) and can be used for the AI training plan if you request one (section 7).
- Data from Apple Health are never sent to analytics, crash reporting, RevenueCat or advertising services, and we do not use them for advertising. Analytics only learn whether the Apple Health connection is on or off and that a body-weight entry was made — without the value.
Legal basis: your consent via Apple’s permission dialog and the in-app switch (Art. 6(1)(a) GDPR); otherwise Art. 6(1)(b) GDPR. You can withdraw it at any time (section 19).
7. AI training plan
If you are signed in and use Brawnly Pro, you can have a weekly training plan generated. For this, our server function sends the following to OpenAI: your age (calculated from your date of birth), height, body weight, training goal, experience level, available equipment, number of training days and preferred weekdays, excluded exercises and the exercise catalogue. Your name, email address and user ID are not sent. OpenAI returns a plan, which is stored in your account.
The AI request only happens when you start it. You can create plans manually without AI at any time.
Legal basis: Art. 6(1)(b) GDPR (you request the plan).
8. Exercise catalogue and pictures
The exercise catalogue and programmes are loaded from our backend. Exercise pictures are loaded from our backend storage when you are signed in. These requests contain technical connection data (IP address, time, requested file) and, for pictures, your sign-in token.
Legal basis: Art. 6(1)(b) GDPR.
9. Feedback and support
When signed in, you can send feedback from the app. We store category, subject and message together with your user ID. We receive a notification email via the provider Resend, containing the category, subject, message, your user ID and your account email address. If you write to us by email, we process your message and email address to answer you.
Legal basis: Art. 6(1)(b) and (f) GDPR (answering your request).
10. Analytics and crash reports
To understand how Brawnly is used and to fix errors, the app uses:
- Amplitude (EU data centre): usage events such as onboarding steps, workout started or completed (with duration, number of sets and a rough training-volume range), set logged (whether it was a personal record), plan created, exercise viewed or searched, body weight logged (only that an entry was made, never the value), settings changed (for example the weight unit, or Apple Health sync switched on or off), screens of the purchase flow and purchase status, app start and session events, and errors. It also receives properties such as app language, region, install date, number of workouts, training days per week, training goal when an AI plan is created, gym or home setup, sign-in method, notification permission and your Pro status, plus a device ID. When you are signed in, your user ID is used as the Amplitude user ID. Amplitude does not receive your name, email address, date of birth, height, body weight, the weights you lift or any Apple Health data.
- Firebase Crashlytics (Google): crash reports with device model, iOS version, app version and the technical course of the crash.
- Firebase Analytics and Performance Monitoring (Google): automatically collected usage and performance data (for example app starts, sessions, device and app version, network timings). The app does not send its own events or personal data to Firebase.
- Install attribution: on first launch the app asks Apple’s AdServices framework whether it was installed via an Apple Search Ads campaign. The token goes only to Apple; the result (paid or organic install, campaign and country) is stored as an Amplitude property.
Brawnly does not use the advertising identifier (IDFA), does not track you across other companies’ apps or websites and shows no ads.
Legal basis: Art. 6(1)(f) GDPR (our legitimate interest in a stable, improving app) and, for access to your device, § 25(2) TDDDG. You can object at any time by email to app-support@donner.io; we will then exclude your user ID from analytics.
11. In-app purchases
Brawnly Pro is sold as an in-app purchase through Apple. Payment is handled by Apple; we do not receive your payment details. To manage your access we use RevenueCat, which receives an anonymous app user ID, the purchase details from Apple (product, amount, currency, transaction and renewal status) and, to link purchases with usage statistics, your Amplitude device ID and, if signed in, your user ID.
Legal basis: Art. 6(1)(b) GDPR; record keeping Art. 6(1)(c) GDPR.
12. Notifications
If you allow notifications, the app schedules local reminders on your iPhone, for example when your rest timer ends. These are created on your device; Brawnly does not use push notifications and does not register a push token with any server. Whether you allowed notifications is recorded in analytics.
13. This website
- Hosting: when you visit the website, our web host processes technical access data (IP address, time, page, browser) in server logs to deliver the site and keep it secure (Art. 6(1)(f) GDPR).
- No cookies, no analytics, no tracking. The pages load no fonts, scripts or images from other servers.
- Language choice: if you switch the language, your choice (“en” or “de”) is saved in your browser’s local storage under
brawnly-langso the start page opens in that language next time. You can delete it via your browser settings. If your browser prefers German, the start page opens the German version.
14. Recipients and processors
We use these service providers as processors on our behalf (Art. 28 GDPR):
| Provider | Purpose |
|---|---|
| Supabase Inc. | Backend: sign-in, database, file storage, server functions (data centre Frankfurt, EU) |
| Amplitude Inc. | Product analytics (EU data centre) |
| Google (Firebase) | Crash reports, automatic usage and performance data |
| RevenueCat Inc. | Managing in-app purchases |
| OpenAI | Generating AI training plans |
| Resend | Sending feedback notifications to us |
| Web host | Hosting this website |
Apple receives data as an independent controller when you use the App Store, Sign in with Apple, in-app purchases, Apple Health or install attribution. We do not sell personal data.
15. Transfers outside the EU
Some providers are based in the USA or may process data there, in particular Google, RevenueCat, OpenAI and Resend; Supabase stores our database in Frankfurt and Amplitude in its EU data centre, but both are US companies. Where data is transferred to a country without an EU adequacy decision, the transfer is based on the provider’s certification under the EU-U.S. Data Privacy Framework where available, or on the EU Standard Contractual Clauses (Art. 46(2)(c) GDPR).
16. How long we keep data and how to delete it
- Data on your device stays there until you delete it or the app. When you sign out, you can choose “Delete local data” to remove your data from the device.
- Account and synced data are kept as long as your account exists. Entries you delete in the app are marked as deleted in your account and are removed completely when your account is deleted.
- Deleting your account: write to app-support@donner.io from the email address of your account (or tell us your user ID). We delete your account and, with it, all synced data, plans and feedback linked to it, and confirm the deletion. Account deletion is not yet available inside the app.
- Analytics and crash data are deleted according to the retention settings of Amplitude and Firebase. Purchase records are kept as long as required by tax and commercial law.
- Emails to support are kept as long as needed to handle your request.
17. Your rights
You have the right to access (Art. 15 GDPR), rectification (Art. 16), erasure (Art. 17), restriction of processing (Art. 18), data portability (Art. 20) and to object to processing based on legitimate interests (Art. 21). You can withdraw consent at any time with effect for the future (Art. 7(3) GDPR), for example by turning off Apple Health access. Write to app-support@donner.io.
You also have the right to lodge a complaint with a data protection supervisory authority (Art. 77 GDPR), for example in the EU country where you live. The authority responsible for us is: Die Landesbeauftragte für den Datenschutz und für das Recht auf Akteneinsicht Brandenburg (Brandenburg data protection authority), Stahnsdorfer Damm 77, 14532 Kleinmachnow, Germany.
18. Children
Brawnly is not intended for children. The app does not accept a date of birth that makes you younger than 13. If you are under 16, please only use Brawnly and create an account with the consent of a parent or guardian. If you believe a child has given us personal data without such consent, please contact us and we will delete it.
19. Permissions and how to revoke them
- Apple Health: read height, body weight, workouts and heart rate; write height and body weight. Turn off in the app under Profile → Apple Health, or in Settings → Health → Data Access & Devices → Brawnly.
- Notifications: local reminders such as the rest timer. Revoke in Settings → Notifications → Brawnly.
The app does not request access to your location, camera, microphone, contacts, photos or the advertising identifier.
20. Security
All connections to our backend use encryption (TLS). Your sign-in session is stored in the iOS Keychain. Database access rules restrict your data to your own account. No system is perfectly secure; please use a strong password and keep your device locked.
21. Changes to this policy
We update this policy when the app or the law changes. The current version is always available on this page; the date at the top shows when it was last changed. Please also see our Terms of Use.