Privacy Policy
This Privacy Policy describes how LibLatch (“we,” “us,” or “the app”) handles information when you use the LibLatch mobile application and related services. By using LibLatch, you agree to this policy. If you do not agree, please do not use the app.
Summary
LibLatch helps you save books and check availability at public libraries (currently New York and San Francisco). We do not sell your data, show ads, or use third-party analytics or advertising trackers in the app.
- No account required — the app uses a random identifier stored on your device.
- Location is optional — used only to sort nearby library branches while you use the app.
- Social import — URLs you paste (and related public post content) are processed to detect book titles.
- On-device vision — photos and videos you choose may be analyzed on your iPhone using Apple’s Vision framework.
- Backend processing — book data are stored on a server you or the operator configures (see “Where data are stored”).
Information we collect
1. Device identifier (anonymous user ID)
When you first open LibLatch, the app generates a random UUID and stores it on your device. This ID is sent to the LibLatch backend with API requests so your saved books can be retrieved. It is not linked to your Apple ID, email, or phone number unless you contact us separately.
You can view this ID in Settings → Account → User ID.
2. Your book shelf
When you add or import books, we store information such as:
- Title, author, ISBN (when available)
- Cover image URL
- Tags / categories you apply
- Source of the entry (manual, Instagram, TikTok, etc.)
- Library availability status (when looked up)
- Notes or metadata needed to display your shelf
The above data are associated with your anonymous user ID on the backend.
3. Location (optional)
If you grant location permission, LibLatch uses your approximate location while the app is in use to:
- Sort NYPL branches by distance
- Show availability relative to your preferred branch
Location coordinates may be sent to the LibLatch backend only as query parameters when fetching branch lists (latitude/longitude). We do not use location for advertising or sell location data.
You may deny location access and pick a library manually. You can also pin a location on the map in the Libraries tab. Location permission can be changed anytime in Settings → Privacy & Security → Location Services → LibLatch.
4. Social import (Share extension, URLs, screenshots)
When you import from Instagram or TikTok:
- Share extension or pasted link: LibLatch sends the URL(s), any caption text from the share sheet, and your anonymous user ID. The backend may fetch public caption text and, for static photo posts, one display image to detect book titles. Carousel slides are not scraped — you screenshot the slide(s) you want.
- Screenshot import: You choose image(s) from your photo library. On-device Apple Vision runs first; images may be sent to the backend for OCR when needed.
We do not access your Instagram or TikTok account or private messages.
5. Photos (optional)
Screenshot import may access photos you choose. LibLatch does not upload your full photo library. You can change Photos access in iOS Settings → Privacy & Security → Photos → LibLatch.
6. App preferences (on device)
Stored locally on your iPhone (and shared with the LibLatch Share extension via App Group):
- Preferred library branch
- Sort preferences (distance / borough)
- Backend API URL (for development or self-hosting)
- Optional pinned map location
Information we do not collect
- No email, password, or social login in the current app
- No advertising identifiers (IDFA) for ad targeting
- No in-app analytics SDKs (e.g. Firebase Analytics, Mixpanel) in the current codebase
- No sale of personal information
- No library-card numbers, PINs, or catalog passwords — “Place hold” only opens your library’s public catalog or app
How we use information
We use collected information to:
- Display and sync your personal book shelf
- Look up book metadata (title, author, cover, ISBN)
- Suggest tags/categories
- Check library catalog availability (public lookups only; holds complete on the library website/app)
- Sort branches by distance when you allow location
- Process social post imports you initiate
We do not use your data for targeted advertising. We do not place holds on your behalf or store library credentials.
Third-party services
LibLatch and its backend may contact these services to provide functionality:
| Service | Purpose | Data sent |
|---|---|---|
| LibLatch backend | Save shelf, import, library lookups | User ID, book data, import URLs, optional lat/lng |
| Supabase (optional) | Database hosting for shelves | User ID, book records |
| Google Books API | Book metadata, covers, categories | Search queries, ISBNs |
| Open Library | Book metadata, covers | Search queries, ISBNs |
| NYPL / SFPL catalogs (public) | Branch list, availability | ISBNs, branch queries |
| Anthropic Claude (optional) | Tag suggestions; legacy eval | Book title/author context |
| Instagram / TikTok (public URLs) | Fetch public caption / single post image | URLs you submit |
Each third party has its own privacy policy. Anthropic vision is not used in the current production import path.
Where data are stored
- On your iPhone: preferences, anonymous user ID, cached cover images
- On the LibLatch backend: your shelf and import-related data, keyed by anonymous user ID
The default development setup uses a backend on your local network. For App Store release, the operator must run a production backend with appropriate security (HTTPS, access controls, data retention policy). If Supabase is not configured, the backend may use in-memory storage (data can be lost on server restart).
Data retention and deletion
- On device: Delete the LibLatch app to remove local data and generate a new user ID on reinstall.
- On server: Contact us to request deletion of shelf data associated with your user ID, or use an in-app delete flow when available.
We retain data only as long as needed to provide the service unless a longer period is required by law.
Children’s privacy
LibLatch is not directed at children under 13. We do not knowingly collect personal information from children under 13. If you believe a child has provided information, contact us and we will delete it.
Security
We use HTTPS for production API traffic (required for App Store release). No method of transmission or storage is 100% secure; we take reasonable measures to protect data on systems we control.
Your choices and rights
Depending on where you live, you may have rights to access, correct, or delete personal data. Because LibLatch uses an anonymous ID:
- Delete local data: remove the app from your device
- Request server deletion: email us with your User ID from Settings
- Location / photos: manage in iOS Settings → LibLatch
- Stop social import: do not paste URLs; use manual book entry instead
California residents (CCPA/CPRA) and EEA/UK residents (GDPR) may have additional rights. Contact us at the email above.
International users
If you use LibLatch outside the United States, your information may be processed in the U.S. or where our servers and third-party providers operate.
Changes to this policy
We may update this Privacy Policy from time to time. We will post the new date at the top and, for material changes, provide notice in the app or on this page before they take effect.
Contact
Questions about this Privacy Policy:
Email: [email protected]
LibLatch