Privacy Policy
Version 1.0 · effective from 2026-11-04
1. Who controls your data
The controller of your personal data is Tomasz Śmierzchała, Janusza Meissnera 4H/3, 60-408 Poznań.
- Personal data matters and requests (access, correction, account deletion): privacy@fit4game.com
- Everything else: contact@fit4game.com
We have not appointed a data protection officer. People who help develop the app act on the controller’s behalf and are not separate controllers of your data.
2. What this policy covers
This policy describes data processing in the Fit4Game mobile app (iOS and Android) and on the https://fit4game.com website. It also covers test versions of the app (“Fit4Game (Preview)”).
3. What data we process, why and for how long
| Data | Why | Legal basis (GDPR) | How long |
|---|---|---|---|
| Account: email address, username, password (we store only its BCrypt hash), account creation date, account type | Creating and running your account, signing in, contacting you about the service | Art. 6(1)(b) — contract (Terms of Service) | 30 days from your deletion request; during that time the account is hidden and signing in cancels the deletion. After that we delete the account permanently |
| Email confirmation and one-time codes: 6-digit codes sent by email when you register with a password (address confirmation), reset or set a password, and change your email address; in the database we store only their keyed hash (HMAC); until the email is sent, the code is also in the mail queue, in encrypted parameters (see the row on emails) | Confirming the address is yours and changing a password or address safely | Art. 6(1)(b) | A code is valid for 15 minutes; we delete it in a cleanup pass that runs every hour, after 24 hours from creation, so at most about an hour later |
| Pending registration: email address, username and password hash before you confirm the address with a code | Completing account registration | Art. 6(1)(b) | Until the address is confirmed; once it expires (24 hours) the registration stops working at once, and we delete it in a cleanup pass that runs every hour, so at most about an hour later |
| Emails sent by the app: recipient address, template and language of the message and its parameters (e.g. the code), encrypted until sent; security notices: “password changed” (to the account address) and “address changed” (to the previous address) | Sending codes and security notices | Art. 6(1)(b) | After sending or expiry the message parameters are cleared; finished entries are deleted in a cleanup pass that runs every hour, after 7 days, so at most about an hour later |
| Sign-in with Google or Apple: provider name, your permanent user ID at the provider, email address and whether the provider verified it, the app version used to sign in, dates the link was created and last used; for Apple also an encrypted refresh token used solely to revoke consent when the account is deleted. The name supplied by the provider is used only to suggest a username; we store neither the name nor the photo from your provider account | Passwordless sign-in | Art. 6(1)(b) | Same as account |
| Profile (optional): profile photo (avatar) and background image, bio, goals, training goal, experience level, gender, date of birth, location (a separate free-text field) and city (a separate field; visible to other users, see section 5) | Your in-app profile | Art. 6(1)(b) | Same as account; on request we erase profile data earlier |
| Training data: workouts (start, end, notes, how you felt, plan), exercises and sets (weight, reps, RIR/RPE, notes, video link), plans and templates, custom exercises, personal records and their history, statistics, streaks | Recording and analysing your workouts — the core of the service | Art. 6(1)(b) | Same as account |
| Game data: unlocked achievements and badges with dates, XP, ranking positions | Game features: achievements, rankings | Art. 6(1)(b) | Same as account |
| Community: posts (text, image link), comments, likes, who you follow and who follows you, guild membership (role, points) | Community features | Art. 6(1)(b) | Same as account; deleting the account also deletes your posts together with the threads under them. Your comments under other people’s posts stay without attribution to you (author: “Deleted account”), but their text stays unchanged; guilds and challenges stay without a creator |
| Notifications: push notification device token and platform (if you allow the app to send notifications on your phone), in-app notification history | Delivering notifications | Art. 6(1)(b) | Same as account |
| Session: access token (valid 15 minutes, stored only on your device) and refresh token (valid 30 days; stored in our database only as a SHA-256 hash) | Keeping you signed in | Art. 6(1)(b) | The token is valid for 30 days and signing out invalidates it; the token record (hash) is deleted no later than 7 days after it expires, and earlier together with the account |
| Security and logs: IP address, request headers (including app and OS version), time and address of requests in the API server and Cloudflare logs; number of sign-in attempts per IP address | Service security, abuse prevention, error diagnosis | Art. 6(1)(f) — our legitimate interest | Server logs: 14 days; API application logs: up to 5 files of 10 MB (rotation), and a copy of them (technical logs of our code) also in Sentry — 30 days; Cloudflare logs: per Cloudflare’s rules |
| Diagnostics of service and test-version errors: (a) from the API server in the test environment — server errors (5xx) and background-job errors, technical logs of our code and framework warnings, request performance traces, signals from the scheduled job, and the account identifier (without IP address, email address, authorization header, cookies, addresses with parameters, or request and response bodies; of the request headers only Accept, content type and length and the app and OS version from the User-Agent header); (b) from test versions of the app — technical error and performance data (including stack trace, device model, OS and app version, screen name), a trail of the screens and actions before an error (without addresses with parameters and without labels of touched elements), warning and error logs, user ID and username, the text of a problem report if you send one, and, on an error, a recording of the session at the time of the error with text and images masked (on iOS only); without email address and IP address | Detecting and fixing errors, keeping the service stable | Art. 6(1)(f) — our legitimate interest | 30 days (events, logs, performance traces, session recordings) |
| Correspondence: email address, message content and attachments when you write to our addresses | Handling reports, complaints and requests | Art. 6(1)(b) (when related to the contract) or (f) | Until the matter is closed, no longer than 12 months |
| The https://fit4game.com website: IP address and request headers processed by Cloudflare when serving the site | Delivering the site, keeping it secure and aggregate traffic statistics in the Cloudflare dashboard (no cookies) | Art. 6(1)(f) | Per Cloudflare’s rules |
If we make database backups, we keep them for no longer than 30 days.
The https://fit4game.com website uses no cookies, no analytics scripts and no resources from third-party servers.
4. What we do not do
- We do not process body weight, height, body measurements, physique photos, nutrition data, chat messages, payment data or device location. The app does not ask for access to location, camera, photos or health data on your phone.
- We do not process special categories of data under Art. 9 GDPR, including health data. Wearable integrations (heart rate, sleep) are not enabled; before we enable them, we will update this policy.
- Apart from aggregate traffic statistics in the Cloudflare dashboard, we do not use analytics tools; Sentry is used only to diagnose errors and performance (section 3), not to analyse user behaviour. We do not use advertising SDKs or marketing profiling. We do not send newsletters or marketing messages; we do not track opens or clicks in the app’s emails. We do not sell data.
- We use your Google account only to sign you in (scopes: identifier, email address, basic profile data) and share that data with no one except the entities listed in section 6.
5. What other users can see
Signed-in users of the app can see on your profile: your username, avatar, background image, bio, goals, goal and experience level, the date you joined, your account type and your city. They can also see your posts and comments, and your positions in rankings and guilds.
We never show your email address to others. Your date of birth, gender and location (the free-text field other than city) are visible only to you. Other users can be found only by username, never by email address.
6. Who we share data with
| Entity | Role | Data | Location | Basis for transfer outside the EEA |
|---|---|---|---|---|
| Hetzner Online GmbH (server rented through the mikr.us service) | Hosting the API, database and task queue | All account and app data | Finland (EU) | — |
| Cloudflare, Inc. | DNS, proxy and encryption for API traffic, website hosting, forwarding of incoming email to @fit4game.com addresses | IP addresses, request headers, traffic in transit; emails sent to our addresses | USA and global network | Adequacy decision (EU-US Data Privacy Framework) and standard contractual clauses |
| Google LLC | Sign in with Google; the mailbox that receives mail for @fit4game.com addresses | Google identifier, email address, name (only to suggest a username); correspondence content | USA | EU-US Data Privacy Framework and standard contractual clauses |
| Apple Inc. | Sign in with Apple; token exchange and revocation | Apple identifier, email address (may be an Apple relay address) | USA | Standard contractual clauses |
| Expo (650 Industries, Inc.) | Over-the-air app updates | IP address, device and app version information when fetching updates | USA | EU-US Data Privacy Framework and standard contractual clauses |
| wger (wger.de) | Exercise database | Exercise search phrases, without your identifier | Germany (EU) | — |
| Resend, Inc. | Sending transactional emails (codes, security notices) from an address in the notify.fit4game.com domain | Email address, message content, delivery metadata | Sent from the eu-west-1 region (Ireland, EU); account and logs in the USA | EU-US Data Privacy Framework and standard contractual clauses |
| Functional Software, Inc. (Sentry) | Diagnostics of errors and performance of the API in the test environment and of test versions of the app (data from the “Diagnostics of service and test-version errors” row in section 3) | Technical error and log data, account identifier, username in the app, problem reports, masked recordings of the session at the time of an error | Event data is stored in Frankfurt (Germany, EU); the company is based in the USA | EU-US Data Privacy Framework and standard contractual clauses |
We may disclose data to public authorities when the law requires it.
7. Transfers outside the European Economic Area
Some entities in section 6 operate in the USA (including Sentry: it stores event data in Frankfurt, but the company is based in the USA and part of the organisation’s data, including organisation account settings and data from technical support contacts, stays in the USA). We transfer data to them under the European Commission’s adequacy decision (EU-US Data Privacy Framework) or the Commission’s standard contractual clauses. You can obtain a copy of the safeguards by writing to privacy@fit4game.com.
8. Your rights
You have the right to: access your data and get a copy; rectification; erasure (“right to be forgotten”); restriction of processing; data portability (we will provide the data in a machine-readable format on request); object to processing based on legitimate interest (section 3, basis (f)); withdraw consent at any time where processing is based on consent (withdrawal does not affect the lawfulness of processing before it).
Send your request to privacy@fit4game.com from the email address linked to your account. We respond within 30 days; for complex matters we may extend this period and will let you know.
You also have the right to lodge a complaint with the President of the Personal Data Protection Office (Prezes Urzędu Ochrony Danych Osobowych, ul. Stawki 2, 00-193 Warsaw, Poland, uodo.gov.pl).
9. Do you have to provide data
An email address and password (or a Google or Apple account) are required to create an account — without them you cannot use the app. Registering with a password requires confirming your email address with a code; an account without a confirmed address cannot sign in with a password. Profile data, workouts and community content are voluntary.
10. Automated decisions
We do not make decisions about you based solely on automated processing that would produce legal effects or similarly significantly affect you. Rankings, achievements and statistics are computed automatically from your training data — that is part of the service, not marketing profiling.
11. Age
The service is intended for people aged 16 or older. If we learn that an account was created by a younger person, we will delete it. Parents and guardians: write to privacy@fit4game.com.
12. How we protect data
All traffic is encrypted (HTTPS). Passwords are stored only as BCrypt hashes, refresh tokens as SHA-256 hashes, one-time codes in the database as keyed hashes (HMAC) (until the email is sent, the code is also in the mail queue as an encrypted template parameter, encrypted with the server’s data-protection keys; after sending or expiry the parameters are cleared), and the Apple token in encrypted form. The database is reachable only locally on the server, from a separate account without administrative privileges. Sign-in attempts per IP address are rate-limited. On your device, session tokens are kept in the system’s secure storage (iOS Keychain, Android Keystore).
13. Deleting your account
We delete accounts with a 30-day grace period: from the request the account is hidden from others, and signing in during that time cancels the deletion. After 30 days we permanently delete the account data; comments under other people’s posts stay without attribution to you (author: “Deleted account”), with their text unchanged. We send the email with the erasure date to the address linked to the account. We revoke Apple consent at the time of the request when you delete the account in the app (this will be available soon), and when the request comes by email — at erasure, after 30 days. After erasure we send no further message. How to delete your account and what happens to your data is described on the Delete your account page.
14. Changes to this policy
Each version has a number and a date. We will announce significant changes in the app or on the website before they take effect.
Version history: 1.0 — first version.