Privacy Policy

Last updated: 2026-10-30

This policy explains what Hello Pantry does with data: the Telegram bot (@hello_pantry_bot), its Mini App, the web app and the Android app.

The short version: there is no password. In Telegram, Telegram already knows who you are; the web app and the Android app sign you in with a code or a link sent to you, or with Google. What you write down is stored on one server so that it can be shown back to you, and it is used for nothing else. The one exception is what you choose to give the shared catalog: the facts of a packaged product, shown to whoever scans the same code, and, only if you tick it, a new product you send on to Open Food Facts or a correction to a product it already knows. There is no analytics, no advertising, no profiling and no third party with a copy of anything else, in the bot, the Mini App and the web app, except an AI assistant that you yourself connect: what it reads goes to the company that runs it. The one exception is the Google Play build of the Android app, which sends crash reports and usage statistics to Google, but only if you say yes.

Who is responsible

Gabriele Proietti Mattia (https://gpm.name), reachable at apps@gpm.name, is the data controller. The server is in Germany.

What is stored

Everything below is stored because the bot cannot do its job without it, and nothing is stored that it can do its job without.

What is never stored

Open Food Facts

When you scan or type a barcode, the number may be looked up on Open Food Facts, a free, open database of food products. If it does not have the code, the lookup is passed on to its sister projects, which hold what is not food: Open Products Facts (detergents and household goods), Open Beauty Facts (toiletries and cosmetics) and Open Pet Food Facts (pet food). They use the same open licence (ODbL). Looking a code up sends only the barcode: nothing that says who you are, which home it is for, or what else is in it. What comes back (name, brand, size, picture) is shown to you to confirm. Open Food Facts handles that request under its own privacy policy, not this one.

Searching by name. When you type a name to add a product, the bot and the apps look only in their own data, and nothing is sent out. The words you typed are sent to Open Food Facts only if you tap “Cerca su Open Food Facts”, and then only those words: nothing that says who you are. The results of that search are kept for 7 days so the same search is not sent twice; what is kept is the results, not who searched. Codes that a shop prints itself, such as the labels of the fruit, deli and cheese counters, mean something different in every shop, so they are never sent to Open Food Facts: the bot asks you for the name instead.

The shared catalog

When you add a product whose barcode Open Food Facts does not know, what you wrote about it — name, brand, size, category and, if you add one, a photo of the package — goes into Hello Pantry’s own catalog, so that the next person who scans that code finds it filled in. It is shared unless you say not to: before saving, the bot says so and offers “Do not share”, and the Mini App and the web app have a switch. Only products with a barcode are shared, and never the codes a shop prints itself.

What other people see is the product: never who added it, which home it is in, or anything else in that home. Which account added an entry is kept so that whoever added it can correct it and abuse can be stopped; only the administrators see it. A package photo is shown to other people once an automatic check has passed it: an image classifier that runs on the same server looks for nudity and sexual content, and the photo is not sent anywhere for it. A photo the check holds back is shown only after an administrator has approved it. Anybody can report an entry, and an entry reported by three people is hidden until an administrator looks at it. Nothing in the catalog is sent to Open Food Facts unless you ask for it, as described next.

Pictures. A picture is kept on the same server as the rest. It is made smaller, and everything else in the file is removed, the place it was taken included. A picture of a product without a barcode, and every photo in a wardrobe, is seen only by the members of that home or wardrobe, through links that stop working after a day. A photo of clothes can show the person wearing them: it stays inside the wardrobe, is never shared with the catalog or anybody else, and goes when the piece, the wardrobe or your data is deleted.

Sending a new product to Open Food Facts

When you add a product that Open Food Facts did not know and that goes into the shared catalog, the bot and the apps also ask whether to send it to the Open Food Facts databases, and what it is: food or drink, toiletries and cosmetics, pet food, or household and other. It goes to the project for that type: Open Food Facts, Open Beauty Facts, Open Pet Food Facts or Open Products Facts. It is off unless you tick it, it is asked every time, and it is not offered for anything that does not go into the catalog. If you do not tick it, nothing is sent.

If you tick it:

Correcting a product on Open Food Facts

When you add or open a product whose barcode Open Food Facts already knows, and your version of its name, brand, size or picture is better than theirs, the Mini App and the Android app offer to send the correction to Open Food Facts too. Nothing goes unless you choose it: the details that differ are listed, and you tick the ones to send. They start ticked, except the photo, which only you can tick.

Email, licences and reports: apps-management

An email address is optional. The bot works, and Pro can be bought, without one.

If you choose to link one (you confirm it with a code sent to it), it is used with apps-management, the service that handles licences and feedback for the apps in this family. It is used for three things only: your licence, so that Pro can follow you to a new Telegram account (it is valid for one Telegram account at a time); the replies to the reports you send; and the votes you cast on the features still to be built. apps-management knows people only by a verified email and does not receive your Telegram id.

Two other things are recorded there whether or not you link an email:

Telegram’s part

You are talking to this bot through Telegram, and Telegram carries what you send. What Telegram does with that is covered by Telegram’s own privacy policy, not by this one.

Two consequences worth stating plainly:

Shared homes

In a shared home the other members see its contents, your Telegram name, and who added or used up each thing. They are also sent a notification when you do, unless they have muted it. Only an owner can invite or remove people. Leaving a home, or being removed, ends your access to it.

AI assistants (MCP)

You can connect Hello Pantry to an AI assistant that supports connectors (MCP), such as Claude, by Anthropic, or ChatGPT, by OpenAI, or any other client that speaks the protocol. Nothing happens unless you add Hello Pantry in that assistant yourself and press Allow on Hello Pantry’s own page in the web app, signed in to your account. That page shows the app’s name and the address it returns to, warns you when the app is not one we recognise, lists the homes it will reach with your role in each, and says what it can never do. Anyone can connect; the assistant can use a home’s contents only while that home has Pro.

What it can do. From then on, when you ask it to, the assistant acts with your role in each of your homes. It can read the homes, their places, products, expiry dates, shopping lists, statistics and members (their name and Telegram username, nothing more). With the role of editor or owner it can add, move, change and use up or throw away packages, change the shopping list and the places; as an owner it can also change the home’s settings, and invite people, change their role or remove them. Every change is made as you: the other members of a shared home see it, and are notified, as your change. A viewer can only read. It can never delete, create or restore a home, transfer ownership, answer an invitation, change your notification settings other than your own expiry alerts, see anyone’s contact details, change the shared catalog, send anything to Open Food Facts, touch Pro or payments, export or delete your data or your account.

What goes where. What the assistant reads is sent to the company that runs it (for example Anthropic for Claude, OpenAI for ChatGPT) and is handled under that company’s own terms and privacy policy: it is a service you chose to connect, not one working for us, and Hello Pantry has no control over what it does with it. Look up a barcode or search by name through an assistant, and only the barcode or the words go to Open Food Facts, as described above. An assistant never sends a contribution or a correction to Open Food Facts or to the shared catalog.

What we keep. For each app: the name it gave itself, the addresses it returns to and, for an app that identifies itself by a document on its own website, the address of that document. For each connection: your account, which app, when it was approved and when it was last used. For the access keys: only a hash, never the key. Nothing else. We do not keep the content of what the assistant asks or is answered. Our server’s log records only that a request was made, from which account and connection, which tool, how long it took and whether it succeeded: no arguments and no results. We also count, per day, how many requests came from assistants and how many of them changed something, in total only; for each account we note just whether it used an assistant that day. The administrator sees how many apps are connected and, in a person’s details, which apps that person connected, when, and when each was last used.

For how long. An access key lasts 1 hour. A renewal key lasts 90 days from its last use, and is replaced each time it is used. However often it is renewed, a connection ends one year after you approved it, and the assistant has to be connected again. A pending request to connect lasts 30 minutes and its one-time code 2 minutes. Every hour the server deletes what has expired: requests and codes after a day, keys a month after they expired or were revoked, a revoked connection after a month, one not used for 120 days, and an app that never got a connection after a day.

Disconnecting. Settings → Connected apps, in the web app and the Mini App, lists every connection. Disconnect stops it at once: from the next request on, the assistant is refused. You can also remove the connector in the assistant. Deleting your account deletes every connection and its keys. Delete all data does not: it empties your homes, and a connected assistant stays connected, to an account with nothing in it, until you disconnect it.

A notice every time. Each time an app is connected you are told, on Telegram if you have it linked and by email if you have given one, with the app’s name and how to disconnect it, so that you hear of a connection you did not make.

The Mini App and the web app

The Mini App is a page served from https://hello-pantry-tg.gpm.name. It stores one thing in your browser: a note that you have seen the welcome screen. That note never leaves the device and is not readable by anyone else.

Inside Telegram, every request the Mini App makes carries the session Telegram signs for it, which is what proves the request is yours.

The web app at https://hello-pantry-app.gpm.name is the same page, opened in a browser, with a sign in of its own: a link sent to your email, Google, or the Telegram login button. It needs the same data, and keeps a session cookie in the browser so that you stay signed in until you sign out. Signing in with an email or with Google stores that address, or the Google account identifier, to recognise you the next time.

The page loads its fonts from Google Fonts, which means Google sees the request for those files. Nothing about you is sent with it beyond what any browser sends when it fetches a file.

The Android app

The Android app is another way into the same account and the same data as the bot: homes, places, products, the shopping list, the members of a shared home and the invitations, your notification settings and the statistics of a home. It talks to the same server, in Germany. You sign in with a 6-digit code sent to your email, with a code you get from the bot, or, in the Google Play build, with Google. What is stored about your home is what the sections above describe.

Scanning a barcode with the camera happens on your device: the Google Play build reads it with Google’s ML Kit library and the store-free build with ZXing, both working inside the app with nothing downloaded or sent. The camera images are looked at in memory and never stored or uploaded; only the digits of the code go to the server, to look the product up. The camera is asked for only when you open the scanner, read an expiry date or take a package photo, and typing works without it.

Reading an expiry date. In the Google Play build the app can read the expiry date printed on a package with the camera, when you choose to. The text is recognised on your phone by Google’s ML Kit, through Google Play services, which provides the recognition model and downloads it the first time if the phone does not have it yet. The camera images and the text read are looked at in memory and never stored or uploaded: only the date you confirm is saved, as the expiry of what you add. Like the other features of Google Play services, ML Kit may send Google technical information about the device and how the feature performs, never the images or the text. The store-free build has no date reading: you type the date or pick it from the calendar.

Photos of a package. The camera is also used, inside the app, when you choose to take a photo of a package; you can pick one from your gallery instead, through the system’s photo picker, and the app asks for no access to your photos. The photo is processed on your device before it is uploaded: it is made smaller and turned the right way up, and everything else in the file, location included, is removed. It is uploaded only when you attach it yourself, under the same rules as Pictures you choose to attach and the shared catalog.

Signing in with Google, and linking accounts. In the Google Play build you can sign in with Google, and in Settings you can link your Google account, your Telegram account and an email address to the account you already have. For Google, the app asks Google for a signed proof of who you are and sends it to the server, which checks it with Google and keeps Google’s account identifier (the “sub”) and the verified email address, to recognise you the next time, as the web app does, plus your name if Google creates the account. To link Telegram, the app opens the bot, the bot sends you a 6-digit code, and you type it back into the app; the server then ties your Telegram id to the same account. Linking an email works with a code sent to that address, as above. A build without Google Play services has no Google sign-in.

Pro on Google Play. In the Google Play build, Pro can be bought in the app as a Google Play subscription, monthly or yearly, with a free trial. Google takes the payment, as the processor of the purchase, under Google’s terms and privacy policy: card and billing details stay with Google and never reach Hello Pantry. Google gives the app a purchase token, and the app sends it to Hello Pantry’s server. The server stores the token and a hash of it, which account it belongs to, and whether Google reports a payment problem, and sends the token to apps-management, which checks with Google whether the subscription is active and until when. The state and the dates that come back are kept on your account. That is what makes Pro valid in the bot, the Mini App and the web app as well as in the app. Cancelling and refunds go through Google Play (see the terms); when Google reports the change, Pro follows it. The purchase record is removed when your account is deleted; deleting your data does not cancel a subscription, which you cancel in Google Play. A build without Google Play services does not sell Pro; it points to the bot.

Expiry alerts on your phone. The app can warn you about products close to their expiry date as Android notifications. They are computed on your phone, from the data the app already has from the server and keeps for working offline: nothing is sent to anyone for it, and there is no push service. Android asks your permission to show notifications, and you can switch them off in the app or in Android’s settings. Which channel you want, the phone or Telegram, is stored on your account, so that the bot does not send the same warning too.

Your data, from the app. The app can delete all your data (Settings → Delete all data), with the same effect as in the bot and as described under Retention, and the owner of a home can export its data as a file, which is saved where you choose on your phone.

The diagnostics question. After you first sign in to the Google Play build, the app asks about “diagnostics”, with two switches: crash reports and usage statistics. Both are shown switched on, and nothing is sent until you have answered. You can change the answer at any time in the app’s Settings.

What is never sent. What is in a home, product names, the shopping list, pictures, your email and your Telegram name are not part of either report.

Google’s part. Both services are Google’s. Google processes the data for Hello Pantry as a service provider (processor), and may process it outside the EU. See Google’s privacy policy and Firebase’s privacy information.

Changing your mind. Switch either one off in the app’s Settings and the app stops sending it. What was already sent is kept and deleted by Google according to its own retention periods, as described in Delete your account.

A build without Google Play services contains neither Crashlytics nor Analytics, and has no diagnostics question.

Retention

What you keep in your home is kept until you delete it.

Settings → Delete all data, inside the bot and in the Android app, deletes your homes, wardrobes, products, pieces and shopping lists, and the pictures attached to them, permanently and immediately. It is not a request that gets processed: the rows are gone when the confirmation comes back, and the picture files follow within a day. What you gave the shared catalog stays there, as facts about a packaged product, with nothing that links it to you any more; the reports you made are deleted. Anything not yet sent to Open Food Facts, new products and corrections alike, is cancelled, and the records of what was sent no longer name you; what was sent stays public there. Your profile and the conversation itself survive, so the bot still works afterwards; deleting those too is a request to the address above.

Connected AI assistants are kept as described under AI assistants (MCP): no more than a year from your approval. Disconnecting stops one at once and its record is deleted within about a month; deleting the account deletes them all.

Deleting a home or a wardrobe. An owner can delete a home or a wardrobe. It disappears for every member at once, and is kept for 30 days so that an owner can restore it. Until then it still holds its products, pictures and activity. After 30 days it is purged for good, together with its products, pictures and activity. If you do not want to wait, Delete all data removes yours immediately, as above.

Backups of the server exist for disaster recovery and are retained for a limited period. Data deleted from the live database is not restored from them.

What is deleted, what is kept and for how long, and how to ask for your profile to be deleted too, is set out on one page: Delete your account.

Your rights

You may ask for a copy of your data, its correction, or its deletion, and you may object to its processing. One of those needs nobody’s help: Settings → Delete all data is the deletion, and Delete your account explains the rest. For anything else, write to apps@gpm.name.

You also have the right to complain to a supervisory authority.

Children

Hello Pantry is not directed at children and asks for nothing that would identify one.

Changes

This page carries the date it was last substantively changed. A change that affects what is collected will be said in the changelog as well, rather than only here.