Privacy Policy
Effective date: April 13, 2025 · Last updated: April 13, 2025
This Privacy Policy explains how MirrorBit AI ("we", "our", or "us") collects, uses, shares, and protects your information when you use the SlayCal mobile application ("App") on iOS or Android. Please read it carefully.
tips_and_updates Key Points — Summary
We do NOT sell your personal data
Your data is never sold to third parties for advertising.
We do NOT track you across apps
NSPrivacyTracking is disabled; no cross-app tracking.
No third-party analytics SDKs
We use no Amplitude, Segment, or Firebase Analytics.
Microphone is NOT used
The microphone permission is explicitly disabled.
Health data is self-reported
We never access HealthKit or Google Fit.
Meal images are processed by AI
Food photos are sent to OpenAI for recognition.
Meal images are publicly stored
Images in Firebase Storage are accessible via URL.
Anonymous use is supported
You can use the app without creating an account.
This policy is available in English. If you need a translation, please contact us at [email protected].
01 Introduction expand_more
SlayCal is an AI-powered calorie and nutrition tracking mobile application developed
and operated by MirrorBit AI ("Company", "we", "us", or "our").
The App is available on iOS (bundle ID: com.slaycal.ios) and
Android (bundle ID: com.slaycal.android).
This Privacy Policy describes how we collect, use, disclose, and safeguard information about you when you use SlayCal. It applies to all users regardless of account status, including anonymous (guest) users.
By downloading or using the App, you agree to this Privacy Policy. If you do not agree, please do not use the App. This policy is incorporated into and subject to our Terms of Service.
Anonymous users: You can use core features of SlayCal without creating an account. In this case, we identify your session using a device identifier only (iOS IDFV or Android ID) and do not collect your email or name.
02 Information We Collect expand_more
We collect information you provide directly, information generated through your use of the App, and limited technical information from your device.
2.1 Account Information
Collected only when you register for an account:
| Data Element | Purpose | Required? |
|---|---|---|
| Email address | Account creation, login, and notifications | Yes (for registered users) |
| Password (bcrypt hash) | Authentication — stored as a one-way hash, never in plain text | Yes (email/password accounts) |
| First name & last name | Personalise in-app experience | Optional |
| Authentication provider | Identify login method (email, Google, Apple) | Yes |
| Google Subject ID | Link Google Sign-In identity to your account | Only for Google Sign-In users |
| Apple Subject ID | Link Apple Sign-In identity to your account | Only for Apple Sign-In users |
2.2 Anonymous & Device Data
Collected for all users, including anonymous sessions:
- Device identifier — iOS IDFV (Identifier for Vendor) or Android ID. Used to maintain anonymous sessions and enforce daily usage quotas. This identifier is NOT used to track you across other apps or websites.
- Platform — iOS or Android.
- App version — to provide version-appropriate features and support.
- Locale / language preference — to display the App in your preferred language.
2.3 Health & Fitness Data
All health data in SlayCal is self-reported by you during the onboarding survey or subsequent profile updates. We do not access Apple HealthKit, Google Fit, or any other health platform API.
Data collected via the onboarding survey includes:
- Gender, age, height, current weight, and goal weight
- Activity level and fitness level
- Health conditions (e.g., diabetes, hypertension — as disclosed voluntarily)
- Physical limitations or injuries
- Workout and exercise preferences
- Goal type (e.g., weight loss, muscle gain) and target timeline
- Raw survey responses and survey completion timestamp
Health conditions and physical limitations are considered special category (sensitive) personal data under GDPR. We process this data solely to generate personalised nutrition and fitness recommendations at your explicit request. You may delete this data at any time from within the App or by contacting us.
2.4 Dietary Preferences
- Dietary style (e.g., vegan, vegetarian, keto, halal)
- Food allergens and intolerances
- Cuisine preferences
- Preferred meals per day
- Maximum cook time preference
2.5 Nutrition & Lifestyle Logs
- Food log entries — meal name, macronutrients (calories, protein, carbohydrates, fat), quantity, meal type (breakfast/lunch/dinner/snack), and timestamp.
- Meal images — photos taken with your camera or selected from your photo library. Important: meal images are uploaded to Firebase Storage and are accessible to anyone with the URL. Do not photograph anything other than food you intend to log.
- Water intake logs — volume (ml) and timestamp per entry.
- Weight logs — body weight entries with date and unit (kg/lb).
- Goal plans — daily calorie target, macro targets (protein/carbs/fat), water goal, and weight goal.
2.6 Subscription & Payment Data
- Subscription tier (free, premium, or trial)
- Trial period start and end dates
- Apple App Store transaction ID and product ID (iOS in-app purchases)
We do not collect, store, or process credit card numbers, bank account details, or any other payment credentials. All payment transactions are handled exclusively by Apple App Store or Google Play Store, governed by their respective privacy policies.
2.7 Push Notification Data
- Firebase Cloud Messaging (FCM) token — a device-specific token used to deliver push notifications.
- FCM token platform (iOS / Android).
2.8 Usage Data
- Feature usage quotas — daily counters for AI meal scans, food recognition requests, and AI recipe generations. Stored transiently in Redis and reset every 24 hours.
- JWT refresh tokens — session tokens stored server-side to maintain authenticated sessions securely.
We do not use any third-party analytics SDK (e.g., Amplitude, Segment, Mixpanel, or Firebase Analytics). Usage data is limited to the quota counters described above and is not used for behavioural profiling.
03 How We Use Your Information expand_more
| Purpose | Data Used | Legal Basis (GDPR) |
|---|---|---|
| Account management — create, authenticate, and manage your account | Account information, device identifier | Contract performance (Art. 6(1)(b)) |
| Nutrition & calorie tracking — log meals, water, and weight; display daily goals and progress | Food logs, water logs, weight logs, goal plans | Contract performance (Art. 6(1)(b)) |
| AI food image analysis — identify food from meal photos and return nutrition data | Meal images, text prompts (sent to OpenAI) | Contract performance (Art. 6(1)(b)) |
| AI recipe generation — generate personalised recipes based on your preferences | Dietary preferences, health profile, text prompts (sent to OpenAI) | Contract performance (Art. 6(1)(b)) |
| Personalisation — tailor calorie goals, macro targets, and recommendations | Health & fitness data, dietary preferences | Explicit consent (Art. 6(1)(a) + Art. 9(2)(a) for health data) |
| Push notifications — send reminders, hydration alerts, and meal logging prompts | FCM token | Consent (Art. 6(1)(a)) |
| Subscription management — process and validate in-app purchases | Subscription & payment data | Contract performance (Art. 6(1)(b)) |
| Usage quota enforcement — enforce daily feature limits per subscription tier | Device identifier, usage counters | Legitimate interests (Art. 6(1)(f)) |
| Security & fraud prevention — detect, prevent, and investigate abuse | Device identifier, session tokens | Legitimate interests (Art. 6(1)(f)) |
| Legal compliance — comply with applicable laws and regulations | As required by law | Legal obligation (Art. 6(1)(c)) |
We do not use your information for targeted advertising, behavioural profiling, or any purpose other than those described above.
04 How We Share Your Information expand_more
We do not sell your personal data. We do not rent, trade, or share your personal data with third parties for advertising or marketing purposes.
We share data only with the following service providers, strictly to operate the App:
| Service | Provider | Purpose | Data Shared | Privacy Policy |
|---|---|---|---|---|
| AI Analysis | OpenAI (GPT-4o-mini) | Food image recognition; recipe generation | Meal image URLs; text prompts describing meals or recipe requests | openai.com/privacy |
| Image Storage | Firebase Cloud Storage (Google) | Store user-uploaded meal and recipe images | Image files; publicly accessible via Storage URL | firebase.google.com/support/privacy |
| Push Notifications | Firebase Cloud Messaging (Google) | Deliver push notifications to your device | FCM device token; notification content | firebase.google.com/support/privacy |
| Google Sign-In | Google OAuth (google-auth-library) | Verify Google Sign-In identity tokens | Google user profile: email, name, Subject ID | policies.google.com/privacy |
| Apple Sign-In | Apple Inc. | Verify Apple identity tokens via Apple's JWKS endpoint | Apple user ID; optional email and name | apple.com/legal/privacy |
| Primary Database | MongoDB Atlas | Store all user account and app data | All user data described in Section 2 | mongodb.com/legal/privacy-policy |
| Caching | Redis | Temporary storage of daily feature usage quotas | Per-user daily counters (scan, recognition, recipe); reset every 24 hours | Infrastructure only; no independent privacy policy |
AI-Processed Data Notice
When you use the AI meal scanner or AI recipe features, your food images and text prompts are transmitted to OpenAI's API for processing. This data is subject to OpenAI's Privacy Policy and Terms of Service in addition to this policy. OpenAI may retain API inputs and outputs for safety monitoring in accordance with their own data usage policies. We encourage you to review OpenAI's privacy policy.
Other Disclosures
We may also disclose your information:
- Legal requirements — if required by law, court order, or government authority.
- Protect rights — to enforce our Terms of Service or protect the rights, property, or safety of MirrorBit AI, our users, or the public.
- Business transfers — in connection with a merger, acquisition, or sale of all or a portion of our assets. You will be notified via email or a prominent in-app notice prior to your data being transferred and becoming subject to a different privacy policy.
- With your consent — for any other purpose with your explicit consent.
05 Data Storage & Security expand_more
Where We Store Data
- MongoDB Atlas — primary database for all user account data, health profiles, food logs, and settings. Hosted on secure, managed cloud infrastructure.
- Firebase Cloud Storage (Google) — stores meal images and AI-generated recipe images. Images are stored under unique paths and are publicly accessible via URL once uploaded.
- Redis — in-memory cache for daily usage quota counters. Data is ephemeral and automatically expires every 24 hours.
Security Measures
- Encryption in transit — all data transmitted between the App and our servers uses HTTPS/TLS encryption.
- Password hashing — passwords are hashed with bcrypt (industry-standard adaptive hashing) before storage. We never store passwords in plain text.
- JWT authentication — session management uses short-lived JSON Web Tokens (JWT) with server-side refresh token rotation.
- Access controls — database access is restricted to authorised server-side services only, with role-based permissions.
- No cross-app tracking — NSPrivacyTracking is set to
false; we do not track users across apps or websites.
Meal image accessibility: Meal photos you take or upload are stored in Firebase Cloud Storage and are accessible to anyone who has the specific URL. While URLs are not listed or indexed, they are technically public. Do not upload images containing sensitive personal information.
No method of transmission over the Internet or electronic storage is 100% secure. While we use commercially reasonable security measures, we cannot guarantee absolute security. If you discover a security vulnerability, please report it to [email protected].
06 Data Retention expand_more
| Data Category | Retention Period | Notes |
|---|---|---|
| Account information | Until account deletion | Deleted within 30 days of account deletion request |
| Health & fitness profile | Until account deletion or user removes data | Can be cleared in-app at any time |
| Food, water & weight logs | Until account deletion or user deletes entries | Individual entries can be deleted in-app |
| Meal images (Firebase Storage) | Until account deletion | Deleted from Firebase Storage within 30 days |
| Daily usage quota counters | 24 hours (Redis TTL) | Ephemeral — automatically expires |
| JWT refresh tokens | Until expiry or logout | Invalidated server-side upon logout |
| Subscription records | 7 years | Retained for tax and financial compliance |
| Anonymous session data (device ID) | 90 days of inactivity | Purged after 90 days without activity |
Account Deletion
You may delete your account at any time from Settings → Account → Delete Account within the App, or by emailing [email protected].
Upon account deletion:
- Your personal data is permanently deleted from our primary database within 30 days.
- Meal images are removed from Firebase Storage within 30 days.
- Usage quota counters expire automatically within 24 hours.
- Backup copies may persist for up to 90 days in automated backup systems, after which they are also purged.
- Financial transaction records are retained for the legally required period (up to 7 years) with all personal identifiers anonymised where possible.
07 Your Privacy Rights expand_more
Depending on your location, you may have the following rights regarding your personal data. See Section 15 (California) and Section 16 (Europe) for jurisdiction-specific rights.
Right to Access
Request a copy of the personal data we hold about you.
Right to Rectification
Request correction of inaccurate or incomplete data.
Right to Erasure
Request deletion of your personal data ("right to be forgotten").
Right to Portability
Receive your data in a structured, machine-readable format.
Right to Object
Object to processing based on legitimate interests or for direct marketing.
Right to Restriction
Request that we restrict processing of your data in certain circumstances.
Right to Withdraw Consent
Withdraw consent at any time for consent-based processing (e.g., push notifications, sensitive health data).
Right to Lodge a Complaint
Lodge a complaint with your local data protection authority.
To exercise any of these rights, contact us at [email protected]. We will respond within 30 days (or within the timeframe required by applicable law). We may need to verify your identity before processing your request.
08 Children's Privacy expand_more
SlayCal is not intended for children under the age of 13 (or under 16 in the European Economic Area and the United Kingdom, where a higher age threshold applies under GDPR). We do not knowingly collect personal data from children below these ages.
Our App is rated 4+ on the Apple App Store and the appropriate maturity rating on Google Play. However, we rely on users to confirm they meet the minimum age requirement during account registration.
If you are a parent or guardian and believe your child has provided personal information to us, please contact us immediately at [email protected]. We will delete any such information promptly upon verification.
If we discover that we have inadvertently collected personal data from a child under the applicable minimum age, we will delete that information immediately and terminate the associated account.
09 International Data Transfers expand_more
MirrorBit AI operates globally. Your personal data may be transferred to, and processed in, countries other than the country in which you reside. In particular, our servers are hosted via MongoDB Atlas, and we use cloud services from Google (Firebase) and OpenAI, which may process data in the United States and other countries.
These countries may have data protection laws that differ from those in your country. Where we transfer personal data from the European Economic Area (EEA), United Kingdom (UK), or Switzerland to third countries, we ensure that appropriate safeguards are in place, including:
- Standard Contractual Clauses (SCCs) — approved by the European Commission, used with relevant service providers.
- Adequacy decisions — where the European Commission has recognised the recipient country as providing adequate protection.
- Data Processing Agreements — entered into with all sub-processors who handle EU personal data.
By using SlayCal, you acknowledge and consent to the transfer of your information to countries outside your country of residence, including the United States, as described in this policy.
10 Local Storage (AsyncStorage) & Cookies expand_more
SlayCal is a native mobile application. We do not use web cookies. Instead, the App uses React Native AsyncStorage — a local, on-device key-value storage system — to persist the following data locally on your device:
| Key | Data Stored | Purpose |
|---|---|---|
auth_token | JWT access token | Maintain authenticated session between app launches |
refresh_token | JWT refresh token | Silently refresh expired access tokens |
language | Selected locale (e.g., "en", "tr") | Display the App in your preferred language |
theme | "light" or "dark" | Remember your display theme preference |
onboarding_complete | Boolean flag | Skip the onboarding survey if already completed |
This data is stored entirely on your device and is not transmitted to our servers (with the exception of tokens, which are validated server-side). Uninstalling the App clears all locally stored data.
11 Push Notifications expand_more
With your permission, SlayCal sends push notifications to remind you to log meals, drink water, check your daily progress, and receive motivational tips.
Push notifications are delivered via Firebase Cloud Messaging (FCM). To send notifications, we store your FCM device token on our servers.
How to Opt Out
- iOS: Go to Settings → Notifications → SlayCal and toggle off "Allow Notifications".
- Android: Go to Settings → Apps → SlayCal → Notifications and disable notifications.
- In-App: Go to SlayCal → Settings → Notifications to manage individual notification types.
Disabling notifications will not affect your ability to use the core features of the App. Upon opt-out, we will stop sending notifications, though the FCM token may remain stored on our servers until the next app session when it is cleared.
12 Device Permissions expand_more
| Permission | Platform | Purpose | Required? |
|---|---|---|---|
| Camera | iOS & Android | Capture meal photos for AI food recognition | Required for AI scan feature |
| Photo Library / Media & Files | iOS | Select existing meal photos from your photo library | Optional — alternative to Camera |
| Storage (READ/WRITE) | Android | Read and write meal image files on device | Required for image handling on Android |
| Internet | Android | Required for all network operations | Required |
| Vibration | Android | Haptic feedback for notifications | Optional |
| Push Notifications | iOS & Android | Deliver reminders and alerts | Optional |
Microphone: SlayCal does not request or use microphone access. The microphone permission is explicitly disabled in the App's privacy manifest. We do not record audio of any kind.
HealthKit / Google Fit: SlayCal does not access Apple HealthKit or Google Fit. All health metrics (weight, activity level, etc.) are manually entered by you.
13 Changes to This Policy expand_more
We may update this Privacy Policy from time to time. When we make material changes, we will:
- Update the "Last Updated" date at the top of this policy.
- Send a push notification or in-app alert to registered users if the changes are significant.
- For changes that materially affect how we process special category data (health data), we will request renewed consent before processing.
Your continued use of SlayCal after the effective date of any changes constitutes your acceptance of the updated policy. If you do not agree to the updated policy, you must stop using the App and may delete your account.
Previous versions of this policy are available upon request by emailing [email protected].
14 Contact Information expand_more
For any questions, concerns, or requests regarding this Privacy Policy or your personal data, please contact us at:
MirrorBit AI
Developer of SlayCal
We aim to respond to all privacy-related inquiries within 30 days. For urgent matters, please include "URGENT" in your email subject line.
15 California Privacy Rights (CCPA / CPRA) expand_more
If you are a California resident, you have specific rights under the California Consumer Privacy Act (CCPA), as amended by the California Privacy Rights Act (CPRA).
Categories of Personal Information Collected
In the past 12 months, we have collected the following categories:
| Category | Examples | Collected? |
|---|---|---|
| Identifiers | Email, device ID, Apple/Google Subject ID | ✓ Yes |
| Personal Records | Name, account information | ✓ Yes (optional) |
| Protected Classifications | Age, gender | ✓ Yes (self-reported) |
| Health & Medical Information | Weight, health conditions, fitness data | ✓ Yes (self-reported) |
| Commercial Information | Subscription tier, transaction IDs | ✓ Yes |
| Internet / Network Activity | FCM token, usage quotas | ✓ Yes |
| Geolocation Data | Precise location | ✗ No |
| Biometric Data | Fingerprints, facial scans | ✗ No |
| Sensory Data | Audio recordings | ✗ No |
| Inferences | Calorie goals and nutrition plans derived from profile | ✓ Yes |
Your California Rights
Right to Know
Request disclosure of what personal information we collect, use, disclose, and sell about you.
Right to Delete
Request deletion of your personal information (subject to certain exceptions).
Right to Correct
Request correction of inaccurate personal information we maintain about you.
Right to Opt-Out of Sale/Sharing
We do NOT sell or share your personal information with third parties for cross-context behavioral advertising.
Right to Limit Sensitive Data Use
Request that we limit the use of your sensitive personal information (e.g., health data) to necessary purposes.
Right to Non-Discrimination
We will not discriminate against you for exercising your CCPA rights.
We do not sell personal information as defined under CCPA/CPRA. We do not share personal information for cross-context behavioral advertising. California residents may still submit a "Do Not Sell or Share My Personal Information" request to [email protected], which we will honour.
How to Exercise Your California Rights
Submit a verifiable consumer request by:
- Emailing [email protected] with the subject line "California Privacy Request"
- Using the in-app account deletion feature (Settings → Account → Delete Account)
We will respond to verifiable requests within 45 days. If we need additional time (up to 90 days), we will notify you of the extension in writing. You may designate an authorised agent to submit requests on your behalf.
Shine the Light
California Civil Code Section 1798.83 ("Shine the Light") allows California residents to request information once per year about the categories of personal information (if any) we disclosed to third parties for their direct marketing purposes during the preceding calendar year. We do not disclose personal information to third parties for direct marketing purposes.
16 European Privacy Rights (GDPR) expand_more
If you are located in the European Economic Area (EEA), the United Kingdom (UK), or Switzerland, the General Data Protection Regulation (GDPR) (or equivalent UK/Swiss law) applies to our processing of your personal data.
Data Controller
MirrorBit AI is the data controller for your personal data. For the purposes of GDPR, your data is controlled by:
MirrorBit AI
Email: [email protected]
Website: slaycal.app
Legal Bases for Processing
We process your personal data on the following legal bases under GDPR Article 6 (and Article 9 for special category data):
- Contract performance (Art. 6(1)(b)) — processing necessary to provide the App's core features (account management, food logging, AI analysis).
- Legitimate interests (Art. 6(1)(f)) — security, fraud prevention, and usage quota enforcement, where our interests do not override your fundamental rights.
- Consent (Art. 6(1)(a)) — push notifications and optional personalisation features. You may withdraw consent at any time.
- Legal obligation (Art. 6(1)(c)) — financial record retention and regulatory compliance.
- Explicit consent for special category data (Art. 9(2)(a)) — health conditions, physical limitations, and other sensitive health data provided during onboarding.
Your GDPR Rights
Under GDPR, you have the right to:
- Access your personal data (Art. 15)
- Rectify inaccurate data (Art. 16)
- Erasure ("right to be forgotten") (Art. 17)
- Restrict processing in certain circumstances (Art. 18)
- Data portability in a machine-readable format (Art. 20)
- Object to processing based on legitimate interests or for direct marketing (Art. 21)
- Withdraw consent at any time without affecting lawfulness of prior processing (Art. 7(3))
- Not be subject to solely automated decision-making that produces significant legal effects (Art. 22)
How to Exercise Your GDPR Rights
Submit requests to [email protected]. We will respond within 30 days (extendable to 3 months for complex requests with notice). We may request proof of identity before fulfilling your request.
Right to Lodge a Complaint
You have the right to lodge a complaint with your local supervisory authority. For EU residents, find your national DPA at edpb.europa.eu. For UK residents, contact the Information Commissioner's Office (ICO).
Automated Decision-Making
SlayCal generates personalised calorie goals and nutrition targets based on your self-reported health profile. While these are generated algorithmically (including via AI), they do not produce legal or similarly significant effects — they are nutritional suggestions only. You retain full control and may adjust or override any generated recommendations within the App.
Questions about your privacy?
Contact us at [email protected] — we respond within 30 days.