app-policies

Privacy Policy — FarmaStock

Last updated: September 30, 2026

Overview

FarmaStock (“the App”) is developed by Simone Ruggiero and is available for iOS and Android. This Privacy Policy explains how your information is handled when you use the App. The website farmastock.app has its own privacy policy: farmastock.app/privacy-policy.

Data Collection

FarmaStock does not require a user account and does not collect your personal data. Your scanned products, inventory, quantities and expiry dates are stored locally on your device (SwiftData on iOS, SQLite on Android).

The only information that leaves your device is the barcodes you look up and anonymous usage metrics, both described under “Product Lookup Service” and “Anonymous Usage Metrics” below.

iCloud Sync (iOS)

If you enable iCloud sync in Settings, the App synchronises your inventory through your own private iCloud database (CloudKit) so it is available on your other Apple devices. The sync happens between your device and your iCloud account: we have no access to that data and cannot read it. If sync is off, or no iCloud account is configured, everything stays on the device. The Android version has no cloud sync.

Camera Usage

The App uses your device’s camera exclusively to:

Both run entirely on the device — Apple’s Vision framework on iOS, Google ML Kit’s on-device text recognition on Android. Camera frames are never recorded, stored or transmitted.

Third-Party Services

Product Lookup Service

When you scan a barcode (or search by product name) that is not in the local database, the App sends only the barcode number or search term to our lookup service (hosted on Supabase) to retrieve product information (name, brand, category). To identify the product, our service may in turn query third-party sources: UPCitemdb, Open Food Facts, and an AI web-search assistant (Anthropic). Your IP address is used for rate-limiting and is never stored in clear text — only a salted hash of it is kept. No personal, account, or health data is transmitted.

Anonymous Usage Metrics

To know how many people actually use the App and which lookups fail, our backend (Supabase) records:

These records contain no name, email, account, or inventory data, are never sold or shared, and are not used for advertising or profiling. Uninstalling the App resets the installation identifier.

RevenueCat

Used to manage premium subscriptions. RevenueCat may collect:

No personal information (name, email, health data) is shared with RevenueCat. For more details, see the RevenueCat Privacy Policy. If you installed the App after tapping an Apple Ads advertisement, the App also passes RevenueCat the attribution token provided by Apple’s AdServices framework: it only tells us which ad campaign led to the install, contains no personal data and does not require tracking permission.

In-App Purchases

Subscriptions are processed by Apple StoreKit (iOS) or Google Play Billing (Android). All payment data is handled directly by Apple or Google and is governed by their respective privacy policies.

If you request a refund for an in-app purchase on the Apple App Store, Apple may ask us — via RevenueCat — to share data about your use of the App related to that purchase (“consumption data”) to help Apple decide on the refund, in line with Apple’s guidelines. This data is used only to process the refund request.

Notifications

The App may send local notifications to remind you of upcoming product expiry dates. These notifications are generated entirely on-device and are not sent through any external server.

Exports

Inventory exports (for example the PDF report) are generated on your device. They are shared only with the app or recipient you choose through the system share sheet, and are never sent to us.

Data Sharing

We do not share, sell, or transfer any personal or health-related user data to third parties. The only data transmitted externally is:

Children’s Privacy

The App does not knowingly collect data from children under 13.

Changes

We may update this Privacy Policy from time to time. Changes will be reflected in the “Last updated” date above.

Contact

Simone Ruggiero Email: simone.ruggiero97@gmail.com