Last updated: 2026-05-15 Effective: 2026-05-15 Version: 3
Wobble is an independent personal project operated by flof.codes, focused on at-home balance wellness. We built this app to help people measure and track their balance using the motion sensors in their phone.
The data controller for any data you choose to share with us is:
Florian Fritz Kirchplatz 11 6162 Mutters, Austria me@flof.codes
If you have any questions about your data or this policy, that's the address.
We are not required to appoint a Data Protection Officer (DPO): the thresholds in GDPR Article 37(1) are not met for a single-operator project of this scale and processing scope.
Wobble sends data to our server under two independent triggers: enabling "Compare With Others" in Settings, or approving a link to a coach. If neither is active, everything stays on your phone and nothing is sent to our server.
Either trigger collects the following profile-level data, in addition to the session data described below:
If you enable "Compare With Others" first, the questionnaire is collected at that moment. If you approve a coach link first (without research opt-in), the same questionnaire is collected during the link-approval step instead. Once collected, this data stays on the server for as long as at least one purpose remains active. If both purposes drop away it is deleted with your full profile (see Section 5). You can review or edit your answers later under Settings → Edit my questionnaire; that option is only visible while at least one purpose is active, since otherwise the data does not exist on our server.
Additionally, only if "Compare With Others" is enabled, we also receive:
Session data — uploaded under either trigger — includes, for each session:
We do NOT collect:
A small exception we want to be honest about: a linked coach types their own label for you in their dashboard when they claim your code, so they can tell you apart from their other clients. That label is stored alongside the coach link and is shown only to that coach — you never enter it and never see it. Section 8 covers the coach-link flow.
When does collection start? Until you opt in, sessions you record stay only on your device. The first time you enable "Compare With Others" or approve a coach link, that locally stored history is uploaded along with new sessions so the consented purpose covers your full record — including sessions recorded before you opted in. If you never enable either, nothing ever leaves the device.
A note on the coach-link flow. Generating a 6-character pairing code under Settings → Coaches → Link a coach registers your device with our server right away — the coach needs a destination to attach their claim to, so an anonymous device record (a randomly generated profile ID, your device model, and OS version) has to exist before the code can be claimed. If no coach uses your code (you close the screen, the code expires, or you change your mind), that registration is automatically deleted within about five minutes — no session data, no questionnaire, nothing else is sent. Your sessions and the rest of the data described above only leave your device once you actually approve a coach link.
We use your shared data for four purposes:
We do NOT sell your data to anyone. We do NOT share individual records with third parties outside the coach-sharing arrangement you initiate. There is no commercial data licensing, and there are no advertising partners.
Under the EU General Data Protection Regulation (GDPR), we process your data on the basis of Article 6(1)(a) and Article 9(2)(a) — your explicit consent. You give that consent when you enable "Compare With Others" in the app, or when you approve a coach link. Each consent event is recorded in an internal audit log that we retain to demonstrate compliance. You can withdraw consent at any time.
For the optional "are you currently working with a healthcare provider on your balance" field specifically, we rely on your separate explicit consent under Article 9(2)(a). The opt-in dialog labels this field as health data and offers a "Prefer not to answer" option. You may decline that single field while still enabling Compare With Others; the rest of the questionnaire and the comparison feature still work, and the audit log records whether you answered or declined.
The brief preliminary device registration described in section 2 (when you generate a coach pairing code) sits on a different basis: Article 6(1)(b), processing necessary to perform a service you have requested — pairing your device with a coach. The record is anonymous, retained only as long as the link attempt remains live, and deleted within about five minutes if no coach uses your code.
Your data is kept on our server only as long as at least one purpose justifies it: either "Compare With Others" is enabled, or you have at least one confirmed coach link. The moment both of those drop away — you turn "Compare With Others" off and you have no remaining confirmed coach links — your entire server-side profile (sensor data, computed metrics, notes, birth year, self-ratings, coach link history, and consent records) is deleted automatically. There is no 30-day grace window: cleanup is immediate, in the same request that drops the last purpose.
Practical examples:
Fully anonymized, aggregated statistics — for example, "average sway velocity for users in their 30s" — may be retained indefinitely, because individuals cannot be identified from them.
Under the GDPR you have the right to:
The fastest way to delete your data is directly in the app:
You can also email us at me@flof.codes to exercise any of these rights. We will respond within 30 days.
A note on what we cannot do. Because we collect no name, email, or other identifying information, the only handle we have for your records is an anonymous code created on this device when you first connected to the server. If you uninstall Wobble without first using "Delete All Data" in Settings, we will not be able to identify your records later — even if you contact us. This is a deliberate trade-off of our minimal-data design: collecting nothing identifying means we cannot leak anything, but it also means we cannot help with deletion once the device is gone. Please use "Delete All Data" before uninstalling. (GDPR Article 11 recognises this case: a controller is not required to acquire identifying information for the sole purpose of complying with the regulation.)
Only the Wobble development team has access to the data stored on our server. We do not share individual records with any third party.
The one exception is a coach you choose to link to in the app — see section 8 below. A linked coach sees their own clients' data (and only their own clients' data), under a separate Coach Terms agreement they have signed with us. Other Wobble users' data remains invisible to them.
For as long as your profile exists on our server we also keep a small consent audit log alongside it: an append-only record of consent events (opt-ins, opt-outs, coach link approvals and revocations, along with the policy version you accepted). It exists so we can demonstrate, if asked, that any data we held was held with consent. The log lives and dies with the profile — when your profile is deleted (manually or via the automatic cleanup described in section 5) the audit rows are deleted with it, and is never shared with third parties.
Any future researchers or collaborators who need access to aggregated data will only receive fully anonymized aggregates that cannot be traced back to individuals.
Wobble lets you share your balance data with a named coach (for example, a physiotherapist or trainer who uses our Coach Dashboard). This is completely optional, completely separate from the "Compare With Others" research opt-in, and fully under your control.
How it works:
You can revoke a coach at any time under Settings → Coaches → Linked coaches. Server-side access ends immediately. Your coach is required by their separate Coach Terms (see flof.codes/coach-terms) to delete any local notes or copies they have made within thirty days, and not to contact you about the revocation.
What a linked coach sees today:
What we plan to add to the coach dashboard (consented now, becomes visible once shipped):
By approving the link you consent to both: the views available today and the planned per-session and compare views as we ship them, with no further prompt. If we add capabilities beyond what's listed here we'll prompt you to re-confirm under the policy-update process described in section 11.
What a linked coach does not see:
Coach sharing and the "Compare With Others" research opt-in are independent: enabling one does not enable the other, and either can be turned off without affecting the other. If you have neither enabled, your data is not uploaded to our server.
A practical caveat about revocation: if a coach has already loaded a page of your data into their browser before you revoke, that page remains in their browser cache until they refresh it. Their Coach Terms require them to discard it, but a determined bad actor could keep a copy. This is the same risk as any data shared with a person; we mention it here so the trade-off is honest.
Your data is stored on a private server physically owned and self-hosted by Florian Fritz / flof.codes, located in Tyrol, Austria (EU/EEA). No third-party hosting provider is involved — the hardware is not rented from a cloud or colocation operator. There is therefore no Article 28 GDPR data-processor relationship to disclose. Because the server is inside the EU/EEA, no international data transfer under GDPR Chapter V takes place.
You must be at least 16 years old to enable "Compare With Others" or to link a coach. The opt-in form rejects any birth year that implies an age below 16, and the server's questionnaire endpoint enforces the same rule, but we do not independently verify the birth year you provide. The rest of the app — recording sessions and viewing your own history locally — is available without any age check or opt-in.
If we make a meaningful change to how we use your data, we will prompt you to review and re-confirm the next time you open the app. The "Last updated" date at the top of this document always reflects the most recent version.