mk-sdApps for iPhone

FoodNoteBook

Contents
  1. Summary
  2. 1. Controller
  3. 2. What this app actually does (the technical basis of this policy)
  4. 3. Categories of data processed
  5. 4. Legal bases
  6. 5. What else is involved: server, sign-in, third parties and purchases
  7. 6. Recipients at a glance
  8. 7. Retention period
  9. 8. Your rights
  10. 9. Children
  11. 10. Data security
  12. 11. Automated decision-making
  13. 12. Changes to this policy

Privacy Policy

Last updated: 6 September 2026

*This is an English translation provided for convenience. The German version at https://mk-sd.com/foodnotebook/privacy is the authoritative text; in case of any discrepancy, the German version prevails.*

Summary

FoodNoteBook is different from a purely local app: to make AI meal recognition work, to make your account show the same data on several devices, and to manage a subscription, the operator runs its own server, and several third-party services are involved. This summary names the main points; roles and legal bases are in sections 2, 5 and 6.

  1. An account is required. You sign in with an email address and password, your Google account, or Sign in with Apple. Your entries live server-side in a database, hosted on Fly.io servers in Frankfurt am Main, Germany.
  2. Photos and spoken or typed descriptions of your meals and activities are sent to the Google Gemini API to estimate calories and nutrients, and photos are then kept together with the meal entry, not discarded. These estimates are an AI's approximation, not a measurement and not medical advice (section 2 and the health notice below).
  3. Apple Health (HealthKit): if you connect it, the app reads and writes your body weight only, nothing else. That is health data under Article 9 GDPR and requires your explicit consent through the iOS permission prompt.
  4. Emails (registration confirmation, password reset, support replies, and occasional summaries and reminders) are sent through the Resend service.
  5. Purchases run through two separate paths: Apple's App Store purchase (StoreKit) or, if you subscribe through the website, the payment processor Stripe. In neither case does the operator ever see your payment details itself.
  6. You can currently delete your account, and export your data, yourself through the account settings on the FoodNoteBook website. The iPhone app itself has no dedicated button for this today, only "Log out"; deletion is nonetheless always available by emailing the operator, see section 8.

1. Controller

Maximilian Kuchlbauer
Flurstr. 1
84524 Neuötting
Germany
Email: maximilian.kuchlbauer@gmail.com

No data protection officer has been appointed.

The app also has a product support mailbox (support@foodnotebook.org) that reaches the operator; for exercising your rights under the GDPR, the address above is the one that matters.

2. What this app actually does (the technical basis of this policy)

This section describes what was verified against the server source (server/src) and the iPhone app source (ios-native/Sources), not what would be desirable.

3. Categories of data processed

CategoryExamplesPurposeStorage location
Account dataEmail address, password hash (for email sign-in), name, Google or Apple identifier (for sign-in through those), language settingSign-in, account managementServer database (Fly.io, Frankfurt)
Profile and goalsAge, height, weight, target weight, activity level, calorie and macro goals, training daysCalculating a calorie goal, personalisationServer database
Meal and activity entriesName, calories, macronutrients, time, entry type (food/exercise), durationCore function: nutrition and activity diaryServer database
Meal photosPhotos taken or selected by the userAI estimation of nutrients, then kept with the entry (see section 2)Server (file storage, by default on the same machine as the database)
Health data under Article 9 GDPRBody weight from Apple Health, if connectedReconciling with the app's own weight entriesHealthKit on the device, and additionally as an ordinary measurement in the server database
Body measurementsBody measurements you enter manuallyProgress displayServer database
Device token for notificationsApple push device tokenDelivering remindersServer database, forwarded to Apple (APNs)
Email interactionTime an email was opened/clicked, IP address, link clicked, campaignKnowing whether system emails arrive; effectiveness of remindersServer database
Purchase and subscription data (App Store)Product identifier, purchase status, termUnlocking FoodNoteBook ProAt Apple; the server only reads the unlock status
Purchase and subscription data (website)Stripe customer and subscription identifier, payment statusUnlocking FoodNoteBook Pro through the website pathAt Stripe; the server stores only the identifier and status, no card data
In-app usage eventsFixed event names from a closed list, such as "plus button tapped", "AI analysis started", "AI analysis failed", plus a short failure code, the input kind (text, photo, voice) and a duration in milliseconds. No content: no meal text, no photo, no free text of any kind.Finding out where the app stops making sense to peopleServer database
Support messagesMessage you write, email addressHandling your requestServer database

The app does not ask for your location, your contacts, or your calendar, and does not read an advertising identifier.

On the usage events in particular, because they are the one category that is not a feature you asked for: there is no additional identifier. No install id, no device id, no advertising id. Events are attached to the account you already have, and only while you are signed in; signed out, no event is created. Which names and which extra fields may be stored at all is fixed in a closed list on the server, so the app cannot record anything else. No third party analytics service is involved; the rows stay in the same database as the rest of your entries.

5. What else is involved: server, sign-in, third parties and purchases

For a purely local app, this section would be short. FoodNoteBook needs a server and several third-party services for its core function; they are listed individually here.

5.1 Server and hosting

The server runs on infrastructure from Fly.io, Inc., physical server location Frankfurt am Main, Germany (primary_region = 'fra'). Fly.io processes all the data listed in section 3, as a processor under Article 28 GDPR, while it is stored with the operator. Fly.io, Inc. itself is headquartered in the US; even though the server itself is in the EU, a transfer during support or maintenance access from a third country cannot be excluded. The operator bases such a transfer on the European Commission's Standard Contractual Clauses; a signed data processing agreement with Fly.io was not part of the material reviewed for this policy and remains for the operator to add (see README.md).

5.2 AI provider (Google Gemini API)

To estimate calories and nutrients from a photo or a text, the server sends what you submit to Google LLC's Gemini API, USA. Google processes this content as a processor under Article 28 GDPR to return the analysis result. A transfer to the US takes place, based on the European Commission's Standard Contractual Clauses. The server caps the daily number and cost of such requests per account and overall.

5.3 Signing in with Google or Apple

If you sign in with your Google account, the server receives your email address, name, and a Google account identifier from Google to create or recognise your FoodNoteBook account. If you sign in with Sign in with Apple, the server verifies an identity token signed by Apple; depending on your choice at first sign-in, Apple passes on either your real email address or an Apple-generated relay address. In both cases, Google and Apple respectively process the sign-in data as independent controllers under their own privacy policy; the operator has no influence over that processing.

5.4 Email delivery (Resend) and email tracking

Registration confirmation, password reset, support replies, and occasional summary and reminder emails are sent through Resend, Inc., USA. Resend processes your email address, name, and the content of each message as a processor under Article 28 GDPR. A transfer to the US takes place, based on the European Commission's Standard Contractual Clauses.

Every email the server sends contains an invisible marker or a redirect link that lets the server detect whether and when you opened it or clicked a link inside it; the result is stored linked to the campaign and, where the email went to an existing account, to that account. The purpose is checking deliverability and function of the operator's own email sending, not selling this information to third parties.

5.5 Purchases through the App Store (StoreKit)

FoodNoteBook Pro can be subscribed to as an in-app purchase through Apple (product identifiers M1 monthly, Y1 yearly in the app configuration). The purchase contract is concluded between you and Apple, not with the operator of this app. The server only verifies Apple's own signed purchase confirmation (StoreKit 2) to unlock Pro status; it receives neither your name nor your payment data from Apple. Apple Inc. or Apple Distribution International Ltd. processes the purchase, payment, and device information as an independent controller, not as a processor for the operator. Apple's own privacy policy applies (https://www.apple.com/legal/privacy/).

5.6 Purchases through the website (Stripe)

If you subscribe to FoodNoteBook Pro through the account settings on the FoodNoteBook website instead, payment runs through Stripe. Unlike the App Store path, here **the operator of this app is the contracting party for the subscription**; Stripe processes the actual payment data (card data or a comparable payment method) as an independent controller for payment processing. The server itself receives from Stripe only a customer and subscription identifier and the payment status (active, cancelled, end date), no card data. See the Terms of Use and the Right of Withdrawal for this app for details on price, cancellation, and withdrawal for this path.

5.7 Push notifications (Apple)

If you allow notifications, the app transmits a device token to the server, which stores it together with your account identifier and passes it on to Apple's push service (APNs) to deliver reminders. Apple processes this delivery as an independent controller under its own privacy policy.

5.8 Your device's backup

Like any other app, FoodNoteBook is part of your iPhone's iCloud or computer backup, if you have one enabled. This concerns the app itself (settings, cached content), not the server's database, which exists independently of your device backup. Apple, or your own computer, is responsible for this backup, not the operator.

5.9 Visiting this website

The legal texts linked from the app, and this policy itself, are delivered through mk-sd.com, operated via Cloudflare, Inc. as a processor under Article 28 GDPR. Cloudflare processes technically necessary connection data (in particular IP address, time of the request, address requested) to deliver the page and defend against attacks. This page sets no cookies and includes no analytics or advertising tools. This policy does not concern the older foodnotebook.org website, which uses its own, separate tools and which this policy is meant to replace.

5.10 If you email the operator

If you write to maximilian.kuchlbauer@gmail.com or to the app's support address, the operator processes your email address and the content of your message to answer it. The legal basis is Article 6(1)(b) GDPR where it concerns the app or your subscription, otherwise Article 6(1)(f) GDPR.

6. Recipients at a glance

This table summarises who, from sections 2 and 5, receives which data in which role.

RecipientRoleWhat dataLegal basis / third-country transfer
Apple Inc. / Apple Distribution International Ltd.Independent controllerApp Store purchases, Sign in with Apple, notification delivery (APNs), device backupArticle 6(1)(b) GDPR; Apple's own privacy policy
Google Ireland Limited / Google LLCIndependent controller for sign-in dataEmail address, name, Google account identifier, for Google sign-inArticle 6(1)(b) GDPR; Standard Contractual Clauses for transfer to the US
Google LLC (Gemini API)ProcessorMeal photos, typed or speech-recognised text, for nutrient estimationArticle 6(1)(b) GDPR; Standard Contractual Clauses
Resend, Inc.ProcessorEmail address, name, message content, open/click eventsArticle 6(1)(b), partly (f) GDPR; Standard Contractual Clauses
Fly.io, Inc.Processor (hosting)All account data listed in section 3, while storedArticle 6(1)(b) GDPR; server location EU (Frankfurt), company headquartered in the US
Stripe (Stripe, Inc. / Stripe Payments Europe, Ltd.)Independent controller for payment processingEmail address, name, payment data, for the website purchase pathArticle 6(1)(b) GDPR
Cloudflare, Inc.Processor (website delivery)IP address, time and address of visits to this legal textArticle 6(1)(f) GDPR; Standard Contractual Clauses

Beyond this, no data is shared with third parties, in particular not with advertising networks, and no data is sold. As described in section 2, RevenueCat is no longer an active recipient.

7. Retention period

8. Your rights

You have the rights under the GDPR to access (Article 15), rectification (Article 16), erasure (Article 17), restriction of processing (Article 18), data portability (Article 20), and objection (Article 21).

How these work in practice for this app:

9. Children

Using FoodNoteBook requires a minimum age of 16 under this app's Terms of Use; younger users may only use it with the express consent of a parent or legal guardian. The app does not target children specifically.

10. Data security

Connections between the app and the server are encrypted (HTTPS). Passwords are stored hashed, never in plain text. Verification and reset codes are likewise stored only as a hash. Fly.io's security measures apply to the server infrastructure as its operator; measures the operator itself has implemented beyond that were not separately verified as part of this review.

11. Automated decision-making

The calorie and nutrient estimates returned by the Gemini API are an informational result of an AI analysis, not an automated decision with a legal effect or a similarly significant effect on you within the meaning of Article 22 GDPR: the app decides nothing about you, it estimates a nutrient value that you can edit or delete in every entry. No profiling within the meaning of Article 22 GDPR takes place.

12. Changes to this policy

This policy describes the state of the app as of the date given above. It will be updated as soon as the processing described here changes, in particular on a change of AI provider, email delivery service, hosting provider, or payment processor, on the introduction of further HealthKit data types, or once the iPhone app gets its own account deletion function.

The current version is available at https://mk-sd.com/foodnotebook/privacy. The Terms of Use are available at https://mk-sd.com/foodnotebook/terms, the Right of Withdrawal at https://mk-sd.com/foodnotebook/withdrawal.


*This policy describes the data processing verified against the source code of the server and the app as of 6 September 2026. It is not legal advice and does not replace a lawyer's review. Open items, where either the operator still needs to add something or a lawyer should be asked, are collected in README.md in this directory.*