Privacy Policy
Last updated: 8 October 2026
Introduction
This Privacy Policy explains what information the ComicFrame mobile app ("ComicFrame", "we", "our" or "us") collects, why we collect it, who processes it on our behalf, and the choices you have. It applies to the ComicFrame app on iOS and Android and to this website. If you have any questions, contact us at admhappread@gmail.com.
Summary
- You do not need an account. We never ask for your name, phone number or postal address.
- The camera is used only to recognise comic covers. The camera image is analysed on your device; photos and video are never saved or uploaded.
- Your collections are stored on our server and linked to a device identifier rather than to your name, so they are kept when you reinstall the app.
- Your reading log and the prices you enter yourself are stored only on your device and are never sent to our server.
- We use PostHog for app analytics and crash reports, and RevenueCat to manage purchases. You can turn analytics off in Settings → Privacy → Share Usage Data.
- You can delete all your data at any time in Settings → Privacy → Delete My Data.
- We do not show ads, we do not track you across other companies' apps or websites, and we do not sell your data.
Information We Collect
Device identifier
The first time you open the app, it creates a device identifier (on iOS, Apple's "identifier for vendor") and registers it with our server, which returns an access token. We use them to link your collections to your device and to protect our service from abuse. They do not reveal your name or contact details. On iOS both are kept in the Keychain, so they remain after you reinstall the app.
Camera and scanning
ComicFrame uses your camera only while the scanner is open. The live camera preview is analysed on your device to find a comic cover and turn it into a numeric fingerprint — a list of numbers that describes the cover. Only this fingerprint is sent to our server, together with your access token, to find the matching issue and its price. Photos and video are never saved or uploaded.
You can turn camera access off at any time in your device settings. The rest of the app keeps working; only scanning stops.
Your collections
When you create collections and add issues, we store the following on our server, linked to your device identifier:
- collection names and icons;
- the issues you add, their quantity, the date added and the edition or variant you chose;
- optional details you enter, such as purchase price, purchase date, grading company, grade and condition.
We use this to show and sync your collections, to calculate their value, and to keep a history of your collection's total value for the portfolio chart. A copy is also stored on your device.
Catalogue, prices and exchange rates
To show issue details, cover images and prices, the app requests them from our servers. Exchange rates for the currency you choose also come from our server. If our server is unavailable, the app requests them from the public Frankfurter exchange-rate service (api.frankfurter.app) instead; that request contains nothing about you beyond what every internet request includes, such as your IP address.
Feedback
If you send feedback from Settings → Share Feedback, we receive your message, the e-mail address if you choose to add one, your device identifier, the app version and the platform. We use this to reply to you and to improve the app.
Analytics and crash reports
We use PostHog (EU cloud) to understand how the app is used and to fix problems. PostHog receives:
- your device identifier, used as a pseudonymous analytics ID that is not linked to your name;
- device and app information: device model, operating system version, app version and build, language and region setting, time zone and the currency you chose;
- app status, such as whether you have Premium, how many collections you have, how many days ago you installed the app and how many times you have opened it;
- events describing how you use the app — for example opening the scanner, finishing a scanning session (how many issues it found, their total estimated value and how long it took), adding an issue, creating or deleting a collection (with the number of issues and their estimated value), choosing an edition or condition, viewing the Premium screen, the plan and price you select, whether a purchase or restore succeeded, setting or removing your own price (without the amount), and how you use the reading log (for example adding comics to Up next or marking one as finished, with rounded counts but without titles, notes, ratings or dates);
- crash and error reports, including technical details such as stack traces.
Analytics are turned on by default. You can turn them off at any time in Settings → Privacy → Share Usage Data; data sent before that stays with PostHog until it expires or until you ask us to delete it.
Like any internet service, PostHog receives your IP address when the app sends data and may use it to estimate an approximate location, such as your country. We do not collect your precise location. Analytics data is not used for advertising and is not combined with data from other companies.
Purchases
Purchases are processed by the Apple App Store or Google Play. We never see or store your payment card details. We use RevenueCat to validate purchases and unlock Premium. RevenueCat receives a random user ID created by the app, your purchase and subscription details (such as the product, price, currency, purchase and renewal dates and store transaction identifiers) and basic device and app information.
On iOS, the app also uses Apple's AdServices attribution: if you installed ComicFrame after tapping an Apple Ads (Apple Search Ads) ad, Apple provides a token that RevenueCat uses to tell us which campaign led to the install. This does not use the advertising identifier (IDFA) and does not track you across other companies' apps or websites.
Server and network data
Our API is delivered through Cloudflare. Our servers and Cloudflare process your IP address and technical request data to deliver the service and to protect it from abuse, for example by limiting the number of requests from one address. If a request fails on our server, the error log may contain the request path and your device identifier.
Information stored on your device
- settings, such as your app language and currency, and which introductory screens you have seen;
- the free scan counter and when it resets;
- which scanned issues have their price hidden until you upgrade;
- when the app last asked you to rate it;
- cached copies of your collections and of exchange rates;
- your reading log: the comics you plan to read, are reading or have finished, the days you mark as read, finish dates, ratings and notes. The reading log is never sent to our server. You can delete it in Settings → Privacy → Clear reading data;
- prices you enter yourself for comics in your collections or in the scanner. They are used only to show values in the app and are never sent to our server; your collections on our server keep the market price.
Some of these values, such as your currency and how many free scans you have used, are also sent with analytics events, as described above. If you export a collection or your reading log, the file is created on your device and goes only where you choose to share it. Collection exports include the prices you entered yourself. Copies you have already shared elsewhere are not removed when you delete your data in the app.
What we do not collect
- no account, name, phone number or postal address;
- no photos or video, and no access to your photo library or contacts;
- no precise location;
- no advertising identifier (IDFA) and no tracking across other companies' apps or websites;
- no advertising and no advertising networks.
How and Why We Use Information
- To provide the app — recognise covers, show issue details and prices, store and sync your collections and keep them after a reinstall. Legal basis: performance of our contract with you.
- To provide Premium — process, validate and restore purchases. Legal basis: performance of our contract with you.
- To improve the app and fix problems — analytics and crash reports. Legal basis: our legitimate interest in a reliable and useful app.
- To keep the service secure — prevent abuse and apply the free usage limits. Legal basis: our legitimate interest.
- To reply to you — answer feedback and requests. Legal basis: our legitimate interest and your request.
- To measure our marketing — install attribution on iOS. Legal basis: our legitimate interest.
- To comply with the law. Legal basis: legal obligation.
The legal bases above apply to users in the European Economic Area, the United Kingdom and other places with similar laws.
Service Providers
- PostHog — app analytics and crash reports (EU cloud).
- RevenueCat — purchase validation and subscription management.
- Apple and Google — app distribution and payments; on iOS also AdServices install attribution.
- Cloudflare — network delivery and security for our API.
- Hosting providers — the servers that run our API, store collections and serve cover images.
- Frankfurter (api.frankfurter.app) — backup source of exchange rates; it receives no app data.
We share information only with these providers, and only as far as they need it to provide their service. Every third party with whom we share user data, including the analytics and purchase services listed above, provides the same or equal protection of user data as stated in this Privacy Policy and as required by the App Store Review Guidelines.
We do not sell, rent or trade your information, and we do not share it with advertisers. We may also disclose information if the law requires it, to protect our rights or the safety of our users, or as part of a sale or transfer of the app, in which case this policy continues to apply to your information.
International Transfers
PostHog processes our analytics in the European Union. Other providers, such as RevenueCat, Cloudflare, Apple and Google, may process data in other countries, including the United States. Where the law requires it, these transfers rely on safeguards offered by the providers, such as the European Commission's Standard Contractual Clauses.
Data Retention
- Your collections, their value history and your device record are kept while you use the app. Collections you delete in the app are deleted from our server, and Settings → Privacy → Delete My Data deletes everything we store about your device.
- Feedback is kept as long as we need it to handle your message and improve the app.
- Server error logs are kept only as long as needed for troubleshooting.
- Analytics and crash data are kept for up to 12 months and then deleted, or deleted earlier if you ask.
- Purchase records are kept by RevenueCat, Apple and Google as long as needed to provide your purchases and to meet legal requirements.
- Information stored on your device is removed when you uninstall the app. Uninstalling does not delete the information stored on our server, and on iOS the device identifier in the Keychain may remain after you uninstall the app.
Your Choices and Rights
- Camera — turn camera access on or off at any time in your device settings.
- Collections — edit or delete collections in the app at any time; deleting a collection also deletes it from our server.
- Analytics — turn off Settings → Privacy → Share Usage Data at any time to stop the app from sending analytics and crash reports.
- Reading log — delete it at any time in Settings → Privacy → Clear reading data. This also removes its backup copies and exported files from your device.
- Deleting all your data — use Settings → Privacy → Delete My Data in the app. This immediately deletes your collections, value history, feedback and device record from our server (server error logs are kept without your device identifier) and clears the app's data on your device, including your reading log, your own prices and exported files. Analytics data linked to your device identifier is deleted when it expires, after up to 12 months; e-mail us if you want it deleted sooner. Deleting your data does not cancel a subscription, which you manage in your Apple ID or Google Play settings.
- Your rights — depending on where you live, you may have the right to access, correct or delete your data, to receive a copy of it, to object to or restrict its processing (including analytics), and to complain to your local data protection authority.
Because we do not know your name, we may ask you to send your request from the app so we can match it to your device identifier.
Children
ComicFrame is intended for a general audience and is not directed at children under 13. We do not knowingly collect personal information from children. If you believe a child has sent us personal information, for example in feedback, contact us and we will delete it.
Security
Data sent between the app and our servers is encrypted in transit (HTTPS), access tokens are stored on our server only in hashed form, and we keep the information we hold to what the app needs. No method of transmission or storage is completely secure, so we cannot guarantee absolute security.
This Website
This website does not use cookies, analytics or advertising. It is hosted on GitHub Pages and loads its fonts from Google Fonts; like any web server, these services receive your IP address and browser information when you visit.
Changes to This Policy
We may update this Privacy Policy, for example when the app changes. We will post the new version on this page with a new "Last updated" date and point out important changes here.
Contact Us
If you have any questions about this Privacy Policy or your data, contact us:
- E-mail: admhappread@gmail.com
- Website: https://comicframe.happread.com
See also our Terms of Service. Comic titles, characters, logos and cover images are the property of their respective publishers and rights holders. ComicFrame is not affiliated with, endorsed or sponsored by them.