Privacy Policy

Last updated: March 29, 2026

Jaini is a lightweight, privacy-respecting tool. This page explains what data is collected when you use the app, how it is used, and your rights.

Camera access and video frames

Camera frames are processed entirely on your device. When you use the camera scanner, the video stream from your camera is decoded locally in your browser using the ZXing barcode library. No camera images, video frames, or screenshots are ever sent to our servers. The camera feed is used only to detect barcode numbers, and is never stored or transmitted.

Camera access is only requested after you explicitly tap "Scan with camera." If you deny camera permission or stop the camera, no camera data is accessed at any point.

What happens when you scan a barcode

When a barcode is detected or you enter one manually, Jaini sends the following to our API server:

Account and sign-in

Jaini uses Google Sign-In (via Firebase Authentication) to provide personalized features like saved favorites and scan history. When you sign in, we collect your name, email address, and profile photo URL from your Google account. This information is stored in our database and used to:

You can sign out at any time. Email preferences can be changed from within the app. You may request account deletion by contacting hello@swapncore.com.

Anonymous client ID

A random UUID is generated the first time you use Jaini and stored in your browser's localStorage under the key JAIN_CLIENT_ID. This ID has no personal information attached to it. It is used solely for rate-limiting repeated requests. You can clear it at any time by clearing your browser's site data for this domain.

Server-side logging

Our API server may log standard request information including the barcode queried, the timestamp, and your IP address. This is standard practice for operating a web service. Logs are used for debugging and abuse prevention and are not shared with third parties.

Analytics

Jaini does not currently use third-party analytics services (e.g. Google Analytics). If this changes, this policy will be updated before any analytics are deployed.

For aggregate analytics purposes (country and city-level usage statistics), your IP address may be sent to a third-party geolocation service (ipwho.is) to resolve approximate geographic location. Only coarse location data (country, city) is retained; your full IP address is not stored by Jaini after the lookup.

Cookies

Jaini does not use cookies. The anonymous client ID described above is stored in localStorage, not in a cookie.

Voluntary reports and submissions

If a product is not found in our database, you may photograph the ingredient list and submit it for review. Submitted photos and associated barcode data are stored on our servers for the purpose of expanding our product database. Photos are reviewed by administrators and may be deleted after processing. Your user ID is associated with submissions to prevent abuse.

Children

Jaini is not directed at children under 13. We do not knowingly collect any information from children.

Your rights (EU / UK / California users)

Because Jaini collects minimal data and does not link barcodes to any identified person, most data protection rights (access, erasure, portability) have limited practical application. However, if you wish to request deletion of any logs associated with your IP address, or have any other privacy concern, please contact us at hello@swapncore.com. We will respond within 30 days.

Third-party data sources

Jaini retrieves product ingredient data from third-party food databases. Jaini does not control how those databases collect or manage their data. When we display product data, we are displaying data from those sources.

Changes to this policy

If we make material changes to this privacy policy, we will update the "Last updated" date at the top of this page. Continued use of Jaini after changes constitutes acceptance of the updated policy.

Contact

For privacy questions or data requests: hello@swapncore.com

Get the App