1. Data controller
This English version is a translation provided for convenience; the French version prevails.
The data controller is FlyBuddy — sole trader (French "entrepreneur individuel", EI), SIREN 949 036 917 (see the legal notice). For any question about your data or to exercise your rights: contact.flybuddy@gmail.com. FlyBuddy has not appointed a data protection officer (not required for its activity).
2. The data we process
- Telegram: Telegram id, username, first name, language, id of the conversation with the bots and bot state (started, blocked).
- XContest: your XContest username and id (UID). FlyBuddy only reads the XContest Live data of pilots who authorised it on XContest. For them, during a live flight: takeoff and landing times and places, positions, altitude, track, link to the flight, and the last position seen for the username.
- Current flight track: during a flight seen on XContest Live, FlyBuddy records your position about once a minute to show your track and triangle size on your club's page, as well as your last known position.
- Other positions: those sent by the XCTrack widget (landed OK, SOS, incident detection, raw track for analysis), the position you choose to share with the bot (for example after an SOS), the IGC tracks you import and the incident tracks you upload on the Rescue page (with an optional contact email).
- Safety: "landed OK", SOS, flight comment, alert settings, and the outcome of your last 10 landings submitted for confirmation (confirmed or not), shown to your followers so they can tell whether a silence is unusual.
- Relationships: pilots you follow, pilots following you, blocked pilots, clubs joined.
- Web account (if you create one): email, password (stored only as a hash), name, Google id if you sign in with Google, link to your Telegram account.
- FlyBuddy Live Android app (Google Play): it uses your web account (email and password, or Google). The session token is kept encrypted on the phone and the list of followed pilots is cached there for the widget. « Watch over my flights » option (off by default): when you turn it on, the app reads the phone's location, including in the background, to detect takeoff, landing and incidents; it sends FlyBuddy only the track of your flights (in flight, during « Landed OK? » and 4 minutes after landing), your OK / SOS answers and the detected incidents, kept as long as the XCTrack widget's data. Nothing is sent on the ground. Bluetooth vario (optional): if you pair one, the app reads its barometric altitude, climb rate, battery and, when it has one, its GPS position, only for this detection; the « Nearby devices » permission is used only to find and connect the vario, never to locate you. Notifications serve this option (« FlyBuddy watches over your flight », « Landed OK? »). The app does not access contacts or photos.
- Pilot profile (optional, what you enter): for example nationality, date of birth, licence, club, glider, sponsor.
- Premium: start and end dates, beneficiary (you or a club), and the payment ledger (payment id at Stripe or PayPal, amount, offer, payer, date, refunds). Card details are processed by Stripe or PayPal and never reach us.
- Browser notifications (Web Push): if you turn them on, the technical delivery address provided by your browser, linked to your account, the language and the subscription date. No position is attached.
- Messages written to the Telegram bots (other than recognised commands): the text, your Telegram id, your language and the answer given. To answer you, the text may be sent to Anthropic's AI assistant with minimal context (language, pending "landed OK?" question, number of pilots followed) — never your name, username or id.
- Messages written to the team (website chat, support bot): your messages and our answers, with your account, your Telegram id or, if you are not logged in, a random id stored in a cookie; the email you may leave to be told about our answer.
- Technical data: server logs (IP address, date, page requested), error reports (Sentry) and internal, anonymous, cookie-free audience measurement (daily aggregated counters: page without parameters, source, estimated number of unique visitors; no IP address, no identifier, no profile), complemented by the Rybbit visit statistics (section 12).
3. Why, and on what legal basis
We do not sell your data, we do no targeted advertising and we take no automated decision with legal effects on you.
- Providing the service you ask for (following pilots, alerts, landing confirmation, SOS, mini-app, widget, account, club page, Premium): performance of the contract (article 6.1.b GDPR).
- Telling your followers and your club page about your takeoffs, landings, "landed OK" and SOS, with your position when the feature provides for it: performance of the contract (it is the core of the service you turn on) and the legitimate interest of pilot safety.
- Showing club members on the club's public map: legitimate interest of the club and its members; these positions are already public on XContest Live. You can object by leaving the club.
- Payments, invoices and accounting: performance of the contract and legal obligation.
- Browser notifications: your consent, which you can withdraw at any time.
- Internal, anonymous, cookie-free audience measurement (aggregated counters, no personal data): legitimate interest in following how the service is used; it stores nothing on your device, which exempts it from consent.
- Rybbit visit statistics (section 12): legitimate interest in measuring and improving the audience of the website and the mini-app, and, when you are signed in, in finding your public XContest pseudo to fix a problem or let you know (support).
- Reading messages written to the bots and to support to answer and improve the service, error reports, security and abuse prevention: legitimate interest.
- Service emails (address verification, forgotten password, support answer): performance of the contract.
4. Who sees your data
Pilots who follow you see your takeoffs, landings, status (OK or SOS), comment, confirmation rate and, depending on the feature, a link to your flight or your position. Only let people you trust follow you; you can block a follower.
If you are a club member, you appear on the club's public map (position, track and triangle of the current flight, last known position) and, for a Premium club, your takeoffs, landings, "landed OK" and SOS (with your username) are pushed to the browsers subscribed to the club's alerts. To stop appearing there, leave the club in the Clubs tab.
Only the publisher has access to the administration and the databases.
5. Service providers and third parties
- OVH SAS — hosting of the servers and databases — France (Gravelines data centre).
- Telegram — messaging used by the bots and the mini-app; Telegram processes your messages under its own privacy policy — outside the European Union.
- XContest — source of live flight data, for pilots who authorised FlyBuddy — Czech Republic (EU).
- Stripe (Stripe Payments Europe Ltd) — card payments — Ireland (EU), with possible transfers to the United States.
- PayPal (PayPal (Europe) S.à r.l. et Cie, S.C.A.) — PayPal payments, when offered — Luxembourg (EU).
- Anthropic — AI assistant answering messages written to the bots — United States. Messages are not used to train its models.
- Sentry (Functional Software Inc.) — technical error reports, including a recording of a small share of website sessions with text and inputs masked — data hosted in the European Union (Germany).
- Resend — service emails — United States.
- Rybbit — cookie-free visit statistics (section 12) — data hosted in the European Union (Germany and Finland), delivered through the Cloudflare network.
- Google — Google sign-in if you choose it, fonts (Google Fonts) — Ireland (EU) and United States.
- Your browser's notification service (Google, Mozilla, Apple or Microsoft) — delivery of browser notifications, if you turn them on.
- Base maps (OpenStreetMap, MapTiler) — receive your device's IP address when a map is displayed — United Kingdom and Switzerland.
6. Transfers outside the European Union
When a provider processes data outside the European Union, the transfer relies on a European Commission adequacy decision (for example the Data Privacy Framework for certified US companies, the United Kingdom or Switzerland) or, failing that, on the European Commission's standard contractual clauses. What you exchange on Telegram is governed by the policy of Telegram, which you use directly.
7. How long we keep it
- Current flight track and last known position on club maps: 48 hours.
- Last position seen for an XContest username: 30 days.
- Widget alerts (vertical speed): 7 days. Raw tracks sent by the widget for analysis: 90 days. Incidents detected in flight by the widget (reserve, fall, collapse: type, figures, track of the last minutes, people told): 12 months, then anonymised (no pilot, no recipients, position and times shifted) to improve the detection.
- Outcome of the last landings submitted for confirmation: 400 days after the last recorded landing.
- Messages written to the Telegram bots, messages to support and the email left in the website chat: 90 days. Chat id cookie: 180 days.
- Account (web and Telegram), pilot profile, followed pilots, settings, imported IGC tracks: until you delete your account (Profile › More › « Delete my account », immediate) or ask us to. The technical XContest username ↔ UUID history seen on XContest Live is kept, with no link to your account. The payment ledger stays under the accounting obligation below.
- Web account whose email address was never verified (and linked to neither Telegram nor Google): deleted from 7 days after its creation.
- Incident tracks uploaded on the Rescue page (anonymised on receipt: only the date, the glider type and the GPS points are kept): deleted after 12 months unless validated; validated ones are used to test the detection for 5 years. The optional contact email is deleted after 90 days.
- Browser notification subscription: until you turn notifications off or your account is deleted; removed automatically as soon as the notification service reports it is no longer valid.
- Payment ledger and accounting records: 10 years (accounting obligation, article L123-22 of the French Commercial Code).
- Login session: 30 days.
- Server logs: 12 months at most. Error reports: 90 days at most. Sent emails (provider log): 30 days at most. Messages sent to the AI assistant: 30 days at most at Anthropic.
- Audience measurement: aggregated, anonymous counters, 13 months.
- Rybbit visit statistics: 3 years (set by the Standard plan of Rybbit Cloud).
- Technical backups: replaced as the service is updated (only the 3 most recent are kept).
8. Your rights
You may at any time ask for access to your data, its rectification, erasure or portability, restriction of processing, object to processing based on legitimate interest, withdraw your consent and give instructions about your data after your death.
Write to contact.flybuddy@gmail.com with your XContest username, your Telegram username or your account email. We answer within one month. Proof of identity is only requested in case of reasonable doubt. Account deletion is, for now, done on request by email.
You can also, without writing to us: unfollow or block a pilot, leave a club, turn off browser notifications (club page, profile or browser settings), delete your IGC tracks, object to anonymous audience measurement by turning on the "Do Not Track" signal in your browser.
If you believe your rights are not respected, you may lodge a complaint with the CNIL, the French data protection authority (www.cnil.fr, 3 place de Fontenoy, TSA 80715, 75334 Paris Cedex 07, France).
9. Security
Traffic is encrypted (HTTPS), passwords are stored hashed (scrypt), servers are in France, administration access is restricted to the publisher, calls between our services are authenticated with secrets, and bot tokens are masked in error reports. No measure guarantees absolute security: in the event of a data breach presenting a risk, we will notify the CNIL and, where required, the people concerned.
10. Minors
FlyBuddy is intended for people aged 15 and over. Buying a Premium offer is reserved for adults, or minors with the consent of their legal guardian.
11. Cookies and local storage
Strictly necessary cookies and storage (exempt from consent):
- flybuddy_session — keeps you logged in — 30 days.
- flybuddy_signed_in — only tells the page that you are logged in (value "1", no identifier) — 30 days.
- flybuddy_login_next — brings you back to the right page after Google sign-in — 10 minutes.
- fb_support_vid — finds your support conversation if you are not logged in, created only when you use the chat — 180 days.
- NEXT_LOCALE — remembers the language you chose.
- Browser local storage: theme, tabs, tutorial, payment in progress in the mini-app.
- Sentry uses the browser's session storage for error reports; no advertising cookie.
- No measurement cookie: the internal measurement is done by FlyBuddy itself, without cookies, without keeping any IP address or identifier, and without sending data to a third party. Only counters aggregated per day are kept (page path without parameters, source, estimated number of unique visitors from a fingerprint that changes every day and is never stored in clear). The number of people active on the bots and the mini-app is estimated by a probabilistic counter fed with an encrypted fingerprint of the Telegram id: it keeps no identifier and cannot be used to recover one. If your browser sends the "Do Not Track" or "Global Privacy Control" signal, nothing is counted on the website.
- Rybbit (visit statistics, section 12) stores no cookie. When you are signed in with an XContest pseudo, this public pseudo is kept in the browser's local storage (key "rybbit-user-id") until you sign out; nothing is kept there for a visitor. It is not loaded when your browser sends "Do Not Track" or "Global Privacy Control".
12. Visit statistics (Rybbit)
On top of the internal measurement, the website and the mini-app use Rybbit, an open-source, cookie-free audience measurement tool, to know the pages viewed, where visits come from (referring site or search engine), the type of device, the browser and the country, and the passage through a few key steps: sign-up, Telegram account link, adding a followed pilot, start and success of a Premium payment.
- No cookie. Visitor not signed in, or account without an XContest pseudo: Rybbit receives no identifier. Signed in with an XContest pseudo: your visits are linked to that pseudo, the one you chose to make public on XContest, so that we can fix a problem you run into or let you know (support); it is kept in the browser's local storage (key "rybbit-user-id") and erased when you sign out. Nothing else is sent: never your email, your Telegram id or username, your XContest UID, your password or the mini-app sign-in data. Unique visitors are estimated from a fingerprint of the IP address and the browser that changes every day; the IP address is only used to derive the country and is not kept.
- Addresses sent: the page path, without the URL parameters or the fragment (where the mini-app receives its Telegram sign-in data). Addresses that contain an identifier (a user's profile, a flight plan, a rescue trace) are replaced by a pattern. Administration, sign-in, password reset, account merge and the mini-app payment return are not measured.
- No session recording: no replay of the screen, the clicks or what you type is recorded.
- Provider: Rybbit (cloud service), which processes these statistics on our behalf; data hosted in the European Union (Germany and Finland), delivered through the Cloudflare network.
- Retention: 3 years (set by the Standard plan of Rybbit Cloud).
- Legal basis: legitimate interest (audience measurement and support). These statistics belong to FlyBuddy itself, with no tracking from one site to another and no combination with other data; only your public XContest pseudo is attached to them when you are signed in. To object, turn on "Do Not Track" or "Global Privacy Control" in your browser: the Rybbit script is then not loaded.
13. Changes
We may change this policy; the date below shows the latest version. If the change is significant, we will tell you on the website or through the bot. Last updated: 20 October 2026.