Privacy Policy

Last Updated: October 1, 2026

Enchanting Labs Pte Ltd ("we," "us," or "our") operates the Before I Bite mobile application (the "App"). This Privacy Policy explains how we collect, use, disclose, and safeguard your information when you use our App. Please read this policy carefully. If you do not agree with the terms of this Privacy Policy, please do not use the App.

1. Information We Collect

1.1 Account Information

When you create an account using Apple Sign-In or Google Sign-In, we collect:

  • Your email address (or relay address, if you choose to hide it)
  • Your name (if provided)
  • A unique authentication identifier from the sign-in provider

1.2 Health Data

With your explicit permission, the App reads and writes data through Apple HealthKit on iOS and through Health Connect on Android.

Data the App reads from HealthKit / Health Connect:

  • Date of Birth (iOS)
  • Biological Sex (iOS)
  • Height
  • Weight
  • Active Energy (calories burned)
  • Resting Energy (basal metabolic rate)
  • Workouts (completed exercise sessions and their active energy) (iOS)

Data the App writes to HealthKit / Health Connect:

  • Dietary Energy / Calories (from logged meals)
  • Protein (from logged meals)
  • Carbohydrates (from logged meals)
  • Total Fat (from logged meals)
  • Saturated Fat (from logged meals)
  • Fiber (from logged meals)
  • Sugar (from logged meals)
  • Sodium (from logged meals)

During onboarding you also provide profile information we use to calculate your daily nutrition targets: your height, weight, activity level, birthday, biological sex, fitness goal, and target preferences. Your height, weight, and activity level are stored on our servers and associated with your account (see Section 4.1). Your fitness goal and the resulting daily targets are stored on your device (see Section 1.3).

1.3 Nutrition and Meal Data

When you use Before I Bite's tracking features, the following data is created and stored locally on your device (and synced via iCloud on iOS if iCloud Sync is available and enabled). This data is not uploaded to or stored on our servers — except when you explicitly share a meal, as described in Section 1.4:

  • Photos of your meals (captured via camera or selected from your photo library), stored as thumbnails on-device
  • Food item details including name, portion size, calories, protein, carbohydrates, and fat
  • Meal timestamps and notes
  • Daily nutrition goals you set
  • Nutrient-tracking preferences (which nutrients you've chosen to display on your daily tracking screen — for example, sodium, fiber, or added sugar). Stored on your device and your account; used only to personalize the targets shown to you.

When you analyze a meal, the photo or text description (typed or voice-dictated) is sent to Google's Gemini API for nutritional estimation (see Section 3.1), but it is not stored on our servers. Barcode scan queries are sent to third-party food databases (see Section 3.1) but are likewise not stored by us.

1.4 Meal Sharing

The App lets you share a logged meal with other people through a link (for example, over Messages, WhatsApp, or Telegram). Sharing is always an explicit action you take; nothing is shared automatically. When you create a shared meal, the following is uploaded to and stored on our servers:

  • The food details you choose to share — food names, portion descriptions, and nutrition values (calories, macronutrients, and other nutrients such as fiber, sugar, sodium, cholesterol, or purine where available)
  • An optional meal photo and an optional note
  • A meal title, how the dish is split (number of people and portion split), and the date and time the meal was logged
  • Your name and an opaque sender handle we use to let recipients block future shares from you. Recipients who open the share in the App see your full display name; people without the App see only your first name on the public web page.

Recipients who open the link in the App can view the shared content and save it to their own log. People without the App see a limited preview on a public web page (the sender's first name, meal title, number of people sharing, and optional photo). A share stops being accessible when it expires after 7 days or when you revoke it from the App; expired and revoked shares are permanently deleted from our servers by an automated cleanup that runs daily, generally within a day of expiry. Expiry or revocation does not remove copies a recipient already saved to their own device, or the link itself in the conversation where it was sent. When a recipient saves a shared meal, their copy is stored locally on their device like any other meal entry. We never share your email address, account identifier, or HealthKit data with share recipients.

1.5 Usage Data

We collect data about how you use the App's API services, including daily request counts for photo analysis, barcode lookups, label scans, text food queries, and meal-share activity (shares created, opened, and saved). For meal sharing, we also store your inbox activity — which shares you opened, saved, or dismissed, with timestamps — so the App can show your inbox state. This is used to enforce usage limits and monitor service health.

When one of these API requests fails, we also record a diagnostic error log entry to help us detect and fix problems. Each entry contains a request identifier, the API route, an HTTP status and error code, a short technical error message, the request duration, and — if you are signed in — your user ID.

1.6 Crash and Performance Data

We use Firebase Crashlytics to collect crash reports, stack traces, and app performance metrics. This data helps us identify and fix bugs. Crashlytics may collect your device model, operating system version, and app state at the time of a crash.

1.7 Payment and Subscription Data

If you purchase Before I Bite Pro through the App Store (iOS) or Google Play (Android), Apple or Google processes the payment. We do not receive or store your full payment card details, and we do not receive your Apple ID, Google account details, or payment method.

Subscription entitlement is resolved on your device: through Apple's StoreKit on iOS, and through Google Play Billing on Android. The App checks your active store entitlements locally to determine whether you have ad-free Pro access. We do not submit purchase receipts to our servers, do not store subscription transaction records on our servers, and do not maintain a server-side copy of your subscription status.

1.8 Feedback

When you submit feedback through the App, we collect the message you write, an optional 1–5 rating, and basic device metadata to help us reproduce issues (platform, app version and build, OS name and version, device model, locale). If you are signed in at the time, the feedback is associated with your user ID; otherwise it is stored without an account identifier. Please do not include sensitive personal information (such as health details, identifiers, or other people's information) in feedback messages.

1.9 Voice Dictation

The Quick Add feature lets you dictate food names instead of typing them. When you use voice dictation:

  • The microphone captures audio only while you are actively holding or using the dictation control. Audio is not captured in the background.
  • Audio is processed by Apple's Speech Recognition framework (SFSpeechRecognizer). Depending on your device and locale, Apple may route the audio to its servers for cloud-based recognition; this processing is governed by Apple's privacy policy.
  • We do not receive, store, or process the raw audio. We receive only the transcribed text that Apple's framework returns, which is then treated as a food name you typed.

You can revoke microphone and speech recognition access at any time through your device's Settings.

1.10 Product Analytics

We collect product-usage analytics through Firebase Analytics to understand how features are used and to improve the App. Specifically, we log:

  • Feature-interaction events — for example, sign-in, onboarding step views, meal capture started or completed, Quick Add usage, and screen views
  • Aggregate user properties such as the month you joined, your chosen unit system (metric or imperial), and any survey cohort you belong to
  • Our namespaced user ID (beforeibite:<sub>) as the Firebase Analytics user identifier, so we can measure per-user engagement without linking analytics to your email or real name

We do not log food names, user-entered text, meal photo content, email addresses, or HealthKit values to analytics. We use the FirebaseAnalyticsWithoutAdIdSupport SDK variant, which means Firebase Analytics does not read or transmit the Identifier for Advertisers (IDFA). This is separate from the advertising SDK described in Section 1.11. Analytics data is processed by Google LLC and governed by the Firebase privacy policy.

1.11 Advertising and App Tracking

If you use the App without an active Before I Bite Pro subscription, you may see third-party advertisements. On iOS, banners appear during meal photo analysis and nutrition label scanning. On Android, banners appear during meal photo analysis. Barcode lookup does not show ads. Ads are served through Google AdMob (Google Mobile Ads SDK).

When ads are shown, Google and its advertising partners may collect or receive information such as:

  • Device identifiers, including the Identifier for Advertisers (IDFA) on iOS if you grant App Tracking Transparency permission, and the Android Advertising ID when available
  • IP address and general device information (device model, operating system version, language, and timezone)
  • Ad interaction data, such as impressions and taps
  • Approximate location derived from your IP address

We do not send your meal photos, food names, HealthKit data, account email, or other nutrition content to AdMob for ad targeting. The ads SDK starts only after you enter the ad-supported experience; it is not initialized on cold app launch.

On iOS, after you choose the free, ad-supported experience, the App may request App Tracking Transparency (ATT) permission through Apple's system prompt. This permission controls whether apps may access your device's advertising identifier for cross-app tracking. Denying ATT does not block the free experience, meal analysis, or subscription purchase. You can change this choice at any time in iOS Settings > Privacy & Security > Tracking.

On Android, Google's User Messaging Platform checks whether an advertising consent message is required. Where required, you can manage your choices through Ad privacy choices in Settings. Advertising consent does not control access to meal analysis.

Before I Bite Pro subscribers do not see in-app advertisements on iOS or Android.

2. How We Use Your Information

We use the information we collect to:

  • Provide and maintain the App's core features, including calorie tracking and health data integration
  • Authenticate your identity and secure your account
  • Analyze meal photos and nutrition labels using AI to estimate nutritional content
  • Look up food items by barcode or text search
  • Host and deliver meal shares you choose to send to other people
  • Sync your data across your Apple devices via iCloud (iOS, when iCloud Sync is available and enabled)
  • Enforce daily API usage limits
  • Determine ad-free Pro access from on-device store entitlements (App Store or Google Play)
  • Display third-party advertisements to free users and remove them for Pro subscribers
  • Monitor app stability and fix crashes
  • Improve and optimize the App

3. How We Share Your Information

3.1 Third-Party Service Providers

We share specific data with the following third-party services to provide App functionality:

  • Google Gemini API — When you photograph or describe a meal, or capture a nutrition label, we send the image (as encoded data) or text description to Google's Gemini API for nutritional analysis. Google's privacy policy governs their handling of this data.
  • Open Food Facts — When you scan a barcode, we query the Open Food Facts database. Our request includes the barcode number and a user-agent string.
  • USDA FoodData Central — As a fallback for barcode lookups, we query the USDA FoodData Central API with the barcode number.
  • Firebase Crashlytics (Google) — Crash reports and performance data are sent to Firebase Crashlytics. Google's privacy policy governs this data.
  • Apple CloudKit / iCloud — On iOS, when iCloud Sync is available and enabled, your App data (profile, meal logs, nutrition goals) is synced through Apple's CloudKit service. Apple's privacy policy governs their handling of this data.
  • Google AdMob (Google Mobile Ads) — If you use the free, ad-supported experience, the App requests ads from Google AdMob. Google and its partners may receive device and ad-interaction data as described in Section 1.11. Google's privacy policy and advertising policy govern their handling of this data.

3.2 Authentication Providers

When you sign in with Apple or Google, those providers process your authentication data according to their own privacy policies. We receive only the information listed in Section 1.1.

3.3 Other Users (Meal Sharing)

Meal sharing is directed by you: shared content is available only through an unlisted link, and search engines are instructed not to index the public preview page — but links can be forwarded. Treat the content of a shared meal (including any photo) as potentially visible to others. In-App recipients see your full display name, the meal details, and your note; people without the App see only the limited preview described in Section 1.4. No one sees your email address or account identifier. You can revoke a share at any time, and shares stop being accessible when they expire after 7 days. Recipients can report a share (for example, for an inappropriate photo) and block a sender; reports include a copy of the reported content as evidence for our review.

3.4 Legal Requirements

We may disclose your information if required to do so by law or in response to valid legal process, such as a court order or government request.

3.5 No Sale of Personal Data

We do not sell your personal information to third parties.

3.6 Sub-processors

We rely on the following sub-processors to operate the App. Each is bound by its own privacy terms; the data we share is limited to what is necessary for the listed purpose.

  • Cloudflare, Inc. — hosts our marketing website (beforeibite.com) on Cloudflare Pages and its waitlist database (Cloudflare D1). Receives waitlist email addresses and website request metadata. Privacy policy.
  • Google LLC (Google Cloud) — hosts our app API (Cloud Run) and its database (Cloud SQL for PostgreSQL). Receives account and profile data, API usage and diagnostic logs, and the meal-share content described in Section 1.4. Privacy policy.
  • Google LLC (Gemini API) — receives meal photos, nutrition label photos, and free-text food queries for AI nutritional analysis. Privacy policy.
  • Google LLC (Firebase Crashlytics) — receives crash reports and performance metrics. Privacy policy.
  • Open Food Facts — receives barcode numbers when you scan a product. Terms and privacy.
  • U.S. Department of Agriculture (FoodData Central) — receives barcode numbers as a fallback lookup. API terms.
  • Apple Inc. — provides Sign in with Apple, App Store payments (iOS Pro subscriptions), and CloudKit/iCloud sync of your local App data on iOS when iCloud Sync is available and enabled. Privacy policy.
  • Google LLC (Sign in with Google / Google Play Billing) — handles authentication when you sign in with a Google account, and processes Google Play payments for Android Pro subscriptions. Privacy policy.
  • Apple Inc. (Speech Recognition) — receives audio captured by the microphone during voice dictation in Quick Add. Audio is processed by Apple and is not stored by us; we receive only the resulting transcribed text. Privacy policy.
  • Google LLC (Firebase Analytics) — receives product-usage analytics events and our namespaced user ID as described in Section 1.10. Privacy policy.
  • Google LLC (AdMob) — serves in-app advertisements to free users and may receive device identifiers, IP address, and ad-interaction data as described in Section 1.11. Privacy policy.
  • Google LLC (Google Analytics 4 — beforeibite.com) — receives website analytics events from the marketing site. Subject to Consent Mode v2; operates in cookieless/anonymized mode unless the visitor has accepted analytics cookies. Privacy policy.

4. Data Storage and Security

4.1 Where Your Data Is Stored

  • On your device: Health data, meal logs, nutrition goals, meal photo thumbnails, and your Before I Bite Pro entitlement status (resolved through StoreKit on iOS or Google Play Billing on Android) are stored locally within the App's sandboxed storage.
  • iCloud: On iOS, if iCloud Sync is available and enabled, local data is synced across your devices through Apple CloudKit.
  • Our servers: Your account and profile information — your email, height, weight, and activity level — together with API usage logs, diagnostic error logs, and any meal shares you create are stored on Google Cloud (Cloud SQL for PostgreSQL), operated through our API hosted on Cloud Run. Your authentication token is signed and verified server-side. Waitlist emails submitted through our website are stored separately on Cloudflare D1.
  • iOS Keychain: Your authentication token is stored securely in the iOS Keychain.

4.2 Security Measures

We use the following measures to protect your data:

  • All network communication uses HTTPS/TLS encryption, enforced by iOS App Transport Security
  • Authentication tokens are signed using HMAC-SHA256 and stored securely in the iOS Keychain
  • Server-side data is hosted on Google Cloud (Cloud Run and Cloud SQL for PostgreSQL) with their platform-level security protections
  • Each user can only access their own data through authenticated API requests with per-user database isolation — except meal shares you create, which are deliberately accessible to people who receive your share link (see Section 1.4)
  • API endpoints enforce per-user daily rate limits and validate all input (file type, size, and query length)
  • The App runs within iOS's application sandbox, preventing other apps from accessing your data

4.3 Data Retention

  • Account data is retained on our servers for as long as your account is active. When you delete your account in the App (Settings > Profile > Delete account), the following records are permanently deleted from our database: your account record, profile, API usage logs, feedback, the meal shares you sent, your meal-share inbox state and blocked-senders list, and Apple refresh tokens (which are also revoked with Apple to terminate your Sign in with Apple session). One exception: meal-share reports are kept for moderation and abuse prevention as described above. If you were the reporter, your account identifier is removed from the report when your account is deleted; if you were the reported sender, the report still identifies you and its evidence snapshot is retained so we can act on abuse. Subscription status is not stored on our servers and is managed by your app store (Apple or Google) through your store account. Diagnostic error logs are handled differently: rather than being deleted, any error log entries linked to your account are de-identified by removing your user ID, so the remaining records can no longer be traced to you.
  • Local App data (meal logs, nutrition goals) is retained on your device (and in iCloud, when iCloud Sync is available and enabled) until you delete it.
  • Meal shares stop being accessible when they expire after 7 days or when you revoke them; expired and revoked shares are permanently deleted from our servers by an automated cleanup that runs daily, generally within a day of expiry. Your share-inbox activity records are deleted along with the share when it is purged, or when you delete your account. Reports of shared meals retain a copy of the reported content (title, note, and photo) so we can review abuse and enforce our Terms; report evidence is deleted by the automated daily cleanup once 90 days have passed after the report has been reviewed and resolved, except where retention is required by law — during a legal hold, the automated deletion is paused while the hold is in effect.
  • API usage logs are retained for service monitoring and rate-limiting purposes for up to 12 months from the date of the call, then deleted.
  • Diagnostic error logs are retained to help us monitor service health, debug failures, and protect against abuse. If you delete your account, your user ID is removed from any error log entries that referenced it, as described above.
  • Feedback messages are retained for up to 24 months from the date submitted, then deleted, unless we need to retain them longer to resolve a specific issue you reported.
  • Waitlist emails are retained until the App launches and you receive the download link, or until you ask us to remove your email at hello@enchantinglabs.com — whichever comes first.
  • Crash reports are retained according to Firebase Crashlytics' retention policies.

5. Your Rights and Choices

5.1 General Rights

You have the right to:

  • Access the personal data we hold about you
  • Delete your account and all associated server data, except meal-share reports retained for moderation (see Section 4.3), using the "Delete account" option under Settings > Profile in the App. The same action also erases your local profile, daily targets, and meal logs from the device.
  • Control HealthKit access through your device's Settings > Health > Before I Bite
  • Disable iCloud sync (iOS) through your device's iCloud settings when iCloud Sync is available
  • Revoke a meal share you have sent at any time from the App's share status screen; the share becomes immediately inaccessible
  • Manage subscriptions through your Apple ID account settings or the App Store on iOS, or through Google Play's subscription settings on Android
  • Control ad tracking on iOS through Settings > Privacy & Security > Tracking, or upgrade to Before I Bite Pro to remove ads on iOS and Android. On Android, use Ad privacy choices in the App's Settings when available, and manage your advertising ID through your device's privacy settings

5.2 Rights for European Economic Area (EEA) Residents

If you are located in the EEA, you have additional rights under the General Data Protection Regulation (GDPR), including:

  • The right to request rectification of inaccurate personal data
  • The right to request erasure of your personal data ("right to be forgotten")
  • The right to restrict or object to processing of your personal data
  • The right to data portability
  • The right to withdraw consent at any time
  • The right to lodge a complaint with a supervisory authority

Our legal basis for processing your data is: (a) your consent (e.g., granting HealthKit or camera access), (b) performance of a contract (providing the App's services), and (c) our legitimate interests (improving the App, preventing abuse). Meal-share content can reveal dietary and health-related information about you; we process that content only to deliver the sharing feature you requested and to keep shared meals safe. Where such content constitutes health data under GDPR Article 9, delivery relies on your explicit consent when you create the share (Article 9(2)(a)). Moderation of reported content relies on our legitimate interests in trust and safety where the content is not health data; where reported evidence containing health data is retained, it is retained only to the extent necessary for the establishment, exercise, or defence of legal claims arising from abuse (Article 9(2)(f)), which also applies after consent is withdrawn. Revoking a share or deleting your account stops further delivery and access, though report evidence may be retained as described in Section 4.3.

5.3 Rights for California Residents

If you are a California resident, you have rights under the California Consumer Privacy Act (CCPA), including:

  • The right to know what personal information we collect, use, and disclose
  • The right to request deletion of your personal information
  • The right to opt out of the sale of your personal information (we do not sell personal information)
  • The right to limit the use of sensitive personal information (we do not use sensitive personal information for advertising)
  • The right to opt out of the sharing of personal information for cross-context behavioral advertising, which you can exercise through iOS Settings > Privacy & Security > Tracking, Ad privacy choices in the Android App's Settings when available, or Google's ad settings at adssettings.google.com
  • The right to non-discrimination for exercising your privacy rights

5.4 Exercising Your Rights

To exercise any of these rights, please contact us at the email address listed in Section 11. We will respond to verified requests within 30 days (or within the timeframe required by applicable law).

6. Health Platform Data (Apple HealthKit and Health Connect)

We treat health-platform data with special care in accordance with Apple's and Google's requirements. The commitments below apply to HealthKit data on iOS and Health Connect data on Android:

  • HealthKit data is used solely to provide the App's nutrition tracking features.
  • We do not use HealthKit data for advertising or marketing purposes.
  • We do not share HealthKit data with third parties for advertising or marketing.
  • We do not sell HealthKit data.
  • We do not directly send raw HealthKit data to our servers. During onboarding, your height and weight may be pre-filled from HealthKit so you don't have to type them manually. You can review and edit these values before saving — and when you tap Save, the values you confirmed (whether HealthKit-prefilled or manually entered) are stored on our servers as part of your profile (see Section 1.2). All other HealthKit reads — active energy, resting energy, workouts, date of birth, biological sex — stay on your device and are never sent to our servers. We never use any HealthKit-derived data for advertising or sell it to anyone.
  • You can revoke HealthKit access at any time through your device's Health settings.

7. Camera and Photo Library

The App requests access to your camera and photo library solely for the purpose of photographing or selecting images of your meals and nutrition labels for analysis. Meal photos are:

  • Processed locally to create thumbnail images
  • Sent to Google's Gemini API in encoded form for nutritional analysis
  • Stored locally as thumbnails within the App's data
  • Shared with other people only when you explicitly create a meal share (see Section 1.4); otherwise never shared publicly or with other users

You can revoke camera or photo library access at any time through your device's Settings.

8. Website Analytics & Cookies

When you visit our marketing website at beforeibite.com, we use Google Analytics 4 (GA4) to measure page views and basic engagement. Here is what that means in practice:

  • Consent Mode v2 — GA4 is loaded with Google Consent Mode v2 configured with denied defaults. Until you explicitly accept analytics, GA4 operates in cookieless and anonymized mode, meaning no advertising cookies are set and measurement is based on aggregate modeling rather than individual tracking.
  • Accept / Decline banner — on your first visit, a consent banner asks whether you accept or decline analytics. Your choice is saved to your browser's localStorage under the key bib-consent-v1. Declining keeps the website fully functional; no features are gated on accepting analytics.
  • Local storage — the marketing site writes two localStorage values: your analytics consent preference (bib-consent-v1) and, after a successful waitlist signup, a signup-complete flag (beforeibite_waitlist) so the page can remember that you already joined. If you accept analytics, GA4 may also set its own first-party cookies in accordance with Google's policies.
  • No App data — website analytics are entirely separate from the Before I Bite iOS and Android apps. Your in-app nutrition data, health data, and account information are never shared with or influenced by website analytics.

Google's handling of website analytics data is governed by the Google Privacy Policy. You can also opt out globally using the Google Analytics Opt-out Browser Add-on.

9. In-App Advertising

Before I Bite offers a free, ad-supported experience on iOS and Android, and a paid Before I Bite Pro subscription that removes ads on both platforms. This section summarizes how advertising works in the App.

  • Where ads appear. Free users may see a labeled banner advertisement during meal photo analysis on iOS and Android, and during nutrition label scanning on iOS. All other App features — including meal logging, barcode scanning, label scanning, and progress tracking — remain available in the free experience.
  • What we share with advertisers. We do not share your meal photos, food entries, HealthKit data, or account profile with AdMob for ad targeting. Google AdMob may collect device and ad-interaction data as described in Section 1.11.
  • App Tracking Transparency. If you use the ad-supported experience, iOS may show Apple's tracking permission prompt. Your choice applies device-wide to apps that request tracking. Denying permission does not prevent you from using the App or purchasing Pro.
  • Pro subscribers. An active Before I Bite Pro subscription removes in-app advertisements on iOS and Android.
  • Ad content. Third-party advertisers are responsible for the content of the ads they serve. We do not endorse advertised products or services. If you encounter an inappropriate ad, please contact us at hello@enchantinglabs.com.

You can manage Google's ad personalization settings at adssettings.google.com.

10. Children's Privacy

The App is not directed at children under the age of 13 (or the applicable age of digital consent in your jurisdiction). We do not knowingly collect personal information from children. If you are a parent or guardian and believe your child has provided us with personal information, please contact us and we will delete such information.

11. Contact Us

If you have questions about this Privacy Policy or wish to exercise your data rights, please contact us at:

Enchanting Labs Pte Ltd
Email: hello@enchantinglabs.com

For data protection inquiries from the EEA, you may also contact your local data protection authority.