Privacy
Privacy Policy
Effective April 29, 2026
This Privacy Policy explains what data the So Far iOS app collects, why we collect it, and how it is processed. So Far does not require an account, and we do not collect your name, email address, contacts, location, photos, microphone data, camera data, advertising identifiers, or cross-app tracking data.
By using So Far, you acknowledge that your data will be handled as described below. If you do not agree with this policy, please discontinue use of the app.
1. Who we are
So Far is an iPhone app that lets you generate spoiler-safe recaps of movies and TV shows up to a watch boundary that you set. References to "we", "us", or "our" refer to the operator of the So Far app and the services at sofar.watch.
2. Data we collect
- Install ID. A randomly generated identifier stored in your device's iOS Keychain, with a local app settings backup. It identifies your install for usage quota and abuse prevention. It is not linked to your Apple ID.
- Title searches and metadata. Titles you search for, TMDB IDs, title names, release years, media type, language, region, posters, cast, seasons, and episode information may be processed to help you find the right movie or show.
- Watch boundaries. The episode, season, or movie progress point you select for a recap.
- Generated recaps and jobs. Recap requests, generated recap output, job status, retry state, quality metrics, and operational timing data may be processed or cached by our backend so the service can generate, return, and improve spoiler-bounded recaps.
- Feedback. If you rate a recap, we store the recap identifier, install ID, rating, and timestamps.
- Live Activity data. If you use Live Activities for recap generation progress, we may process the recap job ID, install ID, push token, push status, and delivery attempts.
- Favorites, saved recaps, and pending recap jobs. These are stored on your device by default. They are not synced to an account.
- App Store transactions. When you subscribe or restore a purchase, Apple's StoreKit provides signed transaction information. We use it to verify your entitlement and enforce free-tier quotas. We do not receive your payment card or other billing details; those stay with Apple.
- Crash and error reports (Sentry). If Sentry is configured and the app crashes or hits an unexpected error, diagnostic reports may include stack traces, app version, iOS version, device model, locale, breadcrumbs, and related technical context. We do not attach your name or email to these reports.
3. Data we do not collect
- We do not track you across other apps or websites. The app declares NSPrivacyTracking: false.
- We do not use advertising identifiers.
- We do not create accounts or collect names or email addresses in the app.
- We do not collect contacts, photos, location, microphone, or camera data.
- We do not sell your personal data.
4. How we use your data
- Deliver the core feature. Match your search to titles, fetch metadata and posters, generate recaps bounded by your watch point, and keep local favorites and saved recaps available on your device.
- Enforce quotas and prevent abuse. The install ID, usage counters, and rate limits help ensure each install operates within the quota and limit automated misuse.
- Operate the backend. Recap caches, subtitle assets, request logs, usage records, and job state help us generate recaps reliably and avoid repeating expensive work.
- Improve reliability. Crash reports help us identify and fix bugs.
- Respond to support requests when you email us.
5. Third-party processors
We share data only with the following service providers, strictly for the purposes shown:
- Cloudflare - Workers, D1, R2, and Queues run our backend and may process IP addresses, request metadata, operational logs, recap jobs, usage records, and cached service data.
- OpenAI - generates recap text on our backend from subtitle excerpts, title metadata, and the watch boundary you select. We do not pass your name or email because the app does not collect them.
- The Movie Database (TMDB) - supplies title metadata, cast, episode structure, and poster artwork. Search queries and title identifiers may be used to return results.
- SubDL and OpenSubtitles - subtitle providers used to locate transcript text for recap generation. We send the title identifier, language, and matching metadata needed to find subtitles.
- Sentry — crash and error reporting, as described above.
- Apple StoreKit - payment processing and subscription verification. Governed by Apple's privacy policy.
6. Where data is stored
Your favorites, saved recaps, watch progress, and pending recap jobs are stored locally on your device by default. Server-side operational data, including install-based usage records, recap jobs, generated recap caches, subtitle caches, feedback ratings, subscription entitlement checks, and diagnostic data, may be stored by our service providers in the United States. By using the app from outside the United States, you consent to the transfer and processing of your data in the United States.
7. Retention
- Local data. Persists until you delete the app or clear it from within the app.
- Operational data. Retained only as needed to operate the service, enforce quotas, prevent abuse, improve reliability, and comply with legal obligations.
- Diagnostic reports. Retained according to Sentry's configured retention settings.
8. Your choices
- Local data. You can clear saved app data from within the app. Uninstalling the app removes locally stored favorites, saved recaps, and pending recap jobs from your device.
- Subscription. Manage or cancel from the iOS Settings, Apple ID, Subscriptions screen.
- Privacy requests. Email hello@solobuilt.co for any access, correction, portability, or deletion request.
9. Children
So Far is rated for users 13 and older on the App Store and is not directed to children under 13. We do not knowingly collect personal data from children under 13. If you believe a child has provided us with personal data, contact us and we will delete it.
10. Security
We use TLS for all network requests, store secrets in encrypted secret stores, and require short-lived app session tokens for sensitive backend endpoints. No system can be guaranteed perfectly secure; you use the app at your own risk.
11. Changes to this policy
We may update this policy as the product changes. The "Effective" date at the top reflects the most recent revision. Material changes will be surfaced in the app or by an in-app notice before they take effect.
12. Contact
Questions, requests, or concerns: hello@solobuilt.co.