Privacy Policy
Last updated:
This Privacy Policy explains what information Setent (the "App") collects, how it is used, and the choices you have. Setent is designed to collect as little as possible: by default your travel data lives on your device, and anything that leaves it is strictly limited to the features described below.
1. Summary
- The App can be used without signing in. When you do not sign in, your passport stays on your device.
- If you sign in with Apple, we use Firebase Authentication to manage your account and Firebase Firestore to sync your travel data, trips, expenses, and social graph across your devices.
- Trip planning, group expenses, co‑traveler invites, and following other users only work when you are signed in. The data associated with these features is stored in Firestore so the people in your trip — or your followers — can see what they need to see.
- Photo library and device location data are processed on your device. Precise coordinates and your photos are never uploaded to our servers, except when you explicitly share your live location during a trip, or when you upload a photo (avatar, custom trip / city photo) yourself.
- We use Firebase Analytics to understand how the App is used. We do not use your data for advertising and we do not sell it.
2. Data Stored on Your Device
Your passport — the list of countries, regions (ISO 3166‑2) and cities you have marked as visited, plus related preferences (currency, temperature unit, plug compatibility, US‑state tracking flag) — is stored locally on your device. If you are not signed in, this data is not transmitted anywhere.
3. Account (Sign in with Apple)
Signing in is optional and is used to sync your passport, create or join trips, manage group expenses, and connect with other users. When you choose Sign in with Apple, the App uses Firebase Authentication (provided by Google) to create and manage your account. We receive from Apple:
- A unique Apple user identifier.
- Your name, if you choose to share it.
- Your email address, or Apple's private email relay address if you choose to hide it.
This information is stored by Firebase Authentication and is associated with a Firebase user ID that identifies you within the App.
4. Profile and Social Graph
While you are signed in, the App stores a public profile document in Firebase Firestore so other users can find and follow you. This profile contains:
- A username you claim through the App (claimed atomically by a Cloud Function).
- An optional display name and avatar photo you choose to upload.
- Counters such as the number of followers / following and the number of visited countries.
The follow graph (who follows whom) and lookups by username are also stored in Firestore. When another user follows you, a push notification may be delivered to your devices via Firebase Cloud Messaging (see section 9).
5. Passport Cloud Sync (Firestore)
While you are signed in, the App syncs the contents of your passport to Firestore so it follows you across devices. The synced data is limited to:
- Your list of visited country codes (ISO 3166‑1).
- Your list of visited region codes (ISO 3166‑2), including US states.
- Your list of visited city identifiers.
- A preference flag indicating whether US‑state tracking is enabled.
- Timestamps of the last update.
No photos, precise location, or other personal information is stored as part of your passport document. When you sign out, the App clears your passport from the device so the next user of the device does not see your data; your cloud document remains available for when you sign in again on any device.
6. Trips, Itineraries and Co‑Travelers
When you create a trip, the App stores a trip document in Firestore so you can sync it across your devices and share it with people you invite. A trip may contain:
- The trip's name, dates, and notes you add.
- An ordered list of stops with their place names, coordinates, and the time you plan to spend at each.
- The list of participants (Firebase user IDs) and any pending invite codes.
- The route geometry computed by the App.
When you generate an invite link for a trip, anyone with that link can join the trip — joining is processed by an acceptTripInvite Cloud Function. You can remove participants at any time.
7. Group Expenses
If you record expenses inside a trip, the App stores them in Firestore as part of the trip so every participant can see them and balances stay in sync. An expense contains:
- The amount and currency you entered.
- A short description you provide.
- Who paid and how the expense is split among participants.
- A timestamp.
Currency normalisation uses public exchange rates fetched by the App; we do not collect any banking or payment details. Setent is a tracking tool — it does not move money.
8. Live Location Sharing (Optional, During Trips)
You can optionally broadcast your live location to other participants of a trip you're on. When you turn this on:
- The App uses navigation‑grade location accuracy and may continue collecting location in the background while the broadcast is active.
- Your current coordinates are written to the trip document in Firestore so other participants can see them on the map in near real time.
- Sharing stops as soon as you turn it off, leave the trip, or close the broadcast — the App does not run live location in the background when no trip is sharing.
When you are not actively sharing, your precise coordinates never leave your device.
9. Photos (Optional)
The App uses photos in two distinct ways:
9.1 Photo‑based travel detection (on‑device only). If you grant read‑only access to your Photos library, the App reads location metadata (EXIF) from your photos on your device only to suggest countries, regions and cities you may have visited. Your photos and their metadata are never uploaded to our servers as part of this feature. You can revoke access at any time from iOS Settings → Privacy & Security → Photos.
9.2 Photos you upload yourself. You can choose to upload an avatar, a profile photo, or replace a city / place photo. When you do, the image is sent to a Cloud Function (uploadAvatar, uploadCustomPhoto, or one of the replace*Photo functions), processed, and stored on Cloudflare R2 object storage. The resulting public URL is recorded in your profile or in the relevant Firestore document and may be visible to other users (your followers, trip participants, or — for replaced city / place photos — all users of the App).
10. Location (Optional)
If you grant location access, the App uses your device location to highlight the country, region and city you are currently in and to optionally log newly visited places. Location is processed on your device using Apple's Core Location and reverse‑geocoding services. Only the resulting country / region / city identifiers are written to your passport; precise coordinates are not sent to our servers, except when you explicitly enable live location sharing during a trip (see section 8). You can revoke location access at any time from iOS Settings → Privacy & Security → Location Services.
11. Push Notifications
The App can send push notifications via Apple Push Notification service (APNs) and Firebase Cloud Messaging. To deliver them, your device's APNs token is exchanged for an FCM token, which is stored in Firestore against your Firebase user ID. Notifications are sent for events such as a new follower, a participant joining or leaving a trip, or a new expense added to a trip you're part of. You can disable notifications at any time from iOS Settings → Notifications → Setent.
12. Analytics
The App uses Firebase Analytics (provided by Google) to understand how the App is used and to improve it. This may include:
- Device identifiers such as the Firebase installation ID and the identifier for vendor (IDFV).
- Technical data such as device model and OS version.
- General interaction events such as screen views and session starts.
- Approximate location (country / region) derived from your IP address.
Firebase Analytics does not receive your photos, your precise location, the contents of your trips or expenses, or the personal details associated with your Apple ID.
13. How We Use Information
- To provide the App's core features — syncing your passport, running trips and group expenses, delivering invites, and powering the social graph.
- To deliver push notifications you've opted into.
- To analyse App usage and improve features.
- To monitor performance and stability.
We do not use your information for advertising, we do not share it with data brokers, and we do not sell it.
14. Service Providers
We use the following third‑party services, which may process data on our behalf:
- Firebase Authentication (Google) — account management.
- Firebase Firestore (Google) — cloud storage of your passport, profile, trips, expenses, follow graph, and FCM tokens.
- Firebase Cloud Functions (Google) — server‑side logic for username claims, trip invite acceptance, photo replacements, and push fan‑out.
- Firebase Cloud Messaging (Google) — push notification delivery.
- Firebase Analytics (Google) — usage analytics.
- Cloudflare R2 — object storage for stock photos as well as photos you upload (avatars, custom city / place photos).
Google's use of information is governed by Google's privacy policy at policies.google.com/privacy and Firebase's privacy and security information at firebase.google.com/support/privacy. Cloudflare's privacy policy is available at cloudflare.com/privacypolicy.
15. International Transfers
The services described above may process and store data on servers located outside your country of residence, including in the United States and the European Union. By using the App with these features enabled, you understand that your information may be transferred and processed in those locations.
16. Data Retention
If you are signed in, your Firestore documents (profile, passport, trips you own, expenses you authored, follow relationships, FCM tokens) are retained until you delete your account or request deletion. Trips you have joined but do not own continue to exist as long as the trip owner keeps them. Firebase Analytics retention follows our configured retention period in Google Analytics.
17. Your Choices and Rights
- Use the App without signing in to keep all travel data on your device.
- Sign out at any time to stop syncing and clear your passport from that device.
- Leave a trip at any time to remove yourself from its participant list.
- Turn off live location sharing at any time from the trip screen.
- Revoke Photos, Location, or Notification access at any time from iOS Settings.
- Revoke Sign in with Apple at any time from iOS Settings → Your Apple ID → Sign‑In & Security → Sign in with Apple.
- Request deletion of your account and associated cloud data by emailing support@setent.app from the email address associated with your Apple ID, or using the hidden email relay if you used one. Deletion removes your Firebase Authentication account, profile, passport, trips you own, expenses, follow graph entries, and uploaded photos.
- Depending on your region, you may have additional rights under laws such as the GDPR or CCPA, including access, correction, and portability. Contact us to exercise these rights.
18. Children's Privacy
The App is not directed to children under the age of 13, and we do not knowingly collect personal information from children. If you believe a child has provided us with personal information, please contact us so we can remove it.
19. Data Security
We take reasonable measures to protect information processed by the App. Passport data stored on your device is protected by iOS. Data in transit to Firebase and Cloudflare R2 is encrypted using industry‑standard TLS. Access to your Firestore documents is restricted by Firebase Security Rules so that only you, and the participants of trips you share, can read what's relevant to them.
20. Changes to This Privacy Policy
We may update this Privacy Policy from time to time. If we make material changes, we will notify you within the App or by updating this page. Please check this page regularly for updates.
21. Contact
If you have any questions or concerns regarding this Privacy Policy, please contact us at support@setent.app.