Privacy Policy
Last updated: May 23, 2026
Welcome to FocusFlow. We are committed to protecting your privacy and ensuring you have a positive experience using our productivity and focus timer application. This Privacy Policy explains how we collect, use, disclose, and safeguard your information when you use our mobile application FocusFlow. The app uses anonymous product analytics (Mixpanel) and crash reporting (Sentry) to improve stability and user experience, and downloads optional ambient sound packs on demand from our cloud storage (Supabase). Please read this privacy policy carefully.
1. Information You Provide
We collect information you directly provide when using the app:
- Task titles, descriptions, completion status, and timestamps
- Timer duration preferences (focus and break lengths)
- Daily reminder notification settings
- Sound preferences, volume settings, and mixing preferences
- Theme, appearance customization, and haptic feedback preferences
2. Automatically Collected Information
The app automatically collects usage and device data to provide core functionality and improve the app:
- Focus session duration, completion data, and category counts
- Daily and weekly progress statistics and streak tracking
- Device type, model, operating system version, and app version
- Timezone information for notification scheduling
- Selected ambient sounds, volume levels, and audio playback history
- Anonymized analytics events (feature usage, session completions, screen views) via Mixpanel
- Crash reports, error stack traces, and breadcrumbs via Sentry (no personal content)
- An anonymous device identifier generated locally — not linked to your name, email, or account
3. How We Use Your Information
We use collected information to operate the Pomodoro timer, manage your tasks and to-do lists, display progress statistics and insights, sync data to home screen widgets, send daily reminder notifications, personalize the app based on your preferences, and monitor app performance and stability.
4. Data Storage & Security
Your personal content — tasks, session history, progress statistics, and preferences — is stored locally on your device. Tasks are stored in a local SQLite database using Drift, and settings are stored using SharedPreferences, both in sandboxed app storage protected by the operating system. We do not upload your task data, notes, or personal statistics to our servers. However, anonymized analytics events are transmitted to Mixpanel, crash and error data are transmitted to Sentry, and ambient sound files are downloaded over HTTPS from our Supabase Storage bucket when you choose to use them. See the sections below for details on each.
5. Analytics (Mixpanel)
We use Mixpanel, Inc. to understand how the app is used so we can improve features and fix issues. Mixpanel receives anonymized event data such as feature interactions, session completions, screen views, and app/OS/device metadata, identified only by a randomly generated anonymous device ID. We do not send your task titles, notes, name, email, account information, or precise location to Mixpanel. You can disable analytics at any time from in-app Settings → Privacy; once disabled, no further events are sent. Mixpanel's privacy policy is available at https://mixpanel.com/legal/privacy-policy.
6. Crash Reporting (Sentry)
We use Sentry (Functional Software, Inc.) to detect and diagnose crashes and errors. Sentry receives stack traces, error messages, breadcrumbs, and app/OS/device information, tagged with an anonymous install ID. Data is only transmitted when an error or crash occurs. We do not include your task content, notes, or any user-authored text in crash reports. Sentry's privacy policy is available at https://sentry.io/privacy/.
7. Cloud-Hosted Sounds (Supabase Storage)
Ambient sound packs are hosted on Supabase Storage and downloaded to your device over HTTPS the first time you select a sound. Downloaded sounds are cached locally so they can play offline afterward. To serve these files, Supabase processes standard request metadata such as IP address, user agent, and timestamp. No account, login, task data, or listening history is sent to Supabase. Supabase's privacy policy is available at https://supabase.com/privacy.
8. Widgets & Live Activities
When you use iOS Live Activities or Home Widgets, timer status and progress data is shared with widget extensions via App Groups (iOS) or SharedPreferences (Android). This data remains local to your device and is not transmitted elsewhere. Widget data is encrypted and protected by device security.
9. Notifications
If you enable daily reminders, notification scheduling uses your device's local timezone. Notification content is generated locally on your device. No notification data is sent to external services. You can disable notifications at any time in Settings.
10. Children's Privacy
Our App is not directed to children under the age of 13. We do not knowingly collect personal information from children under 13. If you are a parent or guardian and believe your child has provided us with personal information, please contact us.
11. Your Privacy Rights
You have the right to access, delete, and export your data. You can opt out of Mixpanel analytics at any time from in-app Settings → Privacy; opting out stops further analytics collection but does not retroactively remove previously sent anonymous events. Crash reporting can be disabled by uninstalling the app. Notifications can be managed in app Settings. California residents have additional rights under CCPA, and European residents have rights under GDPR including data portability and the right to object to processing.
12. Data Breach Notification
In the unlikely event of a data breach, we will notify affected users within 72 hours, describe the nature of the breach, provide recommended actions, and report to relevant authorities as required by law.
13. Changes to This Policy
We may update this Privacy Policy from time to time. We will notify you by updating the "Last Updated" date, displaying an in-app notification for material changes, and posting the new Privacy Policy in the app. Your continued use constitutes acceptance of the updated policy.
14. Contact Us
If you have any questions about this Privacy Policy, please contact us at codewithnabi@gmail.com or visit https://www.codewithnabi.dev/.
© 2026 Mohammad Nabi Rahmani. All rights reserved.