MacroCraft privacy policy
Last updated: 1 October 2026
Contact: support@macrocraftfoods.com
The short version
MacroCraft has no account, no app server and no analytics. Your food log, your weigh-ins and everything derived from them are stored on your phone, encrypted, and are not sent anywhere. Three things reach the internet, all of them narrow, and two of them only when you ask: a barcode lookup, a recipe page you paste, and a check for an app update. Nothing about your health is part of any of them.
We — the developer of MacroCraft — cannot see your data. There is nowhere for it to arrive.
What MacroCraft stores on your phone
All of it lives in one encrypted database. The key is generated on your device, kept in the system keychain, and never leaves it.
| What | Detail |
|---|---|
| Food and drink you log | Items, amounts, times, and a frozen nutrition snapshot per entry. |
| Weigh-ins and trend weight | Each reading, its source, and the smoothed trend derived from them. |
| Body fat, fat mass and lean mass | Readings you enter or that come from a health app, with the instrument each came from. |
| Daily step counts | Read from a health app to inform the energy estimate. |
| Sex, date of birth, height and usual activity | Used to estimate resting energy before the app has learned from your own data. |
| Goals, programs and weekly check-ins | Target weight, rate, calorie and macro targets, and what each check-in decided. |
| Your recipes and your own foods | Names, ingredients, portions, barcodes you scanned. |
| History you import from your health app | Daily calories and macros one other app wrote to Apple Health or Health Connect, up to the day before you started using MacroCraft. |
| Settings | Units, Strict Offline, the Progress arrangement, and which permission sheets you have seen. |
MacroCraft does not ask for your name, your email address or your phone number, and has nowhere to put them.
Your health app
MacroCraft can read from and write to Apple Health or Health Connect. You are asked separately for the weight-and-steps connection and for body composition, and refusing either leaves the rest of the app working.
On iPhone, MacroCraft asks to read:
| Type | Why |
|---|---|
HKQuantityTypeIdentifierBodyMass | weigh-ins, which drive the trend and the whole estimate |
HKQuantityTypeIdentifierStepCount | daily activity, which informs the energy estimate |
HKQuantityTypeIdentifierBodyFatPercentage | energy density for the expenditure estimate (optional) |
HKQuantityTypeIdentifierLeanBodyMass | energy density for the expenditure estimate (optional) |
HKQuantityTypeIdentifierHeight | resting energy estimate (optional) |
HKCharacteristicTypeIdentifierDateOfBirth | age for the resting energy estimate, offered as a profile prefill |
HKCharacteristicTypeIdentifierBiologicalSex | resting energy estimate, offered as a profile prefill |
HKQuantityTypeIdentifierDietaryEnergyConsumed | what other apps logged as eaten, read once when you import your history (never synced) |
HKQuantityTypeIdentifierDietaryProtein | protein other apps logged, read once when you import your history (never synced) |
HKQuantityTypeIdentifierDietaryCarbohydrates | carbohydrate other apps logged, read once when you import your history (never synced) |
HKQuantityTypeIdentifierDietaryFatTotal | fat other apps logged, read once when you import your history (never synced) |
On Android, MacroCraft asks to read: Weight, Steps, BodyFat, LeanBodyMass, Height, Nutrition (once, for the history import), and
ReadHealthDataHistory — the last because Health Connect otherwise serves an ordinary read permission only
about thirty days back, and the energy estimate reads a year of weight history. Refusing it is supported: the
app then reads the window it is allowed.
MacroCraft writes one thing: the nutrition you log, so it appears alongside your other health data. On
Android that is the Nutrition record type. It never writes your weight, your steps, your body composition,
or the history you imported.
Health data read from your health app is used only inside MacroCraft, to show you your own history and to estimate your energy expenditure. It is never used for advertising, for marketing, or for any purpose other than the health and fitness features you are using it for, and it is never sold, shared or transmitted.
MacroCraft deletes a record in your health app only if MacroCraft created it. Removing the app's own nutrition entries is offered when you reset the app, and it is optional.
What reaches the internet
Three things, and nothing else. There is no analytics SDK, no crash reporter and no advertising identifier.
world.openfoodfacts.org — when you scan a barcode MacroCraft does not already know, it asks Open Food
Facts about that barcode. The request necessarily reveals the barcode and your IP address to that service.
The answer is cached on your phone so the same product is never looked up twice. Turning on Strict Offline
in Settings stops this entirely.
A web address you type — if you paste a recipe URL and ask MacroCraft to read it, MacroCraft fetches that page from the site you chose. Nothing about you is added to the request beyond what any browser sends. Strict Offline stops this too.
u.expo.dev — a release build checks for an app update on launch. That request carries the app's runtime
version, platform and release channel, and necessarily your IP address. It carries no personal data and no
identifier of you.
Your food, your weights, your body composition, your goals and your profile are part of none of these requests.
One more thing is worth naming, because it leaves the app even though MacroCraft does not make the request: the
licences on the About and licences screen are links. Tapping one hands the address — for example
opendatacommons.org — to your browser, and from then on it is an ordinary web page visit that MacroCraft has
no part in.
Permissions on iPhone
iOS asks at the moment a feature needs each one, and explains why in the system prompt. MacroCraft asks for four:
| What it asks for | When |
|---|---|
| permission to read from Apple Health | when you connect a health app, and again if you ask for the body-composition prefill |
| permission to write to Apple Health | when you connect a health app |
| the camera, to scan a barcode or photograph a label | when you open the scanner or take a label photo |
| a photo you have already taken | when you choose an existing photo of a label instead of taking one |
MacroCraft asks for no microphone access, no location access and no contacts access on either platform.
Permissions on Android
Android grants some permissions at install and asks for others when a feature needs them. MacroCraft's full list, with what each is for:
| Permission | What it is for |
|---|---|
android.permission.CAMERA | scanning a barcode, or photographing a nutrition label |
android.permission.INTERNET | the three destinations above and nothing else |
android.permission.VIBRATE | the small taps that confirm an action |
android.permission.READ_EXTERNAL_STORAGE | choosing an existing photo of a label, on Android 12 and older. Android 13 and newer use the system photo picker, which needs no permission |
android.permission.WRITE_EXTERNAL_STORAGE | nothing MacroCraft does. It arrives with a library, applies only to Android 12 and older, and MacroCraft writes only inside its own private storage |
android.permission.health.READ_WEIGHT | reading your weigh-ins from Health Connect |
android.permission.health.READ_STEPS | reading your daily step counts |
android.permission.health.READ_BODY_FAT | reading body fat, if you allow it |
android.permission.health.READ_LEAN_BODY_MASS | reading lean mass, if you allow it |
android.permission.health.READ_HEIGHT | reading your height, if you allow it |
android.permission.health.READ_HEALTH_DATA_HISTORY | reading further back than the thirty days Health Connect otherwise allows |
android.permission.health.READ_NUTRITION | reading what other apps logged as eaten, once, when you choose to import your history |
android.permission.health.WRITE_NUTRITION | writing the nutrition you log back to Health Connect |
com.google.android.apps.aicore.service.BIND_SERVICE | talking to Android's own on-device AI service, on a device that has one, when you use Describe or read a label. It arrives with the ML Kit library. Nothing is sent anywhere: the model runs on your phone |
MacroCraft asks for no microphone access and no location access. Two permissions that libraries would
otherwise have added — android.permission.RECORD_AUDIO and android.permission.SYSTEM_ALERT_WINDOW — are
deliberately removed from the build, because MacroCraft has no feature that uses either.
Artificial intelligence
MacroCraft's "describe a meal" and label-reading features run entirely on your device, using the model built into the operating system. Nothing you photograph or type is sent to an AI service, and MacroCraft never falls back to one. Where a device has no such model, the app uses a plain text parser instead and says so.
Backups
MacroCraft excludes its database, its journals and its internal files from iCloud backup and from Android cloud Auto Backup and device-to-device transfer. That is deliberate: no personal health data reaches a cloud backup by default.
If you want a copy, you create it yourself, and you decide where it goes:
| File | Encrypted | What is in it |
|---|---|---|
| Portable backup (.mcbackup) | AES-256-GCM, keyed from a recovery key only you hold | everything stored on the device except this device's own bookkeeping about a health store |
| CSV and JSON export | no — plain text | the tables you chose, or in JSON everything the CSVs hold plus recipes, goals and your profile |
| Diagnostics bundle | no — plain text | versions, states and row counts. No food, no weights, no names, nothing you typed |
The recovery key for a backup is shown once and is stored nowhere — not on your device and not by us. If you lose it, that backup cannot be opened by anybody, including us. A CSV or JSON export is plain text: treat it the way you would treat any document about your health.
Deleting your data
Deleting the app removes the database and its key with it. Inside the app, Reset app data deletes the database, the local safety snapshots, any files waiting to be shared and the encryption key, and offers to remove the nutrition entries MacroCraft wrote to your health app. Your own backup files are wherever you put them and are not touched.
Children
MacroCraft is not directed at children and does not knowingly hold data about anyone under 13.
Not medical advice
MacroCraft is nutrition and weight-management software. Its calorie and macronutrient targets, safety floors and rate limits are guardrails in a piece of software, not medical advice, and it does not diagnose, treat or prevent anything. Talk to a qualified professional about your own situation.
Where the food data comes from
MacroCraft ships a generic food database built from public sources, and credits them in the app under About and licences:
- Health Canada — Canadian Nutrient File, under the Open Government Licence – Canada.
- USDA FoodData Central, released under CC0 1.0.
- Open Food Facts, whose database is ODbL 1.0, whose contents are DbCL and whose text is CC BY-SA 3.0. MacroCraft queries it for barcodes and caches individual products locally; it does not redistribute the database.
This website
This page and the rest of macrocraftfoods.com are static files hosted on GitHub Pages. They run no scripts, set no cookies and carry no analytics. GitHub, as the host, receives your IP address with each request and may keep it in its logs, as its own privacy statement describes. Nothing you do on this website reaches the app.
Changes
If this policy changes in a way that affects what MacroCraft does with your data, the updated version will be published here with a new date before the change ships.