Privacy Policy

Dinner Decoder · effective 17 August 2026

Dinner Decoder helps you turn photos of a fridge or pantry into ingredient lists and recipe suggestions. This policy explains what we collect, why we use it, which providers process it, and the choices available to you.

Short version: we do not store your kitchen photos in our database. The backend removes photo metadata, downsizes the image, sends the processed image to Google Gemini for recognition, and keeps the returned ingredient data when you are signed in. We do not sell personal data or run advertising in the app.

Who operates Dinner Decoder

For purposes of this policy, Dinner Decoder is the controller for the application data described here. The developer or entity named in the app-store listing operates the service. For privacy questions, access requests, or deletion requests, contact anyawiesen@gmail.com. This is also the contact address for notices about this policy.

Information we collect

Account information
When you create an account, Supabase provides us with your email address, a Supabase user identifier, and account timestamps. Supabase handles your password; Dinner Decoder does not receive or store your password.
Kitchen photos and scan inputs
When you scan, the app uploads the selected image to our backend. Before sending it to the vision provider, the backend applies the photo's EXIF orientation, converts it to JPEG, downsizes it to a maximum long edge of 1,024 pixels, and removes EXIF metadata such as GPS coordinates. The original upload and the processed image are not written to our database or recipe-photo storage. The web server may temporarily buffer a large upload in local temporary storage while handling the request.
Recognition results
For signed-in users, we store the ingredient names and confidence levels returned from a scan, warnings about the scan, the scan time, and the number of images included. These results form scan history and help us maintain the standing kitchen.
Kitchen inventory
We store items you confirm or add, including an item name, optional quantity, location such as fridge or pantry, status, and any expiry date you enter. Dinner Decoder does not infer or guess expiry dates.
On-device preferences
Dietary filters, cooking-time preferences, household selection, and onboarding completion are stored locally on your device by the app. They are not currently sent to our backend. The app also stores the local Supabase session needed to keep you signed in.
Purchases and subscriptions
If you subscribe, Apple or Google processes the payment. The app uses RevenueCat to manage subscription state and passes it the app's account identifier after sign-in. RevenueCat may also create an anonymous purchaser identifier before sign-in and later associate it with the account. Our backend stores the resulting subscription tier so it can enforce the features attached to the entitlement. We do not receive your full payment-card number.
Support messages
If you email support, we receive the address and whatever you include in the message. Please do not send passwords, payment-card numbers, or kitchen photos unless we specifically request a safe diagnostic detail.
Technical and security information
Our backend uses a verified account identifier or, when no account is available, an IP address to apply abuse limits and the anonymous free scan quota. Our hosting, authentication, payment, and AI providers may also process IP addresses, timestamps, request or usage metadata, device or browser information, error details, and security logs as needed to operate, secure, and troubleshoot their services. We do not currently add a third-party analytics or advertising SDK to the mobile app.

During a closed test, if an access code is enabled for the web experience, the backend may set an HttpOnly, SameSite cookie so the browser does not ask for that code on every request. The cookie is not used by the mobile app and expires according to the configured access-control period.

How Google Gemini processes a scan

Dinner Decoder currently uses the Gemini API through a Google Cloud project with active billing. The processed kitchen image and a short recognition prompt are sent to Google to identify ingredients. We do not send the user's email address or Supabase account identifier in that vision request.

Google's current Gemini API terms state that, for Paid Services, Google does not use prompts, uploaded files such as images, or responses to improve its products. Google states that it may log prompts and responses for a limited period solely to detect and prevent policy violations, maintain service safety and security, and make required legal or regulatory disclosures. Google also states that this data may be stored transiently or cached in countries where Google or its agents operate. Those provider practices are governed by Google's terms and data-processing terms and may change; we will update this policy if the way we use Gemini changes.

We do not use Gemini output to make decisions about credit, employment, housing, insurance, education, health care, or other high-impact eligibility. Ingredient recognition and recipes can be wrong. Always check ingredients, allergens, storage condition, preparation, and cooking temperatures yourself. Dinner Decoder is not medical, dietary, or food-safety advice.

Why we use information

Legal bases where applicable

If privacy law such as the GDPR applies to you, our legal bases generally are:

Who receives information

We share only what is needed for the service to work or to meet legal and security obligations:

We do not sell, rent, or share personal data with advertisers. We do not currently use advertising in Dinner Decoder.

Retention

Deletion and your choices

You can request deletion by emailing anyawiesen@gmail.com from the address on your Dinner Decoder account with the subject Delete my Dinner Decoder account. We may verify ownership before acting. We will normally complete a verified deletion request within 30 days and delete the account and associated active kitchen, scan-history, and inventory data, subject to the limited retention described above. Deleting the app alone does not delete an account or cancel a store subscription.

Depending on where you live, you may also have rights to access, correct, delete, restrict, object to, or receive a portable copy of your personal data, and to withdraw consent where processing relies on consent. Contact us first and we will handle the request under the laws that apply to you. You may have the right to complain to your local data-protection authority.

International processing

Dinner Decoder and the providers above may process information in the United States and other countries where they or their service providers operate. Those countries may have different data-protection rules. The providers' terms, privacy policies, and data-processing agreements describe the safeguards they use for applicable international transfers.

Security

Traffic between the app, backend, and providers is sent over encrypted connections where supported. Supabase handles password storage and authentication. We limit backend access to the data and credentials needed to operate the service, but no transmission or storage system can be guaranteed to be completely secure.

Adults only

Dinner Decoder is intended for people age 18 and older and is not directed to, or designed for, children. The current beta does not request a date of birth or perform age verification. We do not knowingly collect personal data from anyone under 18. If you believe a person under 18 has provided personal data, contact us so we can investigate and delete it where appropriate.

Changes to this policy

We may update this policy when the app, providers, or applicable law changes. We will change the effective date above and, where required, provide additional notice for material changes. The current version is always available at dinner-decoder.up.railway.app/privacy.

Contact

Privacy and deletion requests: anyawiesen@gmail.com