Privacy Policy
Last revised:
Scope and contact
This policy applies to the Diro Films mobile app and website. Diro Films is operated by Mazdak. It provides director-focused film discovery and personal tracking, plus film and streaming-provider information. It does not host or stream films. For privacy questions or requests, email dirofilms@gmail.com. Support receives your email address and message to handle your inquiry.
Accounts and profiles
Supabase provides authentication and database services. The app supports email/password authentication and Google Sign-In. Account/profile information can include an account identifier, email address, display name, and avatar information where supplied. Google processes information for Google Sign-In. Supabase handles password authentication. The app maintains authentication sessions on your device.
Film activity and synchronization
Diro stores favourite and interested directors, film watchlists and personal lists, ratings and optional written reviews, viewing and rewatch history, preferences, and synchronization information to provide personal tracking and synchronization. Some data is cached locally; pending changes may be queued for sync. Unsynchronized device changes may not yet appear in the hosted account.
Search information
Film and director search terms are sent to the Diro API and, when needed, TMDB to return results. A normalized query may be used as a key in Supabase’s shared tmdb_cache. This is a shared results cache, rather than an established per-account search history.
Search results have a six-hour cache freshness interval. This is not a promise that a query is physically deleted after six hours. Current cleanup code targets rows whose freshness expired more than seven days earlier and runs opportunistically after cache writes; it is not a guaranteed erasure schedule. Account deletion alone does not establish removal of queries from shared search caches or request logs.
Optional notifications
Remote movie alerts use Expo and the platform push infrastructure, including Apple or Google services as applicable. Registration can associate a push token and installation identifier with the account, alert preferences, region, and timezone. Region can be a selected content market for relevant availability and alerts; it does not establish precise or GPS location collection.
The app explains notification processing before enablement and the operating-system permission request. Evening-pick reminders can be scheduled locally on the device. Manage alerts in the app and notification permissions in device settings, separately from analytics and diagnostics.
Your optional reporting choices
A first-use Privacy Choices dialog offers separate analytics and diagnostics switches, both initially off, and a way to continue without either. Optional reporting tools wait for a saved choice and loaded local preferences before initialization. Core app functionality does not require either choice to be enabled.
Change these choices in Settings → Privacy Choices. The choices page is also accessible from the legal notices on signed-out login and registration screens. Choices apply to the current installation, are stored locally, and are not synchronized account preferences. Accepting the Terms or opening a policy does not enable optional reporting.
Turning reporting off prevents new optional reporting; it does not erase reports already sent or retract in-flight transmissions. Notification permissions and necessary account and purchase processing are separate. Mobile privacy switches do not control YouTube embeds or other website processing.
Optional usage analytics
When enabled and configured, PostHog processes usage analytics to understand and improve the app. Analytics can be associated with the app account ID. Explicit events can include app interactions, onboarding activity, film/director identifiers, rating values, and notification choices. Rating events can include whether a review exists; the reviewed explicit rating event code excludes written review text. Written reviews are still stored as user content. The implementation does not establish comprehensive time tracking on every screen.
Development analytics is disabled. The release uses an HTTPS analytics host and an in-memory event queue. GeoIP enrichment, session replay, automatic app lifecycle capture, automatic error capture, remote configuration, surveys, and feature-flag preload are disabled. Account changes reset analytics identity and clear queued events; disabling analytics clears the current queue.
These controls do not mean analytics is anonymous or that providers receive no IP address or connection metadata. They do not erase previously received provider records or establish deletion of an older on-disk SDK queue.
Optional error and performance diagnostics
When enabled and configured, Sentry reports errors and crashes with technical app/device context. Performance tracing is sampled at 20% of transactions; this is not a 20% sample of errors.
Default sending of personally identifiable information, screenshots, view hierarchy attachments, and session replay are disabled. JavaScript filtering removes user objects, request bodies, headers and cookies, console breadcrumbs, and common sensitive values such as emails, passwords, tokens, written review fields, and URL query strings.
These safeguards do not guarantee that every native crash payload is anonymous. Disabling diagnostics gates JavaScript reporting and closes the SDK. It does not erase reports already received or retract transmissions already in flight.
Secure handling and account access
Sign-in sessions use platform secure storage. Supabase handles password authentication, and authenticated account operations use authentication tokens. Keep your credentials private and do not send passwords, reset tokens, or authentication tokens to support. If you suspect unauthorized access, contact dirofilms@gmail.com.
No method of storage or transmission can guarantee absolute security.
Purchases and providers
Apple or Google handles the applicable store payment. The app does not directly collect payment-card numbers. RevenueCat processes account-linked purchase, subscription, and entitlement information to determine paid access. Availability and pricing depend on the offering shown. Monthly and annual subscriptions renew under the offered store terms; a lifetime product, if offered, is a separate nonrecurring purchase.
Providers process information for authentication, database storage, notifications, analytics, diagnostics, and entitlements as described above. TMDB supplies film/director metadata and images. External content requests can involve technical connection information needed to return content.
Official privacy information: Supabase, Google, Expo, Apple, PostHog, Sentry, RevenueCat, and TMDB. These notices describe providers’ practices and do not replace Diro’s explanation here.
This product uses the TMDB API but is not endorsed or certified by TMDB.
Website practices
The website waitlist form sends your email address and a landing-page source label to a Supabase database to register interest in launch notifications. Contact support to request removal. A separately submitted waitlist entry is separate from an app account.
Some blog pages embed YouTube videos. Loading an embed connects your browser to YouTube, which can process connection/device information and use cookies under Google’s privacy policy.
No dedicated website analytics tracker was found in the reviewed website source, which does not integrate the app’s PostHog, Sentry, or RevenueCat SDKs. Hosting infrastructure may process request information such as IP addresses and browser details to serve the website. Production-injected scripts, cookie configuration, hosting log settings, and provider regions and contracts have not been verified by this source review. This is not a blanket statement that the website uses no cookies or tracking. Mobile Privacy Choices do not control website processing. Third-party links lead to services with their own practices.
Retention, account deletion, and choices
Hosted account data supports your account and synchronization. Delete your account in Settings → Delete Account → confirm, or request deletion by email without the app. See Delete your Diro Films account.
In-app deletion removes the Supabase account and linked Supabase account data, including profile information, director selections, watchlists and lists, ratings and reviews, viewing and rewatch history, account preferences, and synchronization records. The app signs you out after successful deletion. Device-only Privacy Choices are distinct from this account-linked content.
Supabase account deletion alone does not demonstrate removal from PostHog, Sentry, RevenueCat, Expo registrations, store records, backups, hosting logs, shared search caches, or a separate website waitlist. Turning off reporting, signing out, and uninstalling are not requests to erase previously sent provider data.
To request deletion of previously sent reports or other provider records, email dirofilms@gmail.com and describe the request. Do not include secrets. A provider may need to be involved; sending a request is not confirmation that provider deletion has completed. Contact support about the handling of a particular record or the progress of a request.
Signing out or uninstalling does not delete the hosted account. Deletion does not automatically cancel an app-store subscription; manage it separately. Cancellation is not required to request deletion.
You can manage notifications and choose whether to submit optional reviews. Depending on applicable law, you may have rights to access, correct, or delete personal information or object to processing. Contact support to discuss requests; ownership verification may be needed. Do not send passwords or authentication tokens.
Questions about children’s information
If you are a parent or guardian concerned about a child’s information in Diro Films, contact dirofilms@gmail.com so the concern can be reviewed.
Policy changes
Updates will appear here with a revised date. Review this page for the current description of Diro’s practices.