Back to Home

Privacy Policy for QuantumShelf

Last Updated: September 29, 2026

This policy applies to QuantumShelf for Android and QuantumShelf for iPhone, iPad, Mac, and Apple Watch, and to this website. Where the apps differ, the difference is called out explicitly.

QuantumShelf is operated as a sole proprietorship based in Arizona, United States. Questions about this policy or about your data: feedback@zackhalsey.com.

The short version

1. Information we collect

Account information

When you create an account we collect your email address and display name. You can change your display name at any time in the app. If you sign in with Google or with Apple, we receive the account identifier and the email address that provider releases to us — if you use Apple's Hide My Email, we only ever see the relay address. We never receive or store your password for any provider; passwords for email accounts are handled by Firebase Authentication and are not visible to us.

Inventory and household data

Content you create in the app: items and their details (names, brands, quantities, prices, barcodes, notes, expiration dates, batch and lot numbers, serial and model numbers, warranty dates, custom fields), storage locations, categories, shopping lists, recipes and projects, check-out records, and the change history of all of it.

Household records: the household name, its members with their display names and roles, and invite codes and their expiration.

Every change is attributed to the user who made it, so household members can see who added, edited, or removed something.

Photos

The app uses your camera and photo library for barcode scanning, QR scanning, and AI analysis, and it can attach a photo to an item.

Photos attached to items are stored on your device only. They are not uploaded to our cloud storage and are not synced to other household members. Photos you submit for an AI scan are transmitted for that analysis (see section 4) and are not retained by us afterward.

Purchase status

If you subscribe, your store — Google Play on Android, Apple's App Store on Apple platforms — tells the app which plan is active. We never receive your payment card, billing address, or any financial account information. Those are handled entirely by the store.

When you use an AI feature, the app also sends our server proof of your subscription so the server can confirm your plan: on Apple platforms, the subscription record Apple signed for your purchase; on Android, the purchase token Google Play issued, which our server checks with Google Play. These identify the product and its status, not your payment method.

To make sure a subscription only counts for the account that bought it, purchases made in the app carry an identifier derived from your QuantumShelf account (a one-way hash, not your account ID itself). For older Apple purchases without it, our server records which account first used the subscription. These records are used only to apply your plan and cannot be read by the app or by other users.

If you own a household and have a paid plan, the plan level (Free, Pro, or Family) is also saved on the household record so the household's item and location limits apply to every member.

Diagnostics and usage data

Both apps use Google Analytics for Firebase and Firebase Crashlytics. These collect:

This is used to find bugs and understand which features get used. It is not used for advertising, is not sold, and is not linked to your inventory contents.

Advertising ID — Android only. The Android app's analytics include Google's advertising ID, which Firebase uses to count and de-duplicate app usage. It is not used to show or personalize ads (the app has none, and ad personalization is turned off) and is never combined with other companies' data for advertising. You can reset or delete it in Android Settings → Privacy → Ads. The Apple app collects no advertising identifier (IDFA) and no identifier for vendor (IDFV).

AI usage counts

The app counts how many AI actions (scans and Plan with AI requests) you have used in the current week to enforce the free plan's weekly allowance. The count is kept by our server in a record tied to your account (aiUsage), so the allowance is the same on every device and survives reinstalling the app. The app can read it but not change it.

Reminders

If you turn on reminders, the app schedules expiration, low-stock, and project due-date notifications locally on your device from the inventory already stored there. No push token is created and nothing is sent to a server to deliver them. You can turn each type off in Settings, or revoke notification permission in your device settings.

Website

This website uses no analytics, advertising, or tracking cookies. Pages load fonts from Google Fonts, which receives your IP address as part of serving them. If you send a message through the support or data-removal form, we receive what you type (including your email address) through our form provider, Web3Forms, and use it only to reply to your request. The invite page reads the invite code from the link in your browser; the code is not sent to us.

2. Information we do NOT collect

We do not sell your personal information, and we do not share it for cross-context behavioral advertising.

3. Where your data is stored

On your device. Your full inventory is held in a local database — Room on Android, SwiftData on Apple platforms. The app is fully functional with no network connection: you can add, edit, search, scan barcodes, read NFC tags, and generate reports offline.

In the cloud, when you are signed in. Your inventory, household, and history are synced to Google Cloud Firestore, scoped to your household, so your data survives a lost or replaced device and, on the Family plan, so household members see each other's changes. Cloud sync is included on every plan, including the free plan.

You can use the app without signing in and without cloud sync. You can also export your data and keep your own copies.

Firebase servers are operated by Google and may be located in the United States or other countries where Google operates data centers.

4. AI features and what is sent to Google

The AI features — package scanning, receipt scanning, recipe scanning, shopping-list recognition, category suggestions, photo count (counting the items on a shelf or countertop), and Plan with AI — are powered by Google Gemini.

How the request travels. Both apps send AI requests to a QuantumShelf server function hosted on Google Cloud Functions for Firebase. That function checks your sign-in token and your plan, forwards the request to Gemini, returns the answer, and adds one to your weekly count. It does not store the images, text, or answers. Error logs are kept by Google Cloud's standard logging and don't include your images.

What is sent for a scan. The image you captured is transmitted for analysis and the extracted text comes back to the app. For recipe-from-URL, the Android app fetches the page you pasted and sends its text; the Apple app sends the link itself. Only the content of that specific scan is sent. Your inventory, your account details, and your other photos are not (photo count, below, is the one scan that also sends part of your inventory).

What is sent for photo count. Photo count adds or removes many items at once from photos of a shelf or countertop, so each count sends the photos you took or picked (up to six) plus a list of your items so the AI can match what it sees: each item's name, brand, storage location, and quantity (up to 600 items, alphabetically). It does not send prices, barcodes, notes, serial numbers, purchase or warranty details, custom fields, other photos, or anything about other household members. Nothing in your inventory changes until you review the results and confirm them.

What is sent for Plan with AI. Plan with AI builds projects from what you have and answers questions about your inventory ("where are my AA batteries?", "what display cables do I have?"), so every request sends the text you typed plus your inventory: each item's name, package size, quantity, category, storage location, brand, manufacturer, model number, color, material, and the first 120 characters of its description and notes. Those details let the AI recognise what an item is when you search, and anything you've written in those fields is sent with it. The whole inventory is sent when it fits in one request (about 300,000 characters, enough for nearly every household); for larger inventories, the items that match your request are sent first and the rest are left out.

Plan with AI does not send prices, photos, barcodes, serial numbers, purchase or warranty details, custom fields, or anything about other household members. The answer comes back to your device; suggested projects are saved only if you choose to create them.

Some parts of the app also read text without any network connection: barcode recognition and printed-text recognition run on your device (ML Kit on Android, the Vision framework on Apple platforms). Those images never leave the device.

Google's handling of data sent to the Gemini API is governed by Google's own terms and privacy policy: https://ai.google.dev/gemini-api/terms and https://policies.google.com/privacy

5. Barcode and product lookups

When you scan a barcode, the app may send the barcode number only to public product databases to look up the product:

No account information, device identifier, or other inventory data is sent with these lookups.

6. Optional Dropbox backup

If you choose to connect Dropbox, the app backs your inventory up to your own Dropbox account using Dropbox's official OAuth authorization. We never see your Dropbox credentials and have no access to your Dropbox account or its contents. You can disconnect at any time from the app, and revoke the app's access from your Dropbox account settings.

Data in your Dropbox is governed by Dropbox's privacy policy: https://www.dropbox.com/privacy

7. Third-party services

ServicePurposePlatformsTheir policy
Firebase Authentication (Google)Accounts and sign-inBothhttps://firebase.google.com/support/privacy
Cloud Firestore (Google)Cloud sync and household sharingBothhttps://firebase.google.com/support/privacy
Cloud Functions for Firebase (Google)Our AI server: checks sign-in and plan, forwards to GeminiBothhttps://firebase.google.com/support/privacy
Google GeminiAI image and text analysisBothhttps://ai.google.dev/gemini-api/terms
Google Analytics for FirebaseAnonymous usage statisticsBothhttps://firebase.google.com/support/privacy
Firebase CrashlyticsCrash and error diagnosticsBothhttps://firebase.google.com/support/privacy
Google Sign-InOptional sign-in methodBothhttps://policies.google.com/privacy
Sign in with AppleOptional sign-in methodBothhttps://www.apple.com/legal/privacy
Google Play BillingSubscription purchases and verificationAndroid onlyhttps://policies.google.com/privacy
Apple StoreKitSubscription purchases and verificationApple onlyhttps://www.apple.com/legal/privacy
Open Food FactsBarcode product lookupBothhttps://world.openfoodfacts.org/privacy
UPC DatabaseBarcode product lookupApple onlyhttps://upcdatabase.org
DropboxOptional backup to your own accountBoth, optionalhttps://www.dropbox.com/privacy
Google FontsWebsite fontsWebsitehttps://policies.google.com/privacy
Web3FormsWebsite support and data-removal formsWebsitehttps://web3forms.com

Each service handles data under its own privacy policy.

8. How your information is shared

With your household. On the Family plan this is the point of the app. Everyone in your household can see the household's inventory, members' display names, and who created or changed each item. Members with the Viewer role can see everything but change nothing. If you do not want to share something, do not add it to a shared household.

Through invite links you share. An invite link or code contains only the invite code. Anyone who has it can use it to join your household until it expires or is used, so share it only with people you want in your household.

With the service providers listed above, only as needed to make the corresponding feature work.

For legal reasons, if we are required by law to disclose information, or need to do so to protect our rights or someone's safety.

We do not sell your personal information to anyone, for any purpose.

9. Your rights and choices

Regardless of where you live, you can:

If you are in the European Economic Area or the United Kingdom, you additionally have the right to access, correct, restrict, or object to processing of your personal data, to data portability, and to lodge a complaint with your supervisory authority. Our legal bases for processing are performance of a contract (providing the app you asked for), legitimate interests (keeping the app working and fixing crashes), and consent where you have given it.

If you are a California resident, you have the rights to know, delete, correct, and to opt out of sale or sharing of personal information. We do not sell or share personal information, so there is nothing to opt out of. We will not discriminate against you for exercising any of these rights.

To make any request, email feedback@zackhalsey.com. We will respond within the time your local law requires, and within 30 days in any case. We may need to confirm the email address on your account before acting on a request.

10. Data retention

Your cloud data is retained while your account is active. When you delete your account, its data is removed from our Firebase project. Household data that other members still rely on — items they can also see — remains with the household; your account and your personal record are removed.

Local data stays on your device until you delete it in the app or uninstall the app. Backups you have made to Dropbox or exported to a file remain under your control and are not deleted by us; delete those yourself.

Crash and analytics data is retained by Google under Firebase's retention settings. Messages sent through the website forms are kept only as long as needed to handle your request.

11. Security

No system is perfectly secure. Please use a device lock screen and a unique password for your account.

12. Children's privacy

QuantumShelf is not directed to children under 13, and we do not knowingly collect personal information from anyone under 13. If you believe a child under 13 has given us personal information, email feedback@zackhalsey.com and we will delete it.

13. Changes to this policy

We may update this policy. When we do, we will change the "Last Updated" date above and, for material changes, notify you in the app. Continued use after a change means you accept the updated policy.

14. Contact

Email: feedback@zackhalsey.com · Support: support@zackhalsey.com · Website: https://quantumshelf.zackhalsey.com