Privacy policy
This policy explains which personal data the FridgeLoop app for iPhone (including its Home Screen widget) and the website fridgeloop.donner.io process, why, and what rights you have. It is written for this app only.
1. Controller
The controller within the meaning of the General Data Protection Regulation (GDPR) is:
Dennis DonnerEduard-v-Winterstein-Straße 11
14480 Potsdam
Germany
Email: app-support@donner.io
I have not appointed a data protection officer, as I am not legally required to do so. For all privacy questions, write to the address above.
2. Summary
- FridgeLoop needs an account. Your items, recipes and shopping list are stored in that account so they sync between your devices.
- Barcode scan: only the barcode number is sent to Open Food Facts.
- Receipt scan: the photo is uploaded, stored in your account and analysed by OpenAI. Adding prices from a receipt only sends the text read on your iPhone.
- Recipe suggestions: the names of your items, your language and your region are sent to OpenAI.
- The app uses usage statistics (Amplitude, Firebase Analytics), crash reports and performance data (Firebase). It does not use the advertising identifier, does not track you across other companies’ apps or websites, and does not show ads.
- You can delete your account in the app at any time.
- This website sets no cookies, uses no analytics and loads nothing from third parties.
3. Account and sync
To use FridgeLoop you create an account with your email address and a password. Signing in, storing your data and syncing it run on Supabase. The password is never stored in plain text; your session is kept in the iOS Keychain on your device.
Data: email address, a user ID generated for you, password (stored as a hash), the time of registration and sign-in, and the content you create in the app (sections 4 to 9).
Purpose: providing the app and syncing your data.
Legal basis: Art. 6(1)(b) GDPR (performance of the contract with you).
If you forget your password or change your email address, you receive an email with a link. The link opens a page on this website on which you set a new password; the request goes to Supabase.
4. Items, expiry dates and shopping list
For each item you store a name, category, quantity, expiry date and, if you like, notes and the amount you paid (with currency, for example taken from a scanned receipt). The app also records whether an item was used up or thrown away, so the Insights screen can show you your own figures. For the shopping list the app stores the entries, whether they are ticked off and a history of items you added before, so you can pick them again.
This data is stored in your account (Supabase) and on your device. Database access rules ensure that every account can only read and change its own records.
Legal basis: Art. 6(1)(b) GDPR.
5. Barcode scan
The camera image is analysed on your iPhone with Apple’s VisionKit; no image leaves the device. When a barcode is recognised, the app asks the public product database Open Food Facts for the product name. Only the barcode number is transmitted, together with the technical data every internet request contains (such as your IP address and an identifier of the app). Open Food Facts is an independent organisation; its own privacy policy applies to the request.
Legal basis: Art. 6(1)(b) GDPR.
6. Receipt scan
You can photograph a receipt or choose one from your photo library.
To recognise the items, the photo (as a JPEG image), your app language and your user ID are sent to the app’s server (a Supabase Edge Function). The server stores the photo in a private storage area of your account and passes it to OpenAI, whose AI model reads the items and suggests an expiry date for each one. You then review the list and decide what to add.
Receipts may contain more than food, for example the name of the shop, the date, the time and the payment method. Please only scan your own receipts. The stored photo is not deleted automatically after the analysis; it is kept until you delete your account (section 16).
Adding prices from a receipt: to add the prices you paid to items you already have, the app reads the text of the receipt on your iPhone with Apple’s Vision framework. Only this text, your app language and your user ID are sent through the server to OpenAI to match the prices to your items; no photo is uploaded or stored for this. If the request fails, the text is analysed on your iPhone instead.
Legal basis: Art. 6(1)(b) GDPR. OpenAI acts as a processor; under its terms for business customers, data sent through the API is not used to train its models.
7. Recipe suggestions
When you ask for recipes, the names of the items you selected, your app language and your region are sent through the app’s server to OpenAI. The suggested recipes (with servings, difficulty and cooking time) are stored in your account. Ingredients you move to the shopping list are stored there.
Legal basis: Art. 6(1)(b) GDPR.
8. Reminders and push notifications
If you allow notifications, FridgeLoop reminds you before items expire. You choose in the settings how many days in advance (1, 2, 3, 5 or 7), whether reminders play a sound and whether you want reminders at all. These preferences, your app language (for the text of the reminder) and a push token for your device are stored in your account.
The server checks regularly which items are about to expire and sends the reminder through Firebase Cloud Messaging (Google) and the Apple Push Notification service. The notification contains the names, categories and quantities of the items concerned and, technically, your user ID.
Legal basis: Art. 6(1)(b) GDPR; displaying notifications requires your permission in iOS, which you can withdraw at any time in the iOS settings.
9. Home Screen widget
The widget shows the items that expire next. The app hands it a small summary through a storage area shared only between the app and the widget on your iPhone. Nothing is transmitted for this. The summary is removed when you sign out.
10. Usage statistics and crash reports
To understand which features are used, to find errors and to keep the app fast, the app uses:
- Amplitude (data storage in the EU): events such as “item added” or “recipe opened”, the screens you visit, device model, iOS version, app version, language, mobile carrier, the device identifier for this app (IDFV), your IP address (to derive the country; the city is not recorded) and your user ID. If you installed the app through an ad in the App Store, the campaign and country are recorded (see below).
- Firebase Analytics (Google): usage events and an app instance ID. Ad personalisation is switched off and the advertising identifier (IDFA) is not collected.
- Firebase Crashlytics (Google): crash reports with technical details such as device model, iOS version and the state of the app at the time of the crash.
- Firebase Performance Monitoring (Google): technical measurements such as app start time and the duration of network requests.
App Store ad attribution: once after installation, the app creates an attribution token on your iPhone and asks Apple (AdServices) whether the app was installed through an Apple Search Ads campaign. Apple answers with campaign details (such as the IDs of the campaign, ad group and keyword, the country and the date of the ad click); no personal identifier is involved, and no tracking permission is needed. The app keeps only whether the install came from an ad, the campaign ID and the country. This result is stored on your device and added to the usage statistics. The attribution token is also passed to RevenueCat (section 11).
These data are not used for advertising and are not combined with data from other companies.
Legal basis: Art. 6(1)(f) GDPR. The legitimate interest is a stable, reliable app and the improvement of its features. You can object at any time (Art. 21 GDPR) by email to app-support@donner.io.
11. In-app purchases
In-app purchases are processed entirely by Apple. I never receive your payment details. To know which features your purchase unlocks on all your devices, the app uses RevenueCat, which receives your user ID, the purchase information that Apple provides, the pseudonymous identifiers of the usage statistics (to link a purchase to the statistics) and the App Store attribution token (section 10). Purchases are managed in your Apple ID settings.
Legal basis: Art. 6(1)(b) GDPR.
12. Support emails
If you write to me, I process your email address and your message to answer you. If you write from the app (support or feedback), the email is prefilled with the app version, iOS version, device model, your user ID (only when you are signed in) and your RevenueCat customer ID, so I can help faster. You can delete these lines before sending.
Legal basis: Art. 6(1)(b) GDPR for questions about your account or the app, otherwise Art. 6(1)(f) GDPR (answering enquiries).
13. Permissions
- Camera: for the barcode and receipt scan.
- Photo library: only if you choose a receipt photo from it.
- Notifications: for expiry reminders.
The app does not request your location, contacts, calendar, microphone or health data. You can withdraw any permission at any time in the iOS settings; the related feature then stops working.
14. Service providers
The app uses the following providers. Where they process data on my behalf, data processing agreements have been concluded with them (Art. 28 GDPR).
| Provider | Purpose | Role |
|---|---|---|
| Supabase, Inc., USA (privacy policy) | Account, database, file storage, server functions, emails for sign-up and password reset | Processor |
| OpenAI (OpenAI Ireland Ltd. / OpenAI, L.L.C., USA) (privacy policy) | Item recognition on receipts, matching receipt prices, recipe suggestions | Processor |
| Google Ireland Ltd. / Google LLC, USA (Firebase) (privacy policy, Firebase privacy) | Analytics, crash reports, performance, push notifications | Processor |
| Amplitude, Inc., USA (EU data storage) (privacy policy) | Usage statistics | Processor |
| RevenueCat, Inc., USA (privacy policy) | Managing in-app purchases | Processor |
| Apple Inc. / Apple Distribution International Ltd. (privacy policy) | App Store, in-app purchases, push notifications, ad attribution | Independent controller |
| Open Food Facts (association, France) (privacy policy) | Product names for barcodes | Independent recipient |
Personal data are not sold.
15. Transfers outside the EU
Some of the providers above are based in the USA or may process data there. Where a provider is certified under the EU-U.S. Data Privacy Framework, transfers rely on the European Commission’s adequacy decision (Art. 45 GDPR); otherwise they rely on the standard contractual clauses adopted by the Commission (Art. 46(2)(c) GDPR). You can request a copy of the safeguards from me.
16. Retention and deletion
- Account data (items, recipes, shopping list and its history, preferences, receipt photos): as long as your account exists.
- Usage statistics and crash reports: according to the retention settings of the respective provider, and no longer than needed for the purposes above.
- Server logs of the app’s server functions: according to the log retention of Supabase.
- Emails: as long as needed to handle your request, and beyond that only where retention is required by law.
Deleting your account: in the app under You → Settings → Delete account. Your account is then deleted together with your items, recipes, shopping list, preferences and stored receipt photos. Usage data at Amplitude and Firebase and the purchase record at RevenueCat are not removed by this step; write to app-support@donner.io and I will have them deleted. You can also ask me by email to delete your account.
17. Your rights
You have the right to access (Art. 15 GDPR), rectification (Art. 16), erasure (Art. 17), restriction of processing (Art. 18) and data portability (Art. 20). You can withdraw consent at any time with effect for the future (Art. 7(3)).
Right to object (Art. 21 GDPR): where data are processed on the basis of Art. 6(1)(f) GDPR, you can object at any time for reasons arising from your particular situation.
To exercise your rights, an email to app-support@donner.io is enough. You also have the right to lodge a complaint with a data protection supervisory authority, in particular in the EU member state where you live. The authority responsible for me is the Landesbeauftragte für den Datenschutz und für das Recht auf Akteneinsicht Brandenburg.
No automated decision-making is used within the meaning of Art. 22 GDPR.
18. Children
FridgeLoop is not directed at children under 16. I do not knowingly process data of children under 16. If you believe a child has created an account, please let me know and I will delete it.
19. Security
All connections between the app, its server and its providers are encrypted (TLS). Every account can only access its own records; receipt photos are kept in a private storage area. Your session is kept in the iOS Keychain. No system is completely secure, but I take reasonable technical and organisational measures to protect your data.
20. This website
The pages of fridgeloop.donner.io set no cookies, use no analytics or tracking and load no fonts, scripts or images from third parties. Your language choice (English or German) is saved only in your browser’s local storage and is never transmitted.
When you visit the website, the web server automatically records technical access data in log files: IP address, date and time, the page requested, the amount of data transferred, the referring page and your browser’s user agent. These data are needed to deliver the website and to keep it secure. Legal basis: Art. 6(1)(f) GDPR. The log files are kept by the hosting provider according to its retention periods and are not combined with other data.
21. Changes
I update this policy when the app or the legal situation changes. The current version is always available on this page. The date at the top shows when it was last changed.