Privacy Policy
Effective date: 2026-05-23
This Privacy Policy describes how BestBefore (“Application”, “Service”) developed by Isak Axel Gustav Svahn (“Service Provider”, “we”, “us”) handles information. The Service is provided “AS IS.”
Controller and Contact
Information We Handle
1) User-Provided Content (on device or in iCloud)
- You enter data such as item names, expiry dates, shopping list entries, and related notes.
- Storage locations:
- Local: on your device.
- iCloud: in your personal Apple iCloud account if you enable syncing and optional sharing.
- We do not access your iCloud content. iCloud is provided and secured by Apple under Apple’s terms and privacy policy.
2) Optional Sharing via iCloud
- You may share specific lists with other iCloud users via invite links. Sharing and access control (owner/participants) are handled by Apple’s iCloud.
- We do not access, transmit, or store shared iCloud content.
3) Camera and Photo Access (Barcode, Date, Storage, and Receipt Scanning)
- Purpose: The app requests access to your device’s camera and/or photo picker so you can scan product barcodes, printed expiry dates, storage areas (for example a fridge or pantry), and grocery receipts.
- Barcode and individual date scanning: Camera frames are processed on your device to detect and decode barcodes and printed date text. On iOS, the app may use Apple Vision text recognition for live date scanning. We do not store camera video, and we do not transmit live camera frames to our servers for barcode or individual-date scanning.
- Storage and receipt scans: If you choose the storage scan or receipt scan feature, the selected image is compressed on your device and sent to our Firebase Cloud Function so Google Gemini can identify visible food/drink items and estimate expiry timing. We do not use these photos for advertising. We do not intentionally store the uploaded image after the request is processed, but Google/Firebase infrastructure may process transient copies, logs, and security data according to Google’s terms and privacy documentation.
- The only data sent externally for barcode lookup is the barcode number to Open Food Facts to retrieve product metadata (see “Barcode/Product Lookup”).
- Optional: If you deny or revoke camera permission, camera-based scanning will not work; other features remain available. Photo-picker based scans may still work if you choose an existing image.
- Manage Permission (iOS):
- Settings → Privacy & Security → Camera → BestBefore, or
- Settings → BestBefore → Camera.
4) Barcode/Product Lookup
- When you scan a barcode, the barcode number is sent to Open Food Facts to retrieve product metadata.
- Product lookup and comparison features may retrieve product names, brands, quantities, product images, ingredients, categories, Nutri-Score, Eco-Score, NOVA group, calories, nutrients, and carbon-footprint information from Open Food Facts where available.
- When you compare shopping-list products, each scanned barcode used for comparison may be sent to Open Food Facts.
- We do not link this request to your identity.
5) Optional App Analytics (Firebase Analytics)
- If you choose to enable app analytics, Firebase Analytics may collect app usage events and related device/app information to help us understand and improve onboarding, reminders, recipes, AI scans, product comparison, purchase flows, and app settings.
- Examples of analytics events may include tutorial progress, item-save events, notification permission results, recipe-page opens, recipe-generation starts/completions/blocks, scan starts/completions/errors, paywall views, checkout starts, and purchase events.
- Analytics event parameters may include non-content context such as source screen, app locale, storage type, item counts, urgent-item counts, category, days until expiry, AI capability/provider, subscription product ID, displayed price, currency, and whether cached/fallback results were used.
- We do not intentionally send your item names, expiry-date text, shopping-list entries, recipe text, receipt/storage photos, camera images, or iCloud list content to Firebase Analytics.
- Analytics is off unless you grant consent. You can turn it off later in Settings → App analytics; when disabled, the app stops sending new analytics events from that device.
6) Advertising Data (via third parties)
- For ads: advertising identifiers (e.g., platform ad ID), IP address (for general location), device/OS info, app version, and ad interaction events may be collected by ad partners to deliver, limit, and measure advertising according to your consent choices.
7) Impact Estimates and Share Cards
- The app may estimate money saved and CO₂e prevented when you mark food as used/saved. These estimates are rough, local-only calculations based on broad category averages, item names/categories, your locale/currency, and Open Food Facts carbon-footprint data when available.
- Impact totals, item-saved counts, levels, and points are stored locally on your device and are not synced to iCloud by the current implementation.
- If you choose to share a level-up success card, the app generates an image on your device that may include your level, points, estimated money saved, and estimated CO₂e prevented. You decide where to send it through the operating-system share sheet; recipients and selected sharing services process it under their own terms.
Purposes and Legal Bases
We process information to:
- Provide core functionality (inventory, reminders, syncing/sharing you request) — necessary to provide the Service and/or based on your choices in the app.
- Use the device camera or photo picker for barcode, expiry-date, storage, and receipt scanning — necessary to provide the requested feature and/or based on our legitimate interests.
- Provide AI-powered recipe generation, storage scans, and receipt scans through Apple on-device models where available and Google Gemini/Firebase Cloud Functions where needed — necessary to provide requested AI features and/or based on your subscription entitlement.
- Provide product insights and product comparison using Open Food Facts — necessary to provide requested barcode/product features and/or our legitimate interests.
- Provide points, level-up screens, and rough impact estimates — necessary to provide app features and/or our legitimate interests.
- Measure and improve app usage with Firebase Analytics — based on your consent.
- Deliver and measure ads (personalized or non‑personalized) — based on your consent where required or our legitimate interests where permitted.
- Verify BestBefore Plus and legacy purchase entitlements, manage access, and enforce fair-use AI quotas — necessary to provide paid features, prevent abuse, and control third-party API costs.
- Perform product lookup when you scan barcodes — necessary to provide the feature and/or our legitimate interests.
- Send notifications/reminders — based on your app settings and device permissions, and as necessary to provide requested features (including optional shared‑list activity notifications via iCloud/CloudKit if you participate in a shared list).
Where consent is used, you can withdraw it at any time in the relevant app settings without affecting prior processing.
Your Choices and Consent
- On first launch (and later in Settings → Manage Privacy), you can grant, deny, or adjust consent for advertising purposes as required by applicable law.
- On first launch and later in Settings → App analytics, you can grant, deny, or adjust consent for optional Firebase Analytics.
- On iOS, you may be asked for permission through the App Tracking Transparency framework; you can decline. Ads may still appear but be less relevant.
- You can change advertising choices at any time in Settings → Manage Privacy, and analytics choices in Settings → App analytics.
App Permissions (summary)
- Camera (optional): for barcode scanning, live expiry-date scanning, and taking storage/receipt photos. Change in iOS Settings as noted above.
- Photos/photo picker (optional, where used): to choose an existing image for storage or receipt scanning.
- Notifications (optional): to deliver (a) local expiry reminders you configure and (b) optional shared‑list activity alerts when iCloud shared lists change. Manage in iOS Settings → Notifications → BestBefore.
Shared List Activity Notifications (iCloud/CloudKit)
- If you join or create a shared iCloud list, the app can use Apple CloudKit subscriptions to detect changes to that shared list and trigger a notification to participants.
- These notifications are intended to alert participants that a shared list was updated (for example: “A change has been made in the shared list”). They do not include the shared list name or specific item details.
- CloudKit may deliver a push to your device when shared iCloud data changes. This can allow the app to sync changes and (depending on your settings) display a user‑visible notification even if the app is not open.
- Notifications are delivered through Apple’s iOS notification services (e.g., Apple Push Notification service). Whether a notification is shown, its timing, and its lock‑screen preview content depend on your device settings.
- You can disable notifications at any time in iOS Settings → Notifications → BestBefore.
iCloud Syncing and Sharing
Your iCloud data resides in your personal Apple account and is governed by Apple’s terms and privacy policy. We do not access your iCloud content.
Roles:
- Owner: creates a shared list, can invite/remove participants, can stop sharing or delete the shared list.
- Participant: joins a shared list via an invite and can leave at any time.
Behavior:
- All participants can edit shared lists (read‑only roles are not supported).
- If a participant leaves, the list remains for others.
- If the owner deletes the shared list (or leaves in a way that deletes it), the list and its items are removed for everyone.
- “Delete all iCloud data” in Settings is visible to the owner of the active shared list, or when using iCloud privately (no active shared list). It is not available to participants on someone else’s list.
AI Features: Recipes, Storage Scans, and Receipt Scans
BestBefore includes optional AI features. Recipe generation may run on your device using Apple Foundation Models/Apple Intelligence when available, or through our Firebase Cloud Functions using Google Gemini when Apple Intelligence is unavailable or the cloud recipe path is used. Storage scans and receipt scans use Google Gemini through Firebase Cloud Functions.
- Recipe inputs may include item names, urgent-item flags, locale/language, selected recipe title, minutes, and titles to avoid repeating. Recipe images are not used for recipe generation.
- Storage and receipt scan inputs include the image you choose or capture, locale/language, MIME type, and a random install-level AI client ID. Gemini returns likely food/drink item names, categories, confidence, and either a printed-date result where detected or an AI-estimated number of days until expiry.
- AI estimates can be wrong. Receipt scans are especially likely to estimate expiry from the item type because receipts usually show purchase dates, not expiry dates. You should review and correct all scanned names, categories, and dates before saving or relying on them.
- AI outputs and local recipe caches may be stored locally on your device. If your list uses iCloud, saved items may then sync through your personal iCloud account like other list data.
- Firebase Cloud Functions and Cloud Firestore may process or store AI-related operational data such as the random install-level AI client ID, subscription entitlement status, product IDs, transaction identifiers used to verify access, token/quota counters, timestamps, locale/language, error details, and limited request/response logs. Logs may include generated AI text or recognized item names for debugging and reliability. We do not intentionally log or store uploaded scan photos beyond transient service processing.
- Google Gemini availability can depend on Google’s servers, regional availability, rate limits, quotas, billing status, and model availability. BestBefore Plus gives access to the AI feature set, but it does not guarantee that Gemini or Apple Intelligence will always be available.
Subscriptions and In‑App Purchases (IAP)
BestBefore Plus is an auto-renewing subscription available in monthly and yearly options. It provides access to AI recipe generation, storage scans, and receipt scans, subject to fair-use limits, technical availability, and these terms. Purchases are processed by Apple (App Store). We do not collect or store your payment card details. We may store local entitlement flags on your device and server-side entitlement records in Firebase/Firestore to verify subscription access and apply AI quotas. Existing legacy recipe-unlock purchases, where present, may continue to provide recipe access but do not necessarily include storage or receipt scans. Refunds, cancellation, billing, renewal, and subscription management are handled by Apple.
Sharing with Third Parties
- We do not sell your inventory or shopping data. We transmit user content to our own Firebase/Google Cloud backend only when needed for requested cloud AI features, entitlement verification, quota enforcement, operational logging, or lawful/security purposes described in this Policy.
- Third parties we use:
- Advertising: Google AdMob/AdSense
- Analytics: Firebase Analytics (Google)
- AI processing, entitlement records, quotas, and operational logs: Firebase Cloud Functions, Cloud Firestore, Google Cloud, and Google Gemini
- Product data: Open Food Facts
- Cloud storage and sharing (optional): Apple iCloud
- On-device text recognition and on-device recipe generation where available: Apple Vision and Apple Foundation Models/Apple Intelligence
- App Store payments: Apple In-App Purchase / StoreKit
- We may disclose information if required by law, to protect rights, or to respond to lawful requests. Third‑party services process data under their terms and privacy policies.
Your Rights and Controls
Subject to applicable law, you may have rights to access, correct, delete, restrict, object to processing, or request portability of certain information. In practice:
- Manage or delete your lists and items directly in the app.
- Leave shared lists or stop sharing (owner) in the app.
- Use device settings to reset/limit ad identifiers or notification permissions.
- Adjust ad consent in Settings → Manage Privacy.
- Adjust Firebase Analytics consent in Settings → App analytics.
- You can contact us at bestbefore.app08@gmail.com to exercise rights or ask questions.
- You may also lodge a complaint with your local data protection authority. In Sweden: Integritetsskyddsmyndigheten (IMY).
Retention
- Your local data remains until you delete it or uninstall the app.
- Your iCloud data remains in your Apple account until you delete it or the owner deletes/stops sharing a list.
- Local recipe caches, entitlement flags, selected subscription product, points, levels, and impact totals remain until you delete/reset them where available, clear app data, or uninstall the app.
- Server-side subscription entitlement records, AI client IDs, token/quota counters, and operational logs are retained as needed to provide paid AI features, enforce fair-use limits, debug reliability issues, comply with legal obligations, and protect the Service.
- Firebase/Google Cloud, Gemini, analytics, and advertising partners retain data according to their policies and service terms.
International Transfers
Analytics, advertising, and other service providers may process data in countries other than yours. Where required, appropriate safeguards are used by those providers. See their privacy notices for details.
Profiling
If you consent to personalized ads, advertising partners may use profiling to tailor advertising. You can turn this off at any time in Settings → Manage Privacy or via platform controls.
Children’s Privacy
The Service is not directed to children under 13 (or the minimum age permitted by your jurisdiction). We do not knowingly solicit data from or market to children.
Security
We and our partners use commercially reasonable measures to protect information. No method of transmission or storage is completely secure.
Changes
We may update this Policy from time to time. Updates will be posted in‑app or on a designated page. Continued use of the Service after changes means you acknowledge the updated Policy.
Contact
bestbefore.app08@gmail.com
Third‑party references:
Terms and Conditions
Effective date: 2026-05-23
These Terms govern your use of the BestBefore app (“App”, “Service”) provided by Isak Axel Gustav Svahn (“we”, “us”, “our”). By using the App, you accept these Terms.
License
We grant you a limited, non‑exclusive, non‑transferable, revocable license to use the App on a device you own or control, for personal and non‑commercial use, subject to these Terms and applicable law.
Your Content; iCloud
- You own the content you create (e.g., item names, expiry dates, shopping list entries) and are responsible for its accuracy and legality.
- Optional iCloud syncing and sharing are provided by Apple’s iCloud service and governed by Apple’s terms and privacy policy. We do not access or control your iCloud content.
BestBefore Plus, Subscriptions, and Legacy Purchases
- BestBefore Plus is an auto-renewing subscription available in monthly and yearly options. It unlocks access to AI recipe generation, storage scans, and receipt scans while your subscription is active, subject to fair-use limits, provider availability, and these Terms.
- BestBefore Plus does not provide unlimited AI usage. We may apply monthly token, scan, request, or other usage limits that are intended to be high enough for normal personal use while preventing abuse, automation, accidental loops, and unlimited third-party API costs. Limits may change over time.
- Subscriptions are processed by Apple through the App Store and are governed by Apple’s terms, billing, cancellation, renewal, and refund rules. You can manage or cancel subscriptions through your Apple account settings. We do not collect your payment card details.
- We may store purchase and entitlement metadata locally and in Firebase/Firestore, including product ID, transaction identifiers, environment, expiry time, and verification timestamps, to enable restores, server-side access checks, and AI quota enforcement.
- If you previously bought a legacy one-time recipe unlock, we may continue honoring that purchase for recipe access. Legacy recipe unlocks do not necessarily include BestBefore Plus features such as storage scans or receipt scans unless we explicitly provide that access.
Permissions and Device Requirements
- Certain features (e.g., barcode scanning, expiry-date scanning, storage scans, and receipt scans) require device permissions such as camera access or photo selection. Granting these permissions is optional, but related features may not function without them. You can change permissions in your device settings at any time.
- Notifications may depend on device settings and platform behavior and may be delayed or not delivered. If you participate in a shared iCloud list, shared‑list activity notifications may be sent to participants when changes occur.
- Depending on iOS behavior and your settings, shared‑list activity alerts may be delivered even when the app is not open (including if it was force‑quit).
- On-device recipe generation depends on Apple Intelligence/Foundation Models availability on a supported Apple device. Cloud recipe generation, storage scans, and receipt scans require network access and depend on Firebase, Google Cloud, Google Gemini, App Check, your subscription entitlement, and our usage limits. Product lookup and comparison require network access to Open Food Facts and depend on Open Food Facts data availability.
Sharing and Roles
- Owner: creates a shared list, can invite/remove participants, can stop sharing or delete the shared list.
- Participants: may edit shared lists and can leave at any time.
- Read‑only roles are not supported.
- If the owner deletes a shared list (or leaves in a way that deletes it), the list and its items are removed for everyone. If a participant leaves, the list remains for others.
Acceptable Use
You agree not to:
- Use the Service unlawfully or in violation of any rights.
- Copy, modify, reverse engineer, decompile, or attempt to derive source code except as permitted by applicable law.
- Circumvent security, introduce malware, or disrupt the Service, including ad delivery.
- Upload or share content that is illegal, infringing, defamatory, or violates privacy or intellectual property rights.
- Sell, resell, or commercially exploit the Service without written permission.
AI Features & Disclaimers
Recipe suggestions, recipe details, storage scan results, receipt scan results, recognized dates, and estimated expiry dates are informational only. They may be generated on device using Apple Foundation Models/Apple Intelligence or through Google Gemini via Firebase Cloud Functions, depending on device support and feature path. Generated recipes may include ingredient amounts, portion counts, estimated calories, extra items needed, and preparation steps. Scan results may include item names, categories, confidence labels, printed-date reads, and AI-estimated expiry dates.
AI outputs may be inaccurate, incomplete, unsafe, duplicated, missing items, or unsuitable for your diet or use case. Estimated expiry dates, especially from storage and receipt scans, may be very wrong because the AI often infers storage life from the item type rather than reading a true expiry date. Receipt purchase dates must not be treated as expiry dates. You are responsible for reviewing and correcting all AI results before saving or relying on them, and for checking allergens, food safety, ingredient amounts, cooking temperatures, expiration status, labels, and suitability. AI outputs are not professional, nutrition, medical, environmental, or food-safety advice.
Product Data and Comparisons
Product lookup and shopping-list comparison features use Open Food Facts data such as Nutri-Score, Eco-Score, NOVA group, calories, nutrients, ingredients, categories, quantities, images, and carbon-footprint information where available. Open Food Facts data is third-party content and may be incomplete, outdated, unavailable, or incorrect. Product comparisons are informational only and are not nutritional, medical, environmental, or purchasing advice. You are responsible for checking labels, allergens, nutrition, and product suitability before buying or consuming products.
Health and Food Safety Disclaimer
The App is a personal aid and not a substitute for professional advice. You are responsible for verifying the safety and freshness of food items. Notifications may be delayed or not delivered depending on device settings and platform behavior.
Impact Estimates, Points, Levels, and Sharing
Money-saved and CO₂e-prevented values are rough estimates intended for motivation only. They are based on broad category assumptions, item information, locale/currency estimates, and Open Food Facts carbon-footprint data where available. They are not financial, accounting, scientific, environmental, or carbon-reporting measurements and should not be relied on for reimbursement, tax, business, climate reporting, or other formal purposes. Points and levels are app experience features and have no cash value. If you share a level-up card or other content, you are responsible for choosing recipients and for the information you share through third-party apps or services.
Third‑Party Services
The App displays advertising (Google AdMob/AdSense), may use Firebase Analytics if you consent, uses Firebase Cloud Functions/Cloud Firestore/Google Cloud and Google Gemini for cloud AI features and entitlement/quota checks, uses Open Food Facts for product data, may use Apple Vision and Apple Foundation Models/Apple Intelligence for on-device recognition and recipe generation, may use Apple iCloud for syncing and sharing, may use Apple for In-App Purchases and subscriptions, and may use the operating-system share sheet or third-party apps when you choose to share content. Your use of third‑party services is subject to their terms and privacy policies. We are not responsible for third‑party content or practices.
Modifications and Availability
We may modify, suspend, limit, or discontinue any part of the Service at any time without liability. Features may vary by device, OS version, region, subscription status, provider availability, server availability, App Store availability, and fair-use quota. AI features may be delayed, unavailable, rate-limited, or temporarily disabled if Apple, Google, Firebase, Gemini, Open Food Facts, App Store services, network access, billing, or our backend quotas are unavailable or constrained.
Termination
We may suspend or terminate your access if you violate these Terms or if required by law. You may stop using the App at any time; uninstalling removes local data.
Limitation of Liability
To the maximum extent allowed by applicable law, we are not liable for indirect, incidental, special, consequential, punitive, or exemplary damages, or any loss of data or profits, arising from or related to your use of the Service.
Indemnification
You agree to indemnify and hold us harmless from claims, liabilities, damages, and expenses arising from your misuse of the Service, your content, or your violation of these Terms or applicable law.
Intellectual Property
The App and all related content (excluding your content) are protected by intellectual property rights owned by us or our licensors. No rights are granted except as expressly provided.
Governing Law
These Terms are governed by the laws of Sweden, without regard to conflict‑of‑law principles. Where required by applicable consumer protection law, you retain any non‑waivable rights.
Severability; Entire Agreement
If any provision is found invalid or unenforceable, the remaining provisions remain in effect. These Terms constitute the entire agreement between you and us regarding the Service.
Changes to Terms
We may update these Terms from time to time. Changes take effect when posted in‑app or on a designated page. Continued use of the Service constitutes acceptance of the updated Terms.
Contact
Isak Axel Gustav Svahn
bestbefore.app08@gmail.com