Last updated: 29 April 2026
This is the privacy policy for Drove, a live bike-ride tracking application. It describes what personal data we collect about you, why we collect it, how long we keep it, and what rights you have. It is written to be readable. If anything is unclear, email petrepopescu21@gmail.com.
Drove is operated by:
[LEGAL REVIEW]For the purposes of EU data protection law, Petre Popescu is the data controller of the personal data described in this policy.
We are based in Romania. The Romanian data protection authority is the Autoritatea Națională de Supraveghere a Prelucrării Datelor cu Caracter Personal (ANSPDCP), https://www.dataprotection.ro. You can complain to them about our handling of your data at any time.
We process all personal data on the basis of Article 6(1)(b) GDPR — performance of a contract, except for the two activities flagged with (LI) below, which are based on Article 6(1)(f) GDPR — legitimate interests.
Drove uses three identity tiers. Most users move through them gradually as they engage more with the app. The data we hold differs at each tier.
When you first install the Drove mobile app, the app creates an anonymous Supabase Auth session for you in the background. This is a tamper-resistant identifier that lets us tie your settings, ride history on this device, and any rides you join to "you" without ever asking for an email address. The anonymous identity is created on the device the moment you launch the app, before any sign-in screen.
What we hold for an anonymous user:
| What | Why |
|---|---|
| A random, opaque user identifier (a UUID) issued by Supabase Auth | To let you join rides, read your own ride history, and persist your settings across app launches without an email |
The role(s) you hold (always the default rider role for anon users) | Internal access control |
| The version of this Privacy Policy and our Terms of Service that you have accepted, with a timestamp | Evidence that you agreed to those documents |
| Anything in tier 3 below if you go on to join a ride | The data is created by joining, not by being anon |
We do not collect an email address, a name, an SSO identifier, or any contact information at the anonymous tier. The identifier is local to your device — uninstalling the app effectively orphans the account from your end (we keep the row server-side until our retention rules delete it; see Section 4).
If you choose to link a Google or Apple identity to your anonymous account from inside the app (Profile → Sign in), your anonymous account is upgraded in place. You keep the same internal user identifier and any data you have accumulated.
What we additionally hold:
| What | Why |
|---|---|
| Email address as returned by your identity provider | To recognise you on a new device, and to email you about your account if needed |
| Display name as returned by your identity provider | To show you who is signed in |
| A unique account identifier from Google or Apple | To recognise you when you sign in again |
Does linking require a new "consent"? No. The legal basis for processing your data under Drove (performance of the contract you accepted at first launch) does not change when you link, and the privacy policy you accepted already discloses the data categories we collect at each tier. We do not need to ask you again to agree to the same documents.
What we do before completing a link:
openid, email, profile) needed to identify you.You can unlink at any time from the same screen, which moves you back to tier 1 without losing your data. Unlinking removes the email, name, and provider identifier from our records.
Event organisers sign in to the admin web dashboard via Google or Microsoft single sign-on. This is a separate path from the mobile flow. Admins always have an email and an SSO identifier; there is no anonymous tier on the web admin.
| What | Why |
|---|---|
| The display name you choose for the ride | So the organiser and other riders can recognise you on the map |
| Optional avatar (an image or initial) | Same as above |
| Your live GPS position while the ride is active | So the organiser and other riders can see you on the map. This is the service. |
| Speed and accuracy reported by your device | To make the live map useful and to flag riders who appear to have stopped |
| The time you joined and the time you left the ride | To bound how long we collect your location |
| The version of the Privacy Policy and Terms of Service you accepted | Evidence of acceptance |
We do not record audio, video, your contacts, your photos, or any other content from your device. We do not collect health, biometric, or any other special-category data under GDPR Article 9.
| What | Why |
|---|---|
| Push notification token (if you grant notification permission) | So we can send ride-related notifications (broadcasts from the organiser, ride-end notices) |
| What | Why |
|---|---|
| Your IP address, only when you attempt to join a ride using an invite code | To detect and slow down brute-force attempts on invite codes |
This data is kept for 30 days and then deleted automatically. We do not link it to your account. We process it under Article 6(1)(f) GDPR — legitimate interests — specifically, our interest in keeping the service usable and free of abuse. Our balancing of those interests against your privacy is documented in legitimate-interests-assessment.md in this repository; you can ask us for it.
| What | Why |
|---|---|
| Diagnostic information sent automatically by the app when something crashes — file paths, stack traces, the action you were taking when the error happened | To find and fix bugs |
We configure our error-monitoring tool (Sentry) to strip personal data before it reaches Sentry's servers — your email, display name, IP address, and any authentication tokens are removed at source. Errors are kept for 30 days and then deleted automatically. This is also processed under Article 6(1)(f) GDPR — legitimate interests.
| Category | Retention |
|---|---|
| Account data | While your account is open. We delete inactive rider accounts after 3 years of no use. |
Raw GPS tracks (location_points, ride_location_points) | 90 days after the ride ends, then deleted automatically. |
| Aggregate ride summaries (distance, duration, route taken) | While your account is open. Linked to your account, deletable on request. |
| Push tokens | While the app is installed. Removed if the device has been silent for more than 1 year. |
| IP addresses in the rate-limit log | 30 days, then deleted automatically. |
| Error monitoring records | 30 days, then deleted automatically. |
| Acceptance of this policy and the Terms of Service | While your account is open. |
| Audit log (administrative actions only — does not contain ride data) | 1 year. |
| Erasure log (the fact that you deleted your account, with a hashed identifier) | 1 year. |
The full retention schedule is published at retention-schedule.md. It is enforced by an automated job that runs every night.
Under the GDPR you have all of the following rights. Email petrepopescu21@gmail.com to exercise any of them; for most, you can do it yourself from inside the app under Settings → Privacy.
Drove is not for users under 16. By Romanian law (Law 190/2018, implementing GDPR Art. 8), the digital age of consent is 16, and we do not have a parental-consent verification mechanism. The app asks every new user to confirm they are 16 or older before they can join or sign in. If you become aware that a child under 16 has provided data to us, please email petrepopescu21@gmail.com and we will delete it.
We use a small number of third-party services to run Drove. Each of them processes personal data on our behalf, under a written Data Processing Agreement (DPA). The full list — including each company's location, the type of data they handle, and the legal mechanism that protects EU-to-non-EU data transfers — is in sub-processors.md.
In summary:
We do not sell your data to anyone. We do not share it with advertising networks. We do not pass it to anyone for direct marketing.
Your data is primarily stored in the European Union (Ireland, on Supabase). For some of the third parties listed above (Google, Microsoft, Sentry US, Vercel, Expo), some processing happens in the United States. Those transfers are protected either by:
The mechanism in force per vendor is documented in sub-processors.md.
If we change this policy in a way that materially affects you, we will:
version: field at the top of this document and at version: YYYY-MM-DD references inside the app code,You can always see the change history on GitHub.
Email: petrepopescu21@gmail.com
We aim to respond to data-subject requests within 30 days as required by GDPR Art. 12(3), and usually faster.