Privacy Policy
This Privacy Policy explains how Marinaid ("we," "our," or "us") collects, uses, and protects your information when you use our recipe application and related services (collectively, the "App").
Marinaid is an account-based, subscription recipe app. Your content is synced across your devices using Apple iCloud (CloudKit). We collect only the data necessary to provide core functionality and operate the service.
1. Information We Collect
1.1 Information You Provide (Required)
- Account information: iCloud account identifier, and subscription status.
- User content: recipes you save or import, cooking notes, ratings, tags, grocery lists, meal plans, and cooking history.
- Recipe creator: the name shown as a recipe’s creator. You can type this yourself, or pick a person from your device’s contact picker — in which case that person’s name, and their contact photo, are saved onto that recipe. We never read or upload your address book; only the single entry you choose is used. See 1.6 and 4.
- Support communications: messages or feedback you send to us.
1.2 Subscription & Payments
- Subscriptions are processed by Apple’s App Store.
- We do not collect or store full payment or credit-card information.
1.3 Automatically Collected Information
- Device information: device type, operating system version, app version.
- Usage data: feature-usage and interaction events, only when optional first-party analytics are enabled for your build (see 1.4). We do not collect crash logs, call stacks, or performance traces. We collect two diagnostics: a daily sync report — whether syncing with iCloud worked, and which error codes it hit when it did not — and, when the App crashes, which build crashed and the system’s two crash codes (see 1.4).
Usage data is collected only to improve the App. This data is not used for advertising or cross-app tracking.
1.4 First-party analytics (optional)
When enabled in a build, the App sends first-party analytics events to our secure HTTPS API atapi.marinaid.app, hosted on Amazon Web Services (AWS) in the United States. We donot embed third-party advertising or cross-app analytics SDKs for this purpose.
To authenticate the App with our API we first perform a short challenge/response exchange that sends your pseudonymous CloudKit user record name and a client-side challenge response over HTTPS, and receive a short-lived access token in return. No password, email, or Apple ID is transmitted.
Every event carries:
- A random event id (UUID) and an ISO-8601 timestamp
- The event type (one of the categories below)
- Your account pseudonym — a stable identifier derived from your iCloud / CloudKit user record name (it is not your Apple ID email)
- The app version and build number that produced it, whether that build came from the App Store, TestFlight, or a development build, and your iOS version. Each event is also stored with a note of how your account pseudonym was confirmed (verified with iCloud or not), so we can tell test and development devices apart from customers.
- Whether Apple Intelligence is supported on your device and switched on (for example on, off, or not supported on this device). Several features, including recipe import from social media, work differently without it, so this lets us tell a failed import from one that needed Apple Intelligence. This is the state of a device setting, not anything you asked Apple Intelligence or anything it produced.
- Your device's region (a country code such as US or DE) and preferred language (such as en or de), read from your Language & Region settings. These tell us which countries and languages to support next. They are settings you chose, not location data: we do not use GPS, Location Services, or IP geolocation, and nothing more precise than a country is collected.
The full list of event types we currently send, and the additional fields each event carries:
- app_opened — UTC calendar date (sent at most once per day). From version 1.5.1, also whether Marinaid is allowed to show you notifications (one of: not asked, allowed, denied, quiet delivery, or temporary) and whether the Cooking Reminders switch in Account is on. Neither says what any notification contained or whether you read one
- recipe_imported — the recipe's source URL, a hash of the recipe id, the recipe title, the canonical recipe page URL, and the recipe image URL
- recipe_cooked — recipe id hash, recipe title, page URL, image URL, and whether the cook was logged after the fact (“Cooked Before”) rather than as it happened
- recipe_meal_planned — recipe id hash, recipe title, page URL, image URL, and the UTC date the meal is planned for
- recipe_share_link_created — recipe id hash, recipe title, page URL, image URL, total share count
- recipe_shared — recipe id hash, and which kind of share you finished: print, message, mail, copy, AirDrop, or other. Sent only when you complete a share of one recipe from the share sheet, not when you cancel it. It never says which app you shared to, or who you shared with
- recipe_favorited — recipe id hash, favorite on/off
- recipe_rated — recipe id hash, your 1–5 rating (0 if cleared)
- recipe_deleted / recipe_restored — recipe id hash only, sent when you move a recipe to Recently Deleted or recover it from there. No title, URL, or image. Not sent when a recipe is removed for good from Recently Deleted, when Recently Deleted empties itself after 30 days, or when a change made on another of your devices syncs in
- recipe_viewed_engaged — recipe id hash and how many milliseconds it was visible
- collection_created / recipe_added_to_collection — a SHA-256 hash of the folder id
- grocery_items_added_from_recipe / grocery_synced_to_reminders / grocery_sent_to_instacart — item count only (no item names)
- household_membership — your role (owner / member / none) and the number of other members
- subscription_changed — whether the resulting state is Pro
- paywall_shown / paywall_dismissed — which gated feature opened the upgrade screen, and whether you subscribed while it was open
- library_snapshot — how many recipes your library currently holds, and how many came from each import method (web, social media, photo, PDF, audio, typed, or created by hand). Counts only — no recipe titles, URLs, or ids. Sent at most once per day
- sync_health — a once-a-day report on iCloud syncing: whether the day’s first sync succeeded, iCloud error codes and how many times each occurred, how long it has been since a sync last succeeded, how many changes are waiting to sync, how many items could not be synced, whether you are signed in to iCloud, and whether you belong to someone else’s household. Codes and counts only — never recipe titles, URLs, ids, or the contents of whatever failed to sync
- app_crashed — sent the next time you open the App after it crashes: the day it crashed, the build that crashed, and the two numbers iOS uses to classify a crash (the exception type and the signal). No crash log, no call stack, and nothing about what you were doing when it happened
Several events therefore include recipe titles, source URLs, and recipe image URLs (clearly identifiable user content). They do not include the full recipe body, your free-text notes, or your grocery item names. Cooking voice transcripts and on-device OCR results never leave the device.
Aggregate recipe snapshots: we maintain a separate database of information keyed only by recipe id hash (without your account id on those snapshot records) to power community-wide metrics and enrichment. Our servers may occasionally fetch public web pages (for example, the same recipe URL used for import) to fill in missing titles or preview images for those aggregates—subject to reasonable limits and only for operational purposes, not for advertising profiles.
If analytics are not configured for your build, or the App cannot obtain a short-lived access token, events remain on your device and are not transmitted.
1.5 Feedback you submit
When you tap a Send-feedback control inside the App, the message is delivered to the sameapi.marinaid.app service. The exact payload depends on the form:
- Import-quality feedback — recipe id, recipe title, source URL, video URL (if any), one or more issue tags (ingredients / steps / times & servings / other), a severity level, and your free-text comment (up to 2,000 characters). Each submission also includes basic device info (app version, build number, iOS version, device model) so we can reproduce parsing problems. If the recipe was imported on that device from a shared post or pasted text, the submission also includes the text the recipe was read from (up to 2,000 characters) — for a social-media import this is the post’s caption, which is what our parser actually reads, and without it we cannot reproduce a wrong-recipe report. The feedback form tells you when this text will be attached. This text is stored only on the device that ran the import, is never synced to iCloud or shared with your household, and is deleted when you delete the recipe or use Delete App Data.
- Import-failure reports — the URL that failed to import (HTTPS only), the error message, and an error type label.
- General app feedback — your free-text comment (up to 2,000 characters) and an optional context string.
Free-text comments may include any information you choose to type. Please do not include sensitive personal data.
Feedback submissions are retained for 90 days and then deleted automatically.
1.6 Information We Do Not Collect
- Location data of any kind. We do not use GPS or Location Services, and we do not derive your location from your IP address. The device region described in 1.4 is a setting you chose in Language & Region, not a measurement of where you are, and it is never more precise than a country.
- Contact lists. We never read or upload your address book. If you choose a recipe’s creator from the contact picker, only that one person’s name and photo are saved to that recipe (see 1.1).
- Photos or media outside content you explicitly import
- Health-profile fields you enter to personalize nutritional goals (age, sex, height, weight, activity level, goal). These are stored only in your private Apple CloudKit container and on your device. They are never sent to our servers, included in analytics events, or shared with third parties.
- Cooking voice transcripts — speech recognition runs on-device and audio is not retained
- OCR text from photos you scan — text extraction runs on-device
2. How We Use Your Information
- Provide and operate the App
- Authenticate accounts and manage subscriptions
- Sync data across your devices
- Improve features and performance
- Compute aggregate statistics and trends (for example, product metrics) when you participate in optional analytics
- Respond to support requests
We do not sell personal information or use it for targeted advertising.
3. Data Storage & Processing
Marinaid is an iCloud-based service and requires an Apple ID with iCloud enabled.
Your data is stored in your private Apple iCloud account via CloudKit and is associated with your Apple ID. A local database on your device provides offline access and is synced automatically with iCloud.
Optional analytics events and aggregate snapshot data may be stored in AWS (for example, DynamoDB) in the United States, separately from your iCloud recipe library. Raw analytics events are associated with your pseudonymous analytics subject id; aggregate snapshot rows keyed by recipe id hash are designed not to include that subject id.
Data is used solely for:
- Core App functionality
- Cross-device sync via iCloud
- Backup and recovery
- Subscription entitlement verification
Your data is private, stored in your personal iCloud container, and not visible to other users.
4. Sharing of Information
We do not share your personal information except:
- When required by law
- To comply with legal obligations
- To protect the rights, safety, or security of users or the App
Any service providers we use are contractually bound to protect your data.
When you choose to share a recipe — with a household member, or via a share link — the shared copy includes that recipe’s creator name, which may be a name you picked from your contacts. The contact photo is never included in a shared or published copy.
5. Third-Party Services
Marinaid integrates the following third-party services:
- Apple iCloud (CloudKit) — cloud sync and storage of your recipes, grocery lists, meal plans, cooking history, and profile. Data is stored in your private iCloud container (or, for shared households, a shared CloudKit zone) and governed by Apple's Privacy Policy.
- Amazon Web Services (AWS) — hosts our marketing site, static recipe-site catalog, and optional first-party analytics + feedback API infrastructure (United States). Data processed on AWS is covered by this policy and AWS's role as a processor under our configuration.
- RevenueCat — subscription management and purchase verification (United States). Receives your anonymous user identifier and App Store subscription transaction data. We do not send custom user attributes. Governed by RevenueCat's Privacy Policy.
- Instacart — when you tap "Send to Instacart" from a grocery list, we POST your item names, quantities, and units to Instacart's product-link API so they can build a shopping cart for you. We do not send your name, account id, or any other recipe context. Governed by Instacart's Privacy Policy.
- Google Favicons API — retrieves website icons for display alongside recipe sources. Only the source website's hostname is sent; standard HTTP request data (your IP address, user agent) reaches Google. No account or recipe identifiers are sent.
- Google Search — the in-app Browser (the start page offered during setup and when your library is empty) runs a Google search when you type what you’re looking for. The words you type are sent to Google, along with standard HTTP request data (your IP address, user agent). We do not send your account information, and we never see your searches. The Browser keeps the cookies and site data that Google and the recipe sites set, on your device only, and Delete App Data removes them. Governed by Google’s Privacy Policy.
- Recipe source websites — when you import a recipe from a URL, the App fetches that public web page directly from its host (for example, NYT Cooking, an Instagram post, a TikTok video URL). Standard HTTP request data (your IP address, user agent) reaches that site; we do not send your account information.
- DuckDuckGo — when you import a recipe from a social media post that doesn't include a direct link, Marinaid may search DuckDuckGo to find the recipe's original website. The search query includes the recipe creator's name and title. No account identifiers or cookies are sent.
We do not use third-party in-app analytics SDKs, crash-reporting SDKs, or advertising frameworks. Optional analytics are sent to our own API, not to a separate ad-tech network.
Third-party services are not permitted to use your data for advertising or their own independent purposes.
Affiliate relationship. Marinaid participates in Instacart’s affiliate program, administered by impact.com. If you place an order after sending a grocery list to Instacart, we may earn a commission on that order at no additional cost to you. Commission reporting reaches us through impact.com; it does not identify you personally and does not tell us what you bought. This relationship does not change what data we send to Instacart (described above), and it never influences the recipes, ingredients, or quantities the App suggests.
6. Data Retention & Deletion
We retain your data only for as long as your account is active or as needed to provide the App.
You may delete your data at any time by:
- Deleting content within the App
- Requesting account deletion via the App
- Emailing support@marinaid.app if you no longer have the App installed
Upon account deletion, your personal data is permanently removed from our systems within a reasonable timeframe, unless retention is required by law.
Analytics events stored on our servers may be retained for operational and statistical purposes. If you wish to inquire about deletion of analytics data associated with your use of the App, contact us atsupport@marinaid.app. Aggregate statistics that do not reasonably identify you may be retained (for example, community-wide counts or recipe-hash summaries).
7. Your Rights (GDPR & CCPA)
European Economic Area (GDPR)
If you are located in the EEA, you have the right to:
- Access your personal data
- Correct inaccurate data
- Request deletion of your data ("right to be forgotten")
- Restrict or object to processing
- Request data portability
California (CCPA / CPRA)
California residents have the right to:
- Know what personal information is collected
- Request deletion of personal information
- Opt out of the sale or sharing of personal information
Marinaid does not sell or share personal information for cross-context behavioral advertising.
To exercise your rights, contact us at support@marinaid.app.
8. Children’s Privacy
Marinaid is rated 13+ on the App Store and is not intended for children under 13(or the higher minimum age set by your jurisdiction — for example, 16 in some EEA countries).
We do not knowingly collect personal information from children under that minimum age. If you believe a child has provided us with personal information, contact us atsupport@marinaid.app and we will delete it.
9. Security
We use industry-standard administrative, technical, and organizational safeguards to protect your data.
No method of transmission or storage is completely secure, and we cannot guarantee absolute security.
10. Changes to This Policy
We may update this Privacy Policy from time to time. Material changes will be communicated within the App or through appropriate notice.
Changelog
- October 16, 2026 — §5 now lists Google Search. The in-app Browser has always run your typed search on Google, which receives the words you type; the policy previously mentioned Google only for website icons. Nothing about what the App sends has changed. Delete App Data now also removes the cookies and site data the Browser keeps on your device, and the queue of pending Siri and Shortcuts requests.
- October 16, 2026 —
app_opened(§1.4) now also carries whether Marinaid is allowed to show you notifications — not asked, allowed, denied, quiet delivery, or temporary — and whether the Cooking Reminders switch is on. From version 1.5.1. This is a device setting, read when the app opens; it never says what any notification contained or whether you read one. We added it because a fresh install only ever had quiet delivery, under which a reminder reaches Notification Center and nowhere else, and we had no way to tell how many people that affected. - September 23, 2026 — Added
recipe_sharedto the analytics event list in §1.4. From version 1.4, finishing a share of one recipe from the share sheet — printing it included — sends the recipe id hash and which kind of share it was (print, message, mail, copy, AirDrop, or other), so a printed recipe counts as a recipe you used. It never says which app you shared to or who you shared with. - September 23, 2026 — Added
recipe_deletedandrecipe_restoredto the analytics event list in §1.4. From version 1.4, moving a recipe to Recently Deleted, or recovering one, sends the recipe id hash and nothing else, so our count of how many recipes people keep can go down as well as up. No titles, URLs, or images are sent with them. - September 23, 2026 — §1.4: every analytics event now also says whether it came from an App Store, TestFlight, or development build, and is stored with a note of how the account pseudonym was confirmed, so test devices can be told apart from customers.
recipe_cookednow says whether a cook was logged after the fact. Recipes you create by hand are now reported as an import, like every other way of adding a recipe. No new kind of data is collected: these are counts and flags on events already listed. - September 22, 2026 — Added
app_crashedto the analytics event list in §1.4 and updated §1.3. From version 1.4, when the App crashes it reports which build crashed and iOS’s two crash codes the next time you open it, so we can tell how many people a crash affects. It carries no crash log, no call stack, and nothing about what you were doing. - September 22, 2026 — Added
sync_healthto the analytics event list in §1.4, and reworded §1.3. The App now collects one diagnostic: a once-a-day report of whether iCloud syncing is working, and the error codes when it is not. It carries codes and counts only, never the contents of what failed to sync. We still collect no crash logs or performance traces. - September 17, 2026 — §1.4: analytics events now also carry your iOS version and whether Apple Intelligence is supported and switched on, so import problems can be matched to the device setup that produced them. Nothing you ask of Apple Intelligence, and nothing it produces, is included.
- September 7, 2026 — §1.4: analytics events now also carry the device's region (country code) and preferred language, alongside the app version, so we can decide which languages and markets to support next. These come from your Language & Region settings, not from Location Services or IP geolocation, and nothing more precise than a country is collected. Subscription records kept for statistics now also store the App Store country a subscription was purchased in, as reported by RevenueCat.
- August 28, 2026 — §1.5: import-quality feedback may now include the text a recipe was imported from (for social imports, the post caption), so wrong-recipe reports can be reproduced. This text is kept only on the importing device, never synced or shared with a household, and is deleted with the recipe. Also stated the retention period for feedback submissions: 90 days, after which they are deleted automatically.
- June 23, 2026 — Removed the Social Features section: opt-in public profiles, follow graphs, and recipe / folder / meal-plan / cook-log publishing are no longer part of the App. Reworded Children’s Privacy so the 13+ rating is stated without reference to the removed social surface, and dropped the social-publishing item from the App Store privacy summary. Later sections were renumbered down by one (former §7–§12 are now §6–§11); section numbers cited in older changelog entries below refer to the policy as it stood at that time.
- June 15, 2026 — Added explicit email deletion path to §7 (GDPR/CCPA compliance: users who have uninstalled the App can now request deletion via support@marinaid.app); removed stale social-profile deletion paragraph; updated §8 rights contact to include email address.
- May 14, 2026 (revised) — Strengthened §9 to state the App Store 13+ rating explicitly and tie it to the social-feature surface.
- May 14, 2026 — Enumerated each first-party analytics event type and the fields it carries; added a dedicated section for in-App feedback submissions and the free-text comments they include; documented the Instacart grocery hand-off, opt-in social / public-CloudKit publishing, and recipe-source page fetches; clarified that health-profile fields (age, sex, height, weight, activity level, goal) stay in private CloudKit and are never transmitted to us; clarified that cooking voice transcripts and photo OCR run on-device.
- April 10, 2026 — Initial published version.
11. Contact Us
If you have questions about this Privacy Policy or your data, contact us at:
- Email: support@marinaid.app
- Developer: Polpis LLC
Apple App Store Privacy Summary (Informational)
For App Store transparency purposes, Marinaid may collect:
- Identifiers: pseudonymous account id derived from your iCloud user record name (linked to user; shared with RevenueCat for subscription management).
- User Content: recipe titles, source URLs, and image URLs in analytics events; free-text comments in feedback submissions; grocery item names, quantities, and units when you send a list to Instacart (linked to user).
- Purchase History: subscription transactions (managed via App Store and RevenueCat).
- Diagnostics: app version, build number, iOS version, device model, event counts / dwell times, and iCloud sync outcomes and error codes in analytics (linked to user).
- Crash Data: that the App crashed, the build that crashed, and iOS’s crash exception type and signal — no crash log or call stack (linked to user).
- Usage Data: app interaction events from first-party analytics (linked to user; not used for advertising or cross-app tracking).
Health & Fitness data is not collected by the developer. The age, sex, height, weight, activity level, and goal you optionally enter to personalize nutrition targets are stored only in your private Apple CloudKit container and never reach our servers.
Data is used strictly for App functionality, analytics, and subscription management and is not used for advertising or tracking across apps or websites.