Privacy Policy
Last updated: · By the QuickCalo Team (about page in Turkish)
Short answer
QuickCalo needs no account and keeps your logs on your phone. Photos or text sent for analysis are not written to storage on the server; only the result stays in a cache for 1 hour. The app uses Firebase Analytics for usage statistics, Crashlytics for crash reports and RevenueCat for subscriptions, and shows no ads. Details and your rights are below.
Who is the data controller?
The data controller for the personal data covered by this policy is QuickCalo Analysis ("QuickCalo", "we"). You can reach us at [email protected].
This policy covers the QuickCalo mobile app (iOS and Android, version 1.0.37) and the quickcalo.app website.
What data do we process, and what do we not?
QuickCalo does not require an account; it does not ask for your email address or phone number and does not request location permission. What is processed and where:
| Data | Where | Why |
|---|---|---|
| Meal logs, calorie and protein goal, weight and water logs, height, birth year, sex, activity level, goal weight, optional display name, language and notification preferences | Only on your phone | To run the app |
| The photo you take or the text you type for analysis | QuickCalo server (Cloudflare) and the Google Gemini API; not written to storage on the server | Calorie and protein estimate |
| Analysis result (food name, calories, protein, grams) | Server cache for 1 hour | To return the same result for the same input |
| Request details and a summary of the analysis result (food names, calories, grams) | Cloudflare Workers Logs, up to 7 days | Debugging and security |
| IP address | Cloudflare (rate limiting) | To prevent abuse |
| Usage events and pseudonymous identifiers | Firebase Analytics (Google) | To improve the app and measure purchase conversions |
| Crash and error reports | Firebase Crashlytics (Google) | To find and fix bugs |
| Subscription status and purchase information | RevenueCat, App Store, Google Play | To verify Premium access |
The app shows no ads and contains no advertising SDK.
What happens to my photos and text descriptions?
Your photo and the text you type are used only to estimate calories; the QuickCalo server does not save them to a database or file storage.
- On your phone: Photos can only be taken with the app's camera; they are not saved to your gallery and are not attached to your meal logs. Before sending, the photo is resized to about 320–512 pixels and re-encoded as JPEG, which removes EXIF data such as location. The camera file may remain in the app's temporary folder until the operating system clears it.
- On the server: The request goes over HTTPS to the QuickCalo server (Cloudflare Workers) and is forwarded to the Google Gemini API. To return the same result for the same input, the server uses a one-way digest (SHA-256) of the input as a key and caches only the result for 1 hour; it does not cache the photo or the text.
- Server logs: The server's logging feature (Cloudflare Workers Logs) is on. Logs contain request details and a summary of the analysis result (food names, calories, grams); the photo itself and the text you typed are not logged. Logs are kept by Cloudflare for at most 7 days and then deleted.
- Google Gemini: The Gemini API is used on the paid tier. Under the Gemini API terms, Google does not use content and responses submitted on this tier to improve its products; it logs them for a limited period solely to detect and prevent abuse and for legal obligations.
What is stored on my phone, and is it backed up?
Your meal logs, goals, weight and water logs, profile details and preferences are kept in the app's local storage (shared preferences); QuickCalo does not upload them to a server.
- Android: App data is excluded from Google's automatic backup (backup is disabled).
- iPhone: App data is not excluded from backups; if iCloud Backup or computer backup is on, this data may be included in Apple's device backup.
- Dietitian report (Premium): The PDF is generated on your phone and shared only with the app or person you choose.
What is sent for analytics and crash reporting?
QuickCalo uses Firebase Analytics to understand how the app is used and Firebase Crashlytics to find bugs. This data is not anonymous; it is linked to pseudonymous identifiers.
- Identifiers and device info: Random identifiers such as the app instance ID; technical details such as device model, operating system, app version and language. On Android, the Advertising ID may also be collected if your device settings allow it. On iPhone, the app does not ask for tracking permission (ATT).
- Usage events: Events such as app open, meal saved (with meal type and calorie value), the chosen daily calorie goal, Premium screen views and purchase steps, notification opens, and recipe views and shares.
- Plan screen: Goal type (lose, maintain or gain), estimated duration and, when no estimate can be shown, a general reason code (e.g. under 18, pregnancy, a goal below the healthy range).
- Not sent: Weight, height, age, sex, food names, photos and the text you type are not added to analytics events.
- Ad measurement: The purchase event may be shared with Google Ads as a conversion to measure the effectiveness of the app's Google Ads campaigns.
- Crash reports: If the app crashes, or an analysis request cannot reach the server after a retry, Crashlytics receives the error type, device and OS details and an installation ID.
There is currently no in-app setting to turn analytics off. On Android, you can reset or delete your Advertising ID in your device settings.
How are subscription and payment details handled?
Payments are taken by the App Store or Google Play; QuickCalo does not receive your card details. RevenueCat is used to verify subscription status: it processes a randomly generated app user ID, the store's purchase information and basic device details. "Restore Purchases" in the app re-activates a subscription on the same store account.
How do notifications work?
Reminders and summaries are local notifications scheduled on your phone; no notification server or push service is used. The app asks for notification permission, and you can turn notifications off in the app's Settings or in your phone settings.
Which third-party services do we use?
QuickCalo uses the services below; each processes data under its own privacy policy.
| Service | Purpose | Data | Privacy policy |
|---|---|---|---|
| Cloudflare | Analysis server (Workers), result cache, rate limiting; website hosting and cookieless visit statistics | Photo or text (transient), analysis result, IP address | Cloudflare |
| Google Gemini API | Calorie and protein estimate | Photo or text | Gemini API terms, Google |
| Firebase Analytics | Usage statistics, conversion measurement | Usage events, pseudonymous identifiers, device info | Firebase |
| Firebase Crashlytics | Crash and error reports | Error details, device info, installation ID | Firebase |
| Google Ads | Measuring purchase conversions | Purchase event | |
| RevenueCat | Verifying subscription status | App user ID, purchase information, device info | RevenueCat |
| Apple App Store | Payment, subscription, refunds, rating prompt, version check | Purchase information on your Apple account | Apple |
| Google Play | Payment, subscription, refunds, rating prompt, version check | Purchase information on your Google account |
The app sends a version query to the App Store or Google Play to check whether a newer version is available.
Is my data transferred abroad?
Yes. Servers of Cloudflare, Google (Gemini API, Firebase, Google Ads) and RevenueCat may be located outside your country, notably in the United States; analysis requests, analytics and subscription data are processed on their infrastructure. This transfer is necessary to provide the app's analysis and subscription features.
How long is data kept?
- Data on your phone: Until you delete it or uninstall the app.
- Analysis result cache: 1 hour.
- Photo and text: Not written to storage on the QuickCalo server; processed only during the request. On the paid tier, Google keeps them for a limited period solely for abuse detection.
- Server logs (Cloudflare Workers Logs): At most 7 days.
- Crashlytics: According to Firebase, crash data and related identifiers are kept for 90 days.
- Firebase Analytics: Event data and user data for 14 months.
- RevenueCat and the stores: Subscription records are kept as long as the service and legal obligations require.
How do I delete my data?
- Data on your phone: There is no separate reset option in the app. Uninstalling the app deletes all QuickCalo data from your phone. On Android you can also use Settings > Apps > QuickCalo > Storage > Clear data.
- iPhone backups: If app data was included in an iCloud or computer backup, you can manage backups in your phone or iCloud settings.
- Analytics, crash and subscription data: Because there is no account, this data does not directly identify you. If you want it deleted, email [email protected]; we will request deletion of the data we can locate with the relevant services.
- Subscription: Uninstalling the app does not cancel your subscription; cancel it in the App Store or Google Play subscription settings.
What are my rights under GDPR and Turkish KVKK?
Under Article 11 of Turkey's Personal Data Protection Law No. 6698 (KVKK), you have the right to learn whether your personal data is processed and to request information about it, to learn the purpose of processing and whether it is used accordingly, to know the third parties in Turkey or abroad to whom it is transferred, to request correction of incomplete or inaccurate data, to request deletion or destruction, to request that these actions be notified to third parties, to object to a result against you arising solely from automated analysis, and to claim compensation for damage caused by unlawful processing.
If you are in the European Economic Area or the United Kingdom, under the GDPR you have the rights of access, rectification, erasure, restriction of processing, data portability and objection, and you may lodge a complaint with your local data protection authority. In Turkey, the authority is the Personal Data Protection Authority (KVKK).
You can send requests to [email protected]. Since there is no account, telling us which device and app version you use helps us process your request.
Is QuickCalo meant for children?
QuickCalo is not directed at children under 13, and we do not knowingly collect data from them. For users under 18, the app does not show a personal calorie suggestion or goal date; we recommend they plan their nutrition with a professional.
What data does this website process?
quickcalo.app is hosted on Cloudflare Pages. Visit statistics use Cloudflare Web Analytics, which does not use cookies; the site has no advertising or tracking cookies. Cloudflare processes technical data such as IP address and browser details to serve and secure the site. The only JavaScript on the site is the download button that opens the right store for your phone.
What happens if this policy changes?
When a change in the app affects how data is processed, we update this policy and the "Last updated" date at the top of the page.
Who can I contact about privacy?
For any privacy question or request, email [email protected].
Sources
- Firebase – Privacy and Security — Crashlytics retention period
- Gemini API Additional Terms of Service
- Turkish Personal Data Protection Authority (KVKK)
Download QuickCalo
Free to download for iPhone (iOS 15.0 or later) and Android phone (Android 7.0 or later).
