Privacy policy
We collect as little as we can, keep your meals on your phone, and never sell your data or show you ads.
Who we are
Portion is developed and operated by Mahmoud Metwally, an individual developer based in the United Arab Emirates, through metwally.ae. Under the UAE’s Personal Data Protection Law (Federal Decree-Law No. 45 of 2021) that person is the controller of your personal data: the one who decides what is collected and why, and the one answerable for it. You can reach us through the support form in Help & support.
What we collect, why, and on what basis
Your account
When you sign in with Apple or Google, we receive an account ID and an email address. With Apple you can hide your email, and then we only ever see a relay address. If you choose to share it, we also receive your name. We use these to know it’s you, to run Portion Free, and to reply when you write to us. Sign-in is handled by Google Firebase Authentication. Why we may: we need it to provide the service you asked for.
Your plan, which is health data
The name you gave, if any, your age, sex, height, weight, activity level, goal and pace, and the calorie and nutrient targets worked out from them. We save these to your account so that signing in on a new phone, iPhone or Android, brings your plan back.
Age, sex, weight and what we derive from them say something about your health, and UAE law treats health data as sensitive personal data. We use it only to work out your targets and save it to your account so your plan can return on a new phone. We never use it for advertising, never sell it, and never send it to Google Gemini. Why we may: your explicit consent, given when you set up your plan, which you can withdraw by deleting your account.
Your meals
The photos and descriptions you log, their estimates, and when you logged them. These stay on your phone, and on iPhone your Apple Watch — not on our servers. If your iPhone backs up to iCloud, Apple keeps a copy under its own terms. On Android, Portion opts out of Google’s device backup, so your log leaves the phone only in a backup file you make. A backup file you make in Profile is yours: it goes only where you save or send it, and we never see it.
Pregnancy and breastfeeding
If you tell Portion you're pregnant or breastfeeding, it keeps your due date or your baby's birthday — and your weight before pregnancy — on your phone only. It is used to work out your targets and is never sent to our servers, to Google or to Gemini, and never included in a CSV export; it goes into a backup file only if you make one. The targets it produces are saved with your plan like any other target, but the reason for them is not. You can change or remove it any time in Profile.
Sharing with a coach
Only if you join a coach’s group with their code. Then, for each of the last 14 days, your coach sees your calories, protein, carbs and fat, your water, your targets, and whether you logged that day — plus the name you type when you join. Your meals, photos, weight, body measurements and pregnancy or breastfeeding details are never shared. These daily totals are stored on our servers so your coach can read them, and anything older than 14 days is deleted as Portion updates them. Stop sharing in Profile → Coaching and your shared days are deleted straight away. If you run a group, its name and code are stored with your account, and closing the group deletes everything your clients shared with it. Why we may: your explicit consent, given on the screen that shows what your coach will see, which you can withdraw at any time by stopping sharing.
What goes to Google Gemini
Each time you ask for an estimate, the photo you took or the words you typed are sent to Google Gemini, Google’s AI service. Portion does not add your name, email, weight, targets or health profile to the request; anything you choose to show in the photo or write in the description is part of what Google receives. Nothing is sent until you agree on the “Before your first scan” screen, and you can stop at any time in Profile → Your data → AI & your data. Why we may: your consent, and only for as long as it stands.
- For estimates, requests go through Google’s Agent Platform (formerly Vertex AI) on our Google Cloud account, which we pay for. Google says it does not use this content to train or fine-tune its models without our permission, and we have not given it. Google may temporarily cache content and may log prompts and responses to detect abuse under its Google Cloud terms.
History you import
If you import a file exported from another app, such as MacroFactor or Cronometer, Portion reads it on your phone and keeps its meals and weigh-ins there, like anything you log. The file is never sent to our servers, to Google or to Gemini.
Feedback, the Pro waitlist, and leaving
- Feedback and support: your message, any screenshot you attach and — unless you switch it off — your app version, phone model and language. Feedback sent in the app is linked to your account so we can reply. The web support form instead asks for your email and optionally your name. Please do not put health information, meal photos or passwords in the web form.
- Portion Pro waitlist: that you joined, your account email so we can tell you when Pro is ready, and the monthly price you said felt fair, if you answered.
- Deleting your account: the reason you picked, if any, kept without anything that identifies you.
Keeping Portion Free fair
To protect Portion Free from abuse, we use Firebase App Check with Apple’s App Attest on iPhone and Google Play Integrity on Android, which confirm that requests come from the real Portion app on a real device. Your daily count of free estimates is kept on your phone.
Setup and returning to log
We use Google Analytics for Firebase to count setup progress, the first successfully saved meal, and days people return to save meals. This lets us measure activation, return on day seven after the first save, and logging on at least three days in a week. We send action dates grouped by Dubai calendar day and whether an installation is new or existing. We never send meal contents, photos, nutrition values, names, email addresses or measurements in these events. We do not use them for advertising or join them to an advertising identifier. Alongside it, Google’s SDK collects standard app information: the app version, device model, language, country, and a random identifier for this installation.
You can turn this off. Profile → Your data → AI & your data → Usage analytics stops the collection on your phone, not just the sending, and it stays off until you turn it back on. Switching it off also clears the local activation and repeat-day counters; turning it back on does not recreate past activity. Nothing else in Portion changes.
Android beta invitations
If you request an Android beta invitation on this website, our website host processes your email and passes it to Google Firebase App Distribution. Google sends your invitation and beta update emails and keeps your tester membership until it is removed. This does not create a Portion account or share your meal log. We keep keyed hashes of the address and visitor IP, a request identifier, status and time to prevent repeated requests and abuse; records older than 24 hours are purged when the form is next used. Hosting and Google may process these requests outside the UAE. Ask us at hello@metwally.ae to leave the beta or remove your tester email. Why we may: your request for beta access and our legitimate interest in preventing abuse.
Crash diagnostics on Android
We use Google Firebase Crashlytics to understand crashes and improve reliability. It collects technical information such as stack traces, app and operating-system versions, device model and random installation identifiers. We do not attach your account ID, name, email, meals, photos, measurements, coaching codes or AI requests to crash reports. The Usage analytics switch above also controls crash collection; switching it off deletes unsent crash reports on this device. Crash diagnostics are processed on Google's global infrastructure and retained by Crashlytics for 90 days.
Anonymous crash reports on iPhone
When Usage analytics is on, we collect anonymous crash data through Firebase Crashlytics to find and fix failures. Reports include technical details such as stack traces, app and operating system versions, device model, a random installation identifier, and basic usage events from analytics. We do not attach your account ID, name, email, health data, meal text, photos, AI prompts or API key, and we do not use crash reports for advertising.
The same Profile → Your data → AI & your data → Usage analytics switch controls crash reporting. Automatic reporting stays off. We check your choice before asking Firebase to send eligible reports. Turning the switch off stops new upload authorizations and excludes reports from that app session from later uploads. Reports already handed to Firebase for sending may finish uploading afterward. Restart the app after turning reporting back on. Crashlytics may keep reports locally until they are sent or discarded. Reports recorded in Debug builds or simulators are never eligible for upload, and this integration does not collect crashes from Apple Watch. Your control: your existing usage analytics preference, which you can turn off at any time.
Website analytics
Only after you choose Allow analytics, our website loads Google Analytics to count page visits, App Store clicks, Android beta invitation results and feedback submission results. These are website actions, not verified app installs. We do not send form contents or email addresses to Analytics, and page URLs exclude query strings and fragments. You can change your choice through Analytics settings on the website. If you decline, Google Analytics does not load.
Portion email invitations
If you allow website analytics after reading the updated choice, a random invitation identifier lets us link visits from a Portion email and successful feedback-form submissions to the invitation we sent you. The email-to-identifier list stays in our private campaign records. Our website host, Cloudflare, stores campaign identifiers, random recipient identifiers, action types and timestamps. Measurement expires within 90 days; expired records are excluded from reports and removed when the next event is processed. These records are not public. Your email, name, feedback text and invitation identifier are not sent to Google Analytics. Links may be forwarded or opened by automated tools, so a visit is not proof that a particular person read an email. We do not measure email opens. You can decline or withdraw analytics and still use the website and feedback form. Reply Stop to stop update emails.
What we don’t do
- We don’t sell your data.
- We don’t show ads, and we don’t share data with advertisers or data brokers.
- We don’t track you across other companies’ apps or websites.
- We don’t use your health information for marketing.
- We don’t make any decision about you automatically that has a legal or similarly significant effect.
Who we share it with
Only the services that run Portion, and only for that purpose:
- Google — Firebase Authentication, Cloud Firestore, Firebase AI Logic, App Check, Google Analytics for Firebase, Crashlytics and Gemini; on Android also Google sign-in and Play Integrity.
- Apple — Sign in with Apple and App Attest.
- Cloudflare — website hosting and optional email-invitation interaction records, which may be processed outside the UAE.
- Tasjeel and Google (Gmail) — website mail delivery and receipt of forwarded web support messages.
We may also disclose information if the law requires it.
Where it’s stored, and when it leaves the UAE
- Account sign-in data is processed by Firebase Authentication in the United States.
- Your saved plan, daily totals you share with a coach, in-app feedback and Pro waitlist entry are stored in Google Cloud’s Dammam, Saudi Arabia region — the closest region our provider offers, as Google Cloud has no region inside the UAE.
- Portion Free estimates use Google’s global Agent Platform location, so the photo or words in a request may be processed outside the UAE. Google Analytics and App Check also use global infrastructure.
- Web support messages are sent through our existing website hosting with Tasjeel and forwarded to our Gmail support inbox. Hosting and email providers may process those messages outside the UAE.
- Your saved meals, photos and weigh-ins stay on your device. Only the photo or words you submit for an estimate leave it, as explained above.
These services involve transfers outside the UAE. UAE law sets conditions for overseas transfers, and separate rules can apply to health information. We use the providers’ contractual data-protection terms and ask for consent where consent is the basis for processing. This policy does not ask you to give up any legal right. If you do not want your data processed outside the UAE, do not create an account, request an estimate or use the web support form.
How long we keep it
- Account and plan: until you delete your account.
- Feedback and support messages: up to 24 months, or until you delete your account where the message is linked to it.
- Waitlist: until Portion Pro launches, or until you delete your account.
- Days shared with a coach: the last 14 days, until you stop sharing, your coach closes the group, or either of you deletes your account.
- What’s sent to Gemini: Google may cache it in memory for up to 24 hours by default and may retain logs for abuse monitoring under its terms.
- Analytics and service-security data: under Google’s published retention periods and the controls set for our project.
When you delete your account, we request deletion of the active account and its linked database records straight away. The app also removes its local data and, on iPhone, asks the Apple Watch to clear its copy. Google says deleted Firebase Authentication data is removed from live and backup systems within 180 days; other deleted Google Cloud customer data may also take up to 180 days to disappear from backup systems. Those residual copies are not available to us for ordinary use or recovery.
Your rights
UAE law gives you these, and using them costs nothing:
- See what we hold — a copy of your personal data, and how it is being processed.
- Correct it — have anything wrong put right.
- Delete it — Profile → Account → Delete account does this in one go, or write to us.
- Take it with you — your data in a structured, machine-readable form.
- Restrict or object — ask us to stop or limit a particular use, including withdrawing your consent to AI estimates at any time in Profile → Your data → AI & your data.
- Complain — to us first, and to the UAE Data Office if we don’t put it right.
In the app: Profile → Your data → Export as CSV gives you your log, and Profile → Account → Delete account deletes the personal data linked to your account from active systems. For anything else, use the support form in Help & support and we will answer within 30 days. Depending on where you live — for example under the EU or UK GDPR — you may have further rights, including complaining to your local data protection authority.
Children
Portion is for adults aged 18 and over, which is where its age field starts. Calorie tracking isn’t right for everyone: if you have or have had an eating disorder, talk to a doctor before using Portion.
Keeping it safe
Everything between the app and our services travels encrypted, and Google encrypts the data it stores. Rules on the server stop one account from reading another’s, and access to the database is limited to the accounts that need it. If a breach happens, we will notify the UAE Data Office as required and notify you where the breach could prejudice the privacy, confidentiality or security of your data.
Changes
When this policy changes we’ll update the date at the top, and tell you in the app before any change that matters takes effect.
Contact
Questions, requests or complaints about your data: use the support form at metwally.ae/portion/support.