MISEO. Get the app Soon

Privacy.

Last updated: 20 October 2026

Who we are

Miseo is made by Quan Dinh, Treuenbrietzener Straße 1, 13439 Berlin, Germany. Contact: quan.dnl.dev@icloud.com. The rules for using Miseo are in the terms of use.

What Miseo does on your device

Importing a recipe from a link, a photo, pasted text, or by hand happens on your phone. The recipes and lists you make are stored on your phone. The shelf words are part of the app. None of it leaves your device unless you use one of the features below.

Every time the app opens

Two small things happen for everyone, whether or not you use any feature below. The app asks Google Firebase Remote Config (Google Ireland Limited) which features and which plan are on right now; the request carries a random installation ID and the app version, not your account, your recipes or your lists. And if the app crashed last time, it sends a crash report through Firebase Crashlytics: where in the code it failed, the app version, your phone model and system version, and the same kind of random ID. A crash report never includes your recipes, your lists or your location. Google keeps crash reports for 90 days.

Nearby shops

When you look for shops, Miseo asks for your location. On an iPhone it sends a search for nearby shops to Apple Maps. On Android it sends your location, rounded to about 100 metres, to Miseo's own function in Google Cloud in the EU (europe-west1), which asks Geoapify's EU service for grocery shops within 5 km and sends the list back; the function stores neither your position nor what you searched for. Geoapify gets only that rounded point from Miseo's function, never your IP address or anything else that identifies you. So that one phone cannot use up the shop search for everyone, the function counts each day's searches by a scrambled (hashed) form of your IP address, for two days; your IP address itself is not stored. On both, your phone also asks OpenStreetMap's Overpass service (overpass-api.de, run by FOSSGIS e.V. in Germany) what kind of shop each nearby shop is, sending your position rounded to about 1 km; like any website, it sees your IP address. Miseo does not store your location. You can decline the permission.

Sharing a list

Sharing a list needs an account. What you share is stored in our Firestore database, run by Google Firebase (Google Ireland Limited) in the EU multi-region eur3, so the people you share it with can see it. That is the list's name and its items, with their amounts, notes and ticks, and every recipe on it in full: its title, ingredients, cooking steps, servings, the link it came from and a small copy of its photo. The members of a list also see the name you choose, who added what and the day each person joined. When you tick something off, they see that you got it and when; if you check in at a shop on the map, or have "Share what you found" on while you shop, they also see the name of that shop. Your name is not a public profile, and nobody can search for you: the only way into a list is an invite link you send. Signing in uses Sign in with Apple or Sign in with Google, handled by Firebase Authentication, which Google runs in the United States; that transfer is covered by the EU–US Data Privacy Framework and Google's Standard Contractual Clauses. We store the account identifier and the email the provider gives us, to tell your data from other people's, and a notification token for each of your phones, so we can tell you when someone joins your list. Nothing else you make is stored there. Miseo's server functions run in the EU (europe-west1).

Sharing one recipe as a link stores a copy of that recipe in the same place. Anyone with the link can open it in Miseo, and it is deleted after 72 hours.

Cloud lookups

A few things are more than your phone can do alone: looking up a dish Miseo does not know, naming a dish from a photo, reading a recipe off a photo, reading a recipe off a page that carries no recipe data, reading a recipe from an Instagram or TikTok post, making sense of messy pasted text, re-reading ingredient lines Miseo could not parse, and splitting a long instruction into steps.

Miseo asks you once before any of these sends anything, and you can change your mind in Settings. What you agree to send (the text, the photo, the post's video or the dish name) goes from your phone to Google through Firebase AI Logic, which runs Google's Gemini model on it in the EU and sends back what it read. The one exception is looking a dish up on the web: that uses Google Search, which runs worldwide. Google does not use what you send to train its models, and keeps limited logs only to prevent abuse. Miseo runs no server of its own in that path and keeps no copy, Google is not given your name, your email or your account, and nothing beyond the one thing you are asking about is sent: not your shopping list, not your location. Cloud lookups are free up to ten a month on each phone. Before each free lookup, the phone asks Miseo's server in the EU (europe-west1) whether one is left, and the server keeps that month's count, with Google in the EU (Firestore), filed under a one-way scrambled form of an identifier the phone holds for Miseo. Beside the count it keeps a random code for each of your last ten lookups, so that a retry is not counted twice and a lookup that failed before reaching the model can be given back; the code says nothing about what you looked up. It never stores the identifier itself or your account, and the count is used for nothing else. If the server cannot be reached, the phone allows three lookups a month on its own.

Instagram and TikTok posts

When you share an Instagram or TikTok post with Miseo, your phone opens the post's public page once, without logging in, the way a browser would; Instagram or TikTok sees your IP address as it does for any visit. Miseo reads the caption. If the caption has no recipe, it can send the post's video to Google as a cloud lookup (above), and deletes the video from your phone as soon as the answer is back; with TikTok, or when the video cannot be read, it looks the dish up on the web instead. The video is never played, kept or offered for download. The recipe you save keeps the creator's name and the link to the post, on your phone.

If you made a post and do not want Miseo to read it, or you want to report a problem with how it was read, write to quan.dnl.dev@icloud.com. We answer within a few days, and can turn off reading Instagram posts for everyone without an app update.

Share what you found

Settings has a switch, off by default, for telling other shoppers where you found an ingredient. Turned on, when you mark an ingredient as found or not found at a shop, on a trip or from a receipt, Miseo sends which ingredient, the shop's map identifier (Apple Maps' place ID on an iPhone, the OpenStreetMap ID on Android) but not its name or position, whether it was there, and the day. A shop you add yourself is the exception: Miseo sends the name you give it and where you stand, rounded to about 10 metres, so other people can find it. Miseo uses your account identifier while it receives the report, to keep each person's reports to a daily limit, to weigh how often their reports agree with other people's, and to count how many people confirm a shop someone added. The report itself is stored without it, under a code that changes every day; the key that ties that code to you is deleted the night after, once that day's reports are counted (our database's backups keep it for up to 7 more days). A report about a shop someone added is the exception: until that shop is confirmed by enough people, or dropped, it stays tied to the people who confirmed it. Kept with your account identifier: your daily count and the shops someone added that you reported at that day, for two days; your agreement score, for six months after your last report; and, for a shop someone added that you confirmed or reported gone, the fact that you did, for three months after you last reported there. Your name and email are never part of it, and neither is where you are, except for a shop you add: its name and position stay while people keep confirming it, and in the public counts once enough of them have. Reports from everyone are combined into a public count of which shops carry which ingredients, which names nobody. Turning the switch off stops it and drops anything not yet sent.

Course and cuisine labels

Miseo works out the course and cuisine of the recipes you save in the background, so it can group them for you. It doesn't ask each time. It sends only the recipe's title and its ingredient names (no amounts or steps) to whichever model is doing the reading. Today that is your iPhone's own model, so nothing leaves your phone; if that ever changes, it changes together with the cloud lookups above and this page says so first.

Feedback

When you send feedback from Settings in the app or from usemiseo.com/feedback, we store your message, the email address if you give one (only so we can reply), whether it came from iPhone, Android or the website, the app version and your language. Feedback from Settings and the website is sent without your account. A report made with Report… in a shared list is sent from your signed-in account and stored with your account identifier, that list's identifier and, if you choose someone, that person's account identifier and name. To stop one sender flooding the form, we count how many messages came from you today: by your account identifier if you are signed in, otherwise by a scrambled (hashed) form of your IP address. Your IP address itself is not stored. Once a day an automatic check deletes messages that look like spam, such as links, advertising words or the same text sent again, and keeps a record of what it deleted. Everything is stored in our Firestore database in the EU (eur3) and handled by Miseo's server functions in the EU (europe-west1).

Reports about content

If you report content under the terms of use, we use your name, your email address and your report to decide on it and to tell you what we decided. If content you shared is reported, we use the report and your account to decide, and we write to you with what we did and why. A report sent by email is kept for three years after it is handled, as proof of handling; one sent through the feedback form is kept as feedback is (above).

Miseo survey

The app may ask, once, five short questions about how you cook and what a paid version should include and cost; the same questions are always in Settings. If you answer, we store your answers (how often you cook, where your recipes come from, how you would feel without Miseo, what a paid version must include, the most you would pay, and an optional note), whether it came from iPhone or Android, the app version and your language. The answers are not stored with your account identifier or anything else that identifies you. To allow one answer a day per person, we count answers by your account identifier if you are signed in, otherwise by a scrambled (hashed) form of your IP address, for two days. Answers are kept for one year, in our Firestore database in the EU (eur3), handled by Miseo's server functions in the EU (europe-west1).

Ingredient suggestions

When Miseo doesn't know an ingredient, you can suggest it to us from the ingredient's page. We store the name you send, an optional note, the country your shops are in, whether it came from iPhone or Android, the app version and your language. It is not stored with your account identifier or anything else that identifies you. To stop one sender flooding us, we count suggestions by your account identifier if you are signed in, otherwise by a scrambled (hashed) form of your IP address, for two days. Suggestions are kept for one year, in our Firestore database in the EU (eur3), handled by Miseo's server functions in the EU (europe-west1), and we use them only to add ingredients to Miseo.

Usage data (off unless you turn it on)

Settings has a switch, off by default, for sharing anonymous usage. Turned on, Miseo sends Google Firebase Analytics (Google Ireland Limited) the names of the things you do, such as imported a recipe, built a list or finished cooking. When you build a list from recipes, it sends how many recipes you picked, but not which ones. It also sends the name of an ingredient Miseo did not recognise, so we can add it. And when you report an ingredient as wrong, it sends that ingredient, what you said was wrong, the shelf word you saw and your shop's language; if sharing is off, Miseo asks before sending the report. Firebase records more of its own alongside them: that the app was opened, the app version, your phone model, and roughly where you are, worked out from your internet connection. All of it is tied to a random ID that is not your account. It never includes your recipes, your shopping lists or your GPS location. Turning the switch off stops it at once. If you said yes before ingredient names were part of this, they are not sent until you turn the switch on again.

Updates to the shelf words

When the app starts, it checks usemiseo.com for a newer version of its ingredient and shop data and downloads it if there is one. The request is an ordinary page load. It carries your IP address like any other, which Firebase Hosting keeps for 30 days as described below. Nothing about you or your recipes is sent.

Subscription

Miseo sells nothing today, and the app does not contact a payment service. If a subscription is offered later, this page says so first: payment would be handled by the App Store or Google Play, and whether it is active would be tracked for us by RevenueCat (RevenueCat, Inc., USA), given the store's purchase record and an anonymous identifier, not your name or your email.

What we do not do

No advertising, no tracking across apps or sites, no sale of data. This website sets no cookies and loads nothing from third parties: fonts and images are served from usemiseo.com. Hosting logs (IP address, time, requested page) are kept by Firebase Hosting for 30 days for security.

Why we are allowed to

The GDPR asks for a legal reason behind each use of your data (Art. 6). Ours are:

You do not have to give us anything to use Miseo. Without an account you cannot share a list; without cloud lookups the app reads what it can on the phone; and the rest is optional.

How long it is kept

Who receives it

We do not sell or rent your data. It is handled for us, under data processing terms, by Google (Firebase and Google Cloud, through Google Ireland Limited). Geoapify (KEPTAGO LTD, Cyprus), which finds shops on Android, receives a position rounded to about 100 metres from Miseo's function and nothing that identifies you. Apple handles Sign in with Apple and the Apple Maps search on its own terms, and FOSSGIS e.V. runs the public Overpass service on its own terms. Where data leaves the EU (Firebase Authentication in the United States, and a web lookup through Google Search), the transfer is covered by the EU–US Data Privacy Framework and Standard Contractual Clauses. No decision about you is made automatically.

Your rights

Under the GDPR you can ask for a copy of your data, have it corrected or deleted, restrict how it is used, object to its use, and have it handed to you in a portable format. Deleting your account in Settings removes your cloud data; Delete your account says what goes, what stays, and how to ask without the app. For anything else, write to quan.dnl.dev@icloud.com. You can also complain to the Berlin data protection authority (Berliner Beauftragte für Datenschutz und Informationsfreiheit).