Privacy Policy
Last updated: September 4, 2026
Note: this is a standard template for a small, solo-operated software product, not a substitute for legal advice specific to your situation. It's provided here as a starting point and hasn't had a professional legal review.
This Privacy Policy explains what data Clarity HQ (the "App"), operated by Idan Ariav ("we", "us"), collects, where it's stored, and who it's shared with. It's meant to be read alongside our Terms & Conditions.
Clarity HQ is a local-first app: your boards and tasks live in a database on your own device first, and are only sent anywhere else if you turn on Cloud Sync or connect an integration.
Data we collect
Account data
Creating an account (email + password, or "Continue with Google/Apple") is handled by our backend provider, Supabase, using its built-in authentication service. We receive and store your email address, an encrypted password hash (never your plain-text password), and, if you use Google or Apple sign-in, the basic profile identifiers those providers return (typically your name and email). We don't use this to advertise to you.
Your content — boards, tasks, and everything in them
Titles, notes, dates, tags, checklists, custom fields, projects, milestones, habits, rewards, and packing lists you create in Clarity HQ are stored in a local, encrypted-at-rest database on your device (via SQLCipher).
If Cloud Sync is on (included with subscriptions, not with a Lifetime purchase — see our Terms), this same content is also sent to our Supabase-hosted backend so it's available on your other signed-in devices. Lifetime accounts can instead turn on Google Drive Sync or iCloud Sync (see "Who we share data with" below) to keep this same content current across devices through their own Google/Apple storage instead of ours. If none of these are on, none of it leaves your device.
Diagnostics, analytics, and advertising
Clarity HQ has no analytics or usage-tracking SDK and no advertising SDK of any kind.
Crash reporting (optional, off by default): Settings → Privacy has a Send crash reports toggle. Turning it on lets Clarity HQ send a report via Sentry if the app hits an unexpected error. Before anything leaves your device, it's stripped down to a stack trace plus the app version and OS — never your account identity, your task/board content, or your recent activity (breadcrumbs) inside the app. Turning the toggle off stops reporting immediately, not just on your next launch.
Who we share data with
Clarity HQ only talks to the services below — each one only when the related feature is on, and only with the data that feature needs.
| Recipient | What we send | Why |
|---|---|---|
| Supabase (our backend) | Your account (email, password hash, OAuth identity), and — if Cloud Sync is on — your task/board content, habits, rewards, packing lists, and app preferences | Account login and cross-device sync. Hosted on Supabase's own cloud infrastructure. |
| Resend (email delivery) | Your email address, and the content of account emails (email verification, password reset) | Delivers the transactional emails Supabase's authentication system sends on our behalf — sent from noreply@clarity.idanariav.com. |
| Cloudflare (Turnstile) | Standard bot-check browser signals | Blocks automated sign-up/sign-in abuse. Shown on the sign-in, sign-up, and password-reset screens. |
| Sentry (only if you turn on crash reporting) | A stack trace, plus app version and OS — never your account identity, task/board content, or in-app activity | Helps us find and fix bugs. Off by default; only sent if you opt in via Settings → Privacy. |
| Atlassian (Jira) (if you connect it) | Your API token or OAuth token (for authentication, depending on how you connect), and a status-change request when you move a linked task | Two-way status sync with your Jira issues. |
| Google (Calendar) (if you connect it) | Your OAuth token, and task titles for tasks/focus sessions you push to your calendar. See the note below on how the token itself is obtained. | Two-way sync between your tasks and your Google Calendar. |
| Slack (if you connect it) | Your OAuth token; nothing is sent automatically — only used to fetch a message's text when you manually paste its permalink | Turns a Slack message you choose into a task. |
| GitHub (if you connect it) | Your personal access token (read-only) | Looks up PR/branch status for Jira-linked cards. Clarity HQ never writes to GitHub. |
| Google Drive (Lifetime accounts only, if you turn on Google Drive Sync) | Your OAuth token, and your task/board content (the same data Cloud Sync would sync) — stored in an app-private area of your Drive that only Clarity HQ can access, invisible in your regular Drive files. See the note below on how the token is obtained. | An alternative to Cloud Sync for Lifetime accounts: keeps your data current across devices through your own Google Drive storage instead of our infrastructure. |
| Apple (iCloud) (Lifetime accounts only, macOS/iOS, if you turn on iCloud Sync) | Your task/board content (the same data Cloud Sync would sync) | Same purpose as Google Drive above, through your iCloud account instead — handled entirely by macOS/iOS's built-in iCloud APIs. There's no OAuth token and no server of ours in this path at all: your content travels only between your own devices and Apple's iCloud servers. |
| Obsidian (if you use it) | Nothing — Clarity HQ only runs a query against Obsidian on your own machine, with no network request of any kind | Shows progress from a linked Obsidian Bases view. |
| A payment processor (not yet live) | Not applicable yet — Clarity HQ doesn't process payments directly today. When checkout ships, a named third-party payment processor will handle it, and this page will be updated before that happens. | Billing. |
None of the above sell your data or use it for advertising.
A note on Google Calendar's OAuth exchange
If you connect Google Calendar using Clarity HQ's built-in connection (the default "Connect" button, with no
setup required from you), the one-time step of turning your Google sign-in into an access token — and later
refreshing it — is routed through a Supabase-hosted function (oauth-token-exchange) we operate. This exists so
Clarity HQ's own OAuth client secret never has to ship inside the app itself. That function only ever handles the
token exchange: your actual calendar data (events, titles, sync traffic) still travels directly between your
device and Google's API, never through Supabase. If you instead supply your own Google OAuth client (the
"Use my own Google OAuth client" option), the token exchange happens directly between your device and Google,
with no Supabase involvement at all.
A note on Google Drive's OAuth exchange
Google Drive Sync uses a narrower Google OAuth scope than Google Calendar — drive.appdata, which only grants
access to a hidden, app-private storage area, not your visible Drive files or folders. If you connect using
Clarity HQ's built-in connection (the default "Connect" button), the token exchange is routed through the same
Supabase-hosted function (oauth-token-exchange) described above for Google Calendar, for the same reason: so
Clarity HQ's own OAuth client secret never has to ship inside the app. That function only ever handles the token
exchange — your actual task/board content still travels directly between your device and Google's API, never
through Supabase. If you instead supply your own Google OAuth client, the token exchange happens directly between
your device and Google, with no Supabase involvement at all.
A note on iCloud Sync
Unlike every other integration on this page, iCloud Sync involves no OAuth and no server of ours whatsoever. It works entirely through Apple's built-in iCloud APIs: Clarity HQ writes your task/board content to a private, app-scoped folder inside your iCloud account, and macOS/iOS's own iCloud sync keeps that folder current across your signed-in devices. Nothing passes through Clarity HQ's or Supabase's infrastructure at any point — this data's only destination beyond your own devices is Apple's iCloud service, under whatever agreement you already have with Apple for using iCloud.
A note on Jira's OAuth exchange
If you connect Jira using the "Connect with Atlassian" button, the same kind of one-time exchange described above
for Google Calendar applies: turning your Atlassian sign-in into an access token, and later refreshing it, is
routed through the same Supabase-hosted function (oauth-token-exchange) so Clarity HQ's own OAuth client secret
never has to ship inside the app. That function only ever handles the token exchange — your actual Jira issue data
still travels directly between your device and Atlassian's API, never through Supabase. If you instead connect Jira
with your own API token (Settings → "Or connect with an API token"), there's no OAuth exchange at all and no
Supabase involvement in authenticating with Jira.
A note on Slack's OAuth exchange
Every Slack connection uses Clarity HQ's own bundled OAuth app — there's no option to supply your own. Clicking
"Connect" turns your Slack sign-in into a user token via the same Supabase-hosted function
(oauth-token-exchange) described above, for the same reason: so Clarity HQ's own OAuth client secret never has to
ship inside the app. Slack additionally requires every OAuth redirect to use HTTPS, so — unlike Google Calendar,
Google Drive, and Jira, whose desktop connect flow redirects your browser straight back to the app — the one-time
authorization code in Slack's redirect briefly passes through a small Supabase-hosted page
(oauth-slack-redirect) that forwards it straight back to the app running on your device; that page doesn't store
anything and never sees your access token, only the one-time code. Your Slack message text itself is fetched
directly between your device and Slack's
API when you paste a permalink, never through Supabase. Unlike Google Calendar and Jira, Slack tokens don't
expire, so there's no ongoing refresh step.
Google API Services User Data Policy & Limited Use
Clarity HQ's use and transfer to any other app of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements.
Concretely: Clarity HQ does not use any AI/ML model — its own or a third party's — in its handling of your Google Calendar or Google Drive data. That data is never used to train, improve, or evaluate any AI/ML model, whether generalized or specialized, and it's never shared with or transmitted to any AI/ML service. See "Who we share data with" above for the complete, exhaustive list of who Clarity HQ talks to, and "A note on Google Calendar's OAuth exchange" / "A note on Google Drive's OAuth exchange" above for exactly how that data flows when you connect either one.
A note on Jira and GitHub content
If Jira is connected, an issue's summary, description, status, due date, and priority are copied into the matching Clarity HQ task, and (like the rest of your task content) sync to Supabase if Cloud Sync is on. GitHub only ever supplies a pull request's status/URL — never its title or contents.
A note on Obsidian Bases
Obsidian querying itself never leaves your device. However, the base file path, view name, and vault name you enter to set up the link, along with the resulting "Next up" / "Remaining" summary, are stored as part of the linked task — so if Cloud Sync is on, those specific values (not the full contents of your Obsidian vault) do sync to Supabase like the rest of that task.
How your data is stored on your device
Your local database is encrypted at rest. Integration credentials (Jira API or OAuth tokens, GitHub tokens, Google/Slack OAuth tokens) are kept in a separate, permission-restricted file outside that database — never in the synced database itself, and never sent to Supabase. On Android, these credentials are additionally protected by the device's hardware-backed encrypted storage (Android Keystore).
Data retention & deletion
You can delete your account at any time from within the App: Settings → Account → Delete account. This immediately and permanently removes your account and all Supabase-synced data from our backend. Since Clarity HQ is local-first, deleting your account doesn't remotely wipe the copy of your data already stored on your own device(s) — you're always in control of that locally.
Don't have the App installed, or can't sign in? Email idan@idanariav.com from the address on the account and we'll delete your account and its synced data within 30 days, without requiring you to install or open the App.
Your rights (GDPR/CCPA)
Wherever these rights apply to you, here's how to exercise them directly in the App — no request or wait required:
- Access / portability ("give me everything you have"): Settings → Privacy → Export my data writes a single JSON file with every board, task, habit, reward, packing list, and setting stored on that device — the same data Cloud Sync mirrors to our backend if it's on.
- Deletion ("delete me"): Settings → Account → Delete account permanently removes your account and its synced data from our backend (see "Data retention & deletion" above for what stays on-device).
- Know what we collect and share: the "Data we collect" and "Who we share data with" sections above are a complete account.
Something these don't cover? Email us at the address below and we'll handle it directly.
Children's privacy
Clarity HQ isn't directed at children, and we don't knowingly collect data from anyone under 13 (or the minimum age required by your local law). If you believe a child has provided us data, contact us and we'll delete it.
International data transfers
Our service providers (Supabase, Resend, Cloudflare, Google, GitHub, Slack, Atlassian) operate global infrastructure, so your data may be processed outside your own country. Each of these providers maintains its own safeguards for handling international data transfers.
Changes to this policy
We may update this Privacy Policy from time to time; continued use of the App after a change means you accept the updated policy. Material changes — such as adding a new integration, sub-processor, or a payment processor — will be reflected here before they take effect.
Security
Found a security issue? See our Security Policy for how to report it.
Contact
Questions about this policy, or to request account/data deletion: idan@idanariav.com.