Privacy

A short, honest account of what we store.

Last updated · 2026-08-07


The shortest version: Intermittent — a product of ZeroKB, the parent organisation that operates the app and this website — collects what it needs to run a fasting tracker (your fasts, your plan, your circle posts) and nothing else. No third-party trackers, no ad networks, nothing sold. We count how the app itself gets used — with software we built and host ourselves, never anything you typed. This website uses privacy-first, IP-anonymised Google Analytics for aggregate traffic stats — nothing more.

What we store

  • Account — email and a hashed password if you sign up. You can use the app fully offline without an account.
  • Fasts — start and end times, mood and notes you choose to attach, and the fasting plan you're following.
  • Circle — your handle, optional avatar, the people you've approved as friends, the posts you make, and the applause others send.
  • Reflections — anything you type into the post-fast reflection field. Yours, never used for training, never shown outside your circle.

Where it lives

When you sign in, your data syncs to Supabase, our managed Postgres provider, in their West EU region — Ireland (eu-west-1). EU residency keeps your data under GDPR jurisdiction directly, so no third-country transfer arrangements are required.

This website is served by Cloudflare. The edge sees your IP at the moment of a request — Cloudflare retains standard request logs for fraud and DDoS protection. No fingerprinting is performed.

The website uses Google Analytics 4 (with IP anonymisation) to measure aggregate traffic — page views, referrers, rough geography — which sets first-party cookies. We never send your name, email, fasts, posts, or reflections to Google. This applies to the website only; the app's analytics are described below and do not involve Google.

How the app is used

The app has no third-party trackers. To know whether it actually works — whether people who install it ever get to a finished fast — we count things like screens opened and buttons tapped, using software we wrote and run on our own servers. It goes to us and nowhere else.

It never includes anything you type: not your reflections, not the body of a post, not your weight. Just anonymous counts, attached to a random ID generated on your device, with no way to follow you anywhere else.

Purchases and subscriptions

Intermittent has a paid tier. We never see your payment details. The purchase happens inside Google Play's or the App Store's own screen, and Apple and Google are the payment processors — your card number, bank details, billing address and name go to them, under their terms, and never touch our servers.

What we do store, and only if you are signed in when you buy: which plan you bought (monthly, annual or lifetime), which store it came from, the store's product identifier, a one-way hash of the purchase reference, and an expiry date where the store gives us one. That row exists for one reason — so a reinstall, a new phone, or a move between Android and iOS finds the thing you already paid for. If you buy without an account, nothing about the purchase leaves your device at all.

We also count the paywall the same way we count everything else: that it was opened, which plan was chosen, and whether the purchase completed, failed or was cancelled. Those counts carry the plan tier and nothing more — no price, no order number, no receipt, no transaction identifier.

Cancelling is done in your store account, which is the only place it can be done: Google Play → Payments & subscriptions → Subscriptions, or Settings → your name → Subscriptions on iOS. The app links straight there from Settings → Premium. Deleting your Intermittent account removes our copy of the purchase but does not cancel it — the store still owns it, and a subscription keeps billing until you cancel it there.

Crash reports & performance

If the app crashes or throws an unhandled error, a diagnostic report is sent to Sentry, our crash-reporting provider. The report contains the stack trace, the Flutter / Android version, the device model, and timing measurements for the operation that led to the crash (e.g. "this screen took 2.4s to render"). We explicitly strip user identifiers, email, fast data, posts, reflections, and request bodies before the report leaves the device.

Sentry also collects anonymous performance traces — how long screen transitions and network calls take — so we can find and fix the parts of the app that feel slow. Traces carry the same stripping: no user IDs, no payloads, no page contents.

We use this data for one purpose: fixing bugs and making the app faster. It's never used for marketing, advertising, or model training. You can turn both streams off at any time in Settings → Your data → Send crash reports. Reports expire automatically after 90 days.

What we don't do

  • No third-party trackers in the mobile app — no Google Analytics, Mixpanel, Segment, or Amplitude. (The website uses IP-anonymised GA4 only.)
  • No advertising SDKs. No Facebook, no AppsFlyer, no Adjust.
  • No advertising ID. We don't read your device's advertising identifier, Android ID, or MAC address.
  • No cross-site tracking pixels. No share-to-Twitter buttons that phone home.
  • No selling, renting, or sharing of personal data with anyone, ever.
  • No use of your fasts, posts, or reflections to train AI models — ours or anyone else's.
  • No session replay, no behavioural profiling, no cross-site tracking. Nothing we measure follows you anywhere else.

Your controls

  • Export — your fasts and posts can be exported to JSON from the app's profile screen.
  • Delete — deleting your account from the app removes your record from Supabase within 24 hours, including all fasts, posts, and reflections. Ask us and we'll clear the anonymous usage counts too.
  • Local-only — if you never sign in, none of your fasting data, posts, or reflections leaves the device. The same is true of a purchase: bought while signed out, it stays on the device and with the store.
  • Cancel a subscription — in your Google Play or App Store account, linked from Settings → Premium in the app.

Children

Intermittent is not intended for use by anyone under 16. We do not knowingly collect data from children. If you believe a child has created an account, contact us and we will remove it.

Contact

Questions, requests, or to-the-point complaints: support@zerokb.co.

Changes

We will note the "last updated" date at the top of this page when this policy changes. Material changes will be surfaced inside the app the next time you open it.