Privacy policy
This policy explains what personal data the Adri app and this website process, why, on what legal basis, for how long, and who else receives it. Adri is built to collect as little as possible: there is no advertising, no tracking across apps or websites, and no sale of data.
1. Controller and contact
Florian Kaiser. Email: adri@fnkr.net. See also the legal notice.
Further provider details will be available in Adri’s App Store listing when the app is released.
2. What we process, why, and for how long
Account
When you start using Adri, an account is created with a random ID and the display name you enter. You can use Adri without any sign-in method, or connect Sign in with Apple and/or Sign in with Google. For a connected method, Firebase Authentication stores the identifier and, if provided, the email address and name the provider shares. The app also stores a random account key in your iCloud Keychain so your other devices can sign in. We store only a hash of it.
Legal basis: performance of the contract with you (Art. 6(1)(b) GDPR). Retention: until you delete your account. Deleting your account removes your sign-in immediately. The remaining account data is purged 30 days later.
Groups, people and schedules
Groups contain the names, schedules and settings their members enter. This includes the group name, time zone, holiday selection and people (names, colors and roles). It also includes rotations and their revisions, covers, swaps, reassignments, requests and any attached messages. The Activity log records every change, who made it and when. Invite codes are stored until they expire or are revoked.
Everyone in a group can see the group's people, schedules, requests and Activity. Members therefore see each other's names and shifts.
People in a group do not need to use the app. A group may contain names of people who do not use Adri, including children, for example as a rotation's subject ("Adri is with …"). Please enter only what the group needs, such as first names or nicknames.
Legal basis: performance of the contract (Art. 6(1)(b) GDPR) for members. For names of people who do not use Adri, the legitimate interest of the group in organizing its shared care and tasks (Art. 6(1)(f) GDPR). Retention: as long as the group exists. When you leave a group, your name stays in it as a person without an account, so the schedule keeps working. The group can delete that person. A deleted group can be restored by its owner for 30 days and is then purged. The Activity log is kept as long as the group exists. A deleted rotation can also be restored for 30 days, then is purged. Its Activity entries remain while the group exists.
Devices and notifications
To send push notifications, we store a push token for each of your devices, together with its language and app version. Notifications are delivered through Firebase Cloud Messaging and the Apple Push Notification service. Reminders before your shifts are scheduled on your device and are not sent through our servers. Legal basis: Art. 6(1)(b) GDPR. Retention: until the token becomes invalid or you delete your account.
Google Calendar sync (optional)
If you connect Google Calendar, Adri asks only for permission to create and manage its own calendars (calendar.app.created). Adri cannot see your other calendars or their events. We store the connected Google account's email address, the calendar's ID and an encrypted refresh token, and write your group's shifts into the calendar Adri created. Disconnecting, leaving or deleting the group, or deleting your account deletes that calendar and, when it is no longer used, revokes the access. Legal basis: Art. 6(1)(b) GDPR.
Limited Use. Adri's use and transfer to any other app of information received from Google APIs will adhere to the Google API Services User Data Policy, including the Limited Use requirements. We use Google user data only to provide the calendar sync you turned on. We do not use it for advertising, do not sell it, do not let humans read it except with your consent, for security purposes or where required by law, and do not use it to train AI models.
ICS feed (optional)
If you turn on the ICS feed, your group's upcoming shifts are published as a file at a secret, unguessable address on Google Cloud Storage (EU). Anyone who has the link can read the feed, so share it only with calendar apps and people you trust. You can reset the link at any time. The old file is then deleted. The file is deleted when you turn the feed off, leave the group or delete your account.
Data export
You can export your data as a JSON file from the app's settings. The file is created on demand, sent directly to your device and never stored on our side.
Security and abuse prevention
Every request from the app is checked with Firebase App Check, which uses Apple App Attest and DeviceCheck to confirm it comes from the genuine app. To prevent abuse and duplicate actions, we keep per-account usage counters and a record of each processed request for 7 days. Legal basis: legitimate interest in a secure and reliable service (Art. 6(1)(f) GDPR).
Analytics and crash reports
App Store and TestFlight builds use Firebase Analytics and Firebase Crashlytics to understand how the app is used and to find and fix crashes, and Firebase Remote Config to adjust settings remotely. Usage events come from a fixed list and contain no names, group names, messages or shift times. Crash reports contain technical data such as device model, iOS version, app version and the location of the crash in the code. Firebase uses a random installation identifier. We do not use the advertising identifier (IDFA) and do not track you across apps or websites. There is no consent prompt. Legal basis: legitimate interest in a stable and improving app (Art. 6(1)(f) GDPR). Retention: Crashlytics keeps crash reports for 90 days. Analytics keeps event data for the retention period set for the property.
If you have chosen to share analytics with app developers in your iPhone's settings, Apple may also give us aggregated, anonymous crash and usage statistics.
This website
This website uses no cookies, no analytics and no third-party scripts or fonts. It is delivered by Cloudflare, which processes your IP address and request data to deliver the page and protect it from attacks. The invite page reads the invite code from the part of the link after #. Browsers never send that part to the server. Legal basis: Art. 6(1)(f) GDPR.
If you email us, we use your address and message only to answer you, and delete them when they are no longer needed.
Backups
Our database keeps a point-in-time recovery window of 7 days. Deleted data can therefore persist in this recovery window for up to 7 days after it is purged.
3. Recipients and processors
- Google (Google Ireland Limited, Google LLC, USA) as processor: Google Cloud and Firebase. Cloud Firestore stores data in the EU multi-region
eur3in Belgium and the Netherlands. Cloud Run runs in Belgium and the Netherlands. Cloud Storage stores data in the EU. Firebase services include Authentication, Cloud Messaging, Analytics, Crashlytics, App Check and Remote Config. Some Firebase services process data in the USA. Transfers rely on the EU–US Data Privacy Framework and the EU Standard Contractual Clauses. - Apple (Apple Distribution International Ltd., Apple Inc., USA): Sign in with Apple, push notifications, App Attest and DeviceCheck, and the iCloud Keychain that holds your account key.
- Google Calendar, only if you connect it: your shifts are written to the calendar Adri created in the Google account you chose.
- Cloudflare (Cloudflare, Inc., USA) delivers this website.
- OpenHolidays provides holiday data. Our servers fetch it by country. It receives no personal data.
We do not sell or rent personal data and do not share it with advertisers or data brokers.
4. Your rights
You have the right of access (Art. 15 GDPR), rectification (Art. 16), erasure (Art. 17), restriction (Art. 18), data portability (Art. 20) and to object to processing based on legitimate interests (Art. 21). You can export your data and delete your account directly in the app (Settings → Data export, and Settings → Delete account). For anything else, email adri@fnkr.net.
You may also lodge a complaint with a supervisory authority. The authority responsible for us is Der Landesbeauftragte für den Datenschutz und die Informationsfreiheit Rheinland-Pfalz, Hintere Bleiche 34, 55116 Mainz, Germany.
5. Children
Adri is meant to be used by adults organizing care and tasks. Children's names may appear in a group when its members enter them. See “Groups, people and schedules” above.
6. Changes
We will update this policy when the app or the law changes, and will announce material changes in the app. The effective date at the top shows the current version.