Fit4Game

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ń.

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

DataWhyLegal basis (GDPR)How long
Account: email address, username, password (we store only its BCrypt hash), account creation date, account typeCreating and running your account, signing in, contacting you about the serviceArt. 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 safelyArt. 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 codeCompleting account registrationArt. 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 noticesArt. 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 accountPasswordless sign-inArt. 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 profileArt. 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, streaksRecording and analysing your workouts — the core of the serviceArt. 6(1)(b)Same as account
Game data: unlocked achievements and badges with dates, XP, ranking positionsGame features: achievements, rankingsArt. 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 featuresArt. 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 historyDelivering notificationsArt. 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 inArt. 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 addressService security, abuse prevention, error diagnosisArt. 6(1)(f) — our legitimate interestServer 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 addressDetecting and fixing errors, keeping the service stableArt. 6(1)(f) — our legitimate interest30 days (events, logs, performance traces, session recordings)
Correspondence: email address, message content and attachments when you write to our addressesHandling reports, complaints and requestsArt. 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 siteDelivering 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

EntityRoleDataLocationBasis for transfer outside the EEA
Hetzner Online GmbH (server rented through the mikr.us service)Hosting the API, database and task queueAll account and app dataFinland (EU)—
Cloudflare, Inc.DNS, proxy and encryption for API traffic, website hosting, forwarding of incoming email to @fit4game.com addressesIP addresses, request headers, traffic in transit; emails sent to our addressesUSA and global networkAdequacy decision (EU-US Data Privacy Framework) and standard contractual clauses
Google LLCSign in with Google; the mailbox that receives mail for @fit4game.com addressesGoogle identifier, email address, name (only to suggest a username); correspondence contentUSAEU-US Data Privacy Framework and standard contractual clauses
Apple Inc.Sign in with Apple; token exchange and revocationApple identifier, email address (may be an Apple relay address)USAStandard contractual clauses
Expo (650 Industries, Inc.)Over-the-air app updatesIP address, device and app version information when fetching updatesUSAEU-US Data Privacy Framework and standard contractual clauses
wger (wger.de)Exercise databaseExercise search phrases, without your identifierGermany (EU)—
Resend, Inc.Sending transactional emails (codes, security notices) from an address in the notify.fit4game.com domainEmail address, message content, delivery metadataSent from the eu-west-1 region (Ireland, EU); account and logs in the USAEU-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 errorEvent data is stored in Frankfurt (Germany, EU); the company is based in the USAEU-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.