Privacy Policy

Last updated: April 15, 2026

The short version

FocusDragon never sees your blocklist, browsing history, or anything you do inside your browser. There is no account, no login, and no server that stores your data.

Two things leave your device, and only these two:

  • Crash reports (always on) — if the app crashes, a stack trace is sent to Sentry so I can fix it. No personal data, no blocklist, no browsing info.
  • Anonymous usage stats (opt-in, off by default) — if you enable this in onboarding or Settings → Privacy, aggregate events like “focus session started” are sent to PostHog to help prioritise what to build next.

What the app does on your device

FocusDragon stores the following on your Mac, locally, in your user directory. None of it leaves your machine:

  • Your block lists, schedules, and focus session preferences.
  • Session history (start time, duration, whether it was completed).
  • Pomodoro statistics.
  • App settings and onboarding state.

What the browser extensions do

The FocusDragon browser extensions (Chrome, Safari, Edge, Brave, Opera, Vivaldi, Firefox) enforce blocking inside your browser. They work by:

  • Reading your block list and session state from the FocusDragon desktop app via the browser's native messaging API (in Chromium browsers) or Safari Web Extension API (in Safari). This communication happens entirely on your Mac.
  • Checking each page you navigate to against your block list. If a page matches, the extension redirects the tab to a “Site Blocked” page hosted inside the extension itself.
  • Sending a periodic heartbeat to the desktop app so it knows the extension is installed and active. The heartbeat contains no URL or browsing data — only a timestamp and permission flags.

The extensions do not log your browsing history, read page content, track you across sites, or transmit any data off your device.

Why the extensions request broad permissions

To enforce blocking reliably, the browser extensions request:

  • Access to all websites — so the extension can check whether any site you visit is on your block list.
  • Tabs and webNavigation — so the extension can redirect a tab to the block page before a blocked site loads.
  • Native messaging — so the extension can ask the FocusDragon desktop app for the current block list.
  • Incognito / private browsing — so blocks cannot be bypassed by opening a private window. You grant this permission manually.

Crash reports (Sentry)

FocusDragon uses Sentry to capture crashes and uncaught errors. When the app crashes, Sentry records:

  • The crash stack trace (function names and line numbers).
  • macOS version and app version.
  • The sequence of recent operations that led to the crash.

IP addresses are explicitly not collected. Crash data is hosted in the EU (de.sentry.io). This reporting is always on because without it, I cannot fix bugs I don't know about — but it only fires on errors, never on normal use.

Anonymous usage stats (PostHog, opt-in)

If — and only if — you explicitly enable the “Help improve FocusDragon” toggle during onboarding or in Settings → Privacy, the app sends a small set of anonymous events to PostHog (EU region, eu.i.posthog.com). This is off by default. You can turn it off at any time and nothing new will be sent.

The events collected are things like:

  • onboarding_step_reached (which onboarding step you reached)
  • onboarding_completed
  • focus_session_started (number of blocked domains, protection level)
  • focus_session_ended
  • App open / background lifecycle events

What is never collected, even when enabled: the domains on your blocklist, the names or paths of blocked apps, any URLs you visit, any content from your browser, and anything that could identify you. The user identifier is a random UUID that lives only on your Mac.

No accounts, no servers

FocusDragon has no login system and no backend that stores your data. The website you are reading this on (focusdragon.vercel.app) is served by Vercel and uses Vercel's own infrastructure logging; we do not add trackers, pixels, cookies, or fingerprinting on top of it.

Updates

The macOS app checks for updates using Sparkle. That check makes a request to focusdragon.vercel.app/appcast.xml so the app can see if a new version is available. The request contains no personal data beyond what every HTTP request contains (your IP address and user agent, handled by Vercel).

Children

FocusDragon is safe for users of any age. Because no data is collected, there is nothing to protect, anonymize, or delete on request.

Changes to this policy

If FocusDragon ever changes what data it handles, this page will be updated and the “last updated” date above will change. Any new data collection beyond crash reports will remain opt-in and will be announced in the changelog.

Contact

Questions about privacy: anaygoenka12@gmail.com