KickMint
  • Features
  • Privacy
  • Pricing
  • Download

On this page

  1. Who we are
  2. Plain-language data summary
  3. The on-device AI
  4. Optional cross-device sync
  5. Lawful basis (GDPR)
  6. Third-party processors
  7. International transfers
  8. Your rights
  9. Children's privacy
  10. Security
  11. Retention
  12. Changes to this policy
  13. Contact

KickMint Privacy Policy

Effective April 20, 2026 · Last updated April 20, 2026

Review before publish Lawyer must confirm effective date, jurisdiction, controller name, and registered address before this is published. All [INSERT ...] placeholders must be replaced.

What we collect: nothing

KickMint runs the AI on your phone. Your tasks, voice transcripts, AI prompts, AI outputs, cycle data, sleep data, and medication timing never leave your device. The only thing that crosses our network is encrypted task sync data that we cannot read, plus an opaque sync group ID that is not linked to your identity.

If you do not want sync, you do not enable it. The app works fully offline and is functionally identical without sync.

This is enforced in code, not just policy. See iosApp/Sources/Sync/SyncManager.swift (the nonSyncableTables constant) and iosApp/Sources/App/PrivacyInfo.xcprivacy (Apple Privacy Manifest declaring NSPrivacyTracking=false and an empty NSPrivacyCollectedDataTypes array).

1. Who we are

KickMint is an iOS productivity app for adults with ADHD and similar executive-function differences, distributed worldwide via the Apple App Store and described at kick-mint.com.

In this policy, "we", "us", and "our" refer to:

  • Controller / publisher: KickMint (sole proprietorship, [INSERT LEGAL ENTITY WHEN INCORPORATED])
  • Registered address: [INSERT MAILING ADDRESS]
  • Contact for privacy matters: [email protected]
  • Contact for legal notices: [email protected]
  • EU/EEA representative (Article 27 GDPR): [INSERT EU REPRESENTATIVE OR "Not appointed, see Section 12"]
  • UK representative (UK GDPR Art. 27): [INSERT UK REPRESENTATIVE OR "Not appointed, see Section 12"]
  • Data Protection Officer: Not appointed. We are not subject to the mandatory DPO requirement under GDPR Article 37(1) because (a) we are not a public authority, (b) our core activity does not require regular and systematic monitoring of data subjects on a large scale, and (c) our core activity does not involve large-scale processing of special categories of data under Article 9.
Review before publish Confirm DPO and EU/UK representative status with counsel. If we ship in the EU or UK and do not have an establishment there, an Article 27 representative is generally required for non-exempt data processing.

2. Plain-language data summary

CategoryDo we collect it?Where it lives
Your name or emailNoWe have no account system
Your tasks, notes, projectsStays on your deviceEncrypted sync payload only if you enable sync
Voice you record into the appStays on your deviceTranscribed by iOS on-device. Audio never written
AI prompts and AI outputsStays on your deviceInference runs locally via llama.cpp + Qwen 2.5 1.5B
Menstrual cycle phase, sleep, medsStays on your deviceListed in nonSyncableTables, never transmitted
Health data from HealthKitStays on your deviceRead-only access. We do not write or transmit it
Crash reportsApple receives if you opt in via system settingsWe never see them as a separate dataset
LocationNoWe do not request location permission
ContactsNoWe do not request Contacts permission
Advertising IDs (IDFA)NoWe do not request App Tracking Transparency and never call ATTrackingManager.requestTrackingAuthorization
Browsing or search historyNoThe app has no web browser or search log
Payment / card detailsNoApple's StoreKit handles all subscriptions. We see no card data

Statutory basis for this disclosure format: California Civil Code section 1798.100(a) requires a business to inform consumers of the categories of personal information collected at or before collection. Our answer to all enumerated CCPA categories is "not collected", so we list each category to make that affirmative claim verifiable. GDPR Article 13(1)(c) requires the purpose and lawful basis for each processing activity; where we do not collect data we have no Article 13 obligation for that category, but we list it for transparency.

3. The on-device AI

KickMint includes a Qwen 2.5 1.5B large language model in GGUF format, executed locally on your iPhone using llama.cpp. This model is downloaded from a Cloudflare R2 bucket on first launch (a one-time ~900MB download) and runs entirely on your device thereafter.

What this means in practice:

  • Every AI feature (task breakdown, suggestion ranking, capture parsing) runs on your phone with no network call to us during inference.
  • Your prompts, the model's intermediate state, and the model's outputs are never transmitted to any server we control.
  • AI telemetry (latency, token counts, fallback rate) is stored in a local table named ai_telemetry, which is in SyncManager.nonSyncableTables and therefore never included in sync payloads.
  • The model file itself is downloaded over HTTPS without authentication. Cloudflare's standard server logs may record the IP that requests the file. Those logs are operated by Cloudflare under their own privacy terms and are used for abuse prevention and content delivery, not user profiling.

If we ever change inference to a hybrid or cloud model, we will update this policy, notify users in-app at least 30 days before the change, and require explicit opt-in for any cloud inference.

4. Optional cross-device sync

If you enable sync, KickMint generates an opaque sync group ID and a sync group secret on your device. The secret never leaves your device. The server only stores a SHA-256 hash of the secret, used to verify HMAC-signed requests (see sync-worker/src/index.ts, the validateAuth function).

What we send to the sync backend:

  • An opaque sync group ID (random UUID with no user mapping)
  • An opaque device ID (random UUID generated locally)
  • A device name you can set yourself (sanitized to strip HTML and capped at 100 characters)
  • AES-256-GCM encrypted CRDT operations representing your task changes (encryption key generated on your device, stored in iOS Keychain with kSecAttrAccessibleAfterFirstUnlock, never transmitted; see iosApp/Sources/Sync/EncryptionManager.swift)
  • A timestamp and nonce for replay protection
  • The HLC (hybrid logical clock) values needed to merge changes across devices

What the server can see:

  • Encrypted ciphertext (it cannot decrypt; the key never leaves your device)
  • The sync group ID, device ID, device name, and timing metadata
  • The entity type field (e.g. "task", "project", "tag") needed to route the operation; the entity contents are inside the ciphertext
  • Approximate IP address from the connection, used by Cloudflare for abuse prevention and discarded on Cloudflare's standard log retention schedule

What the server cannot see:

  • Your task content
  • Your notes, voice transcripts, or AI outputs
  • Any health, cycle, sleep, medication, or sensitive context (these are in nonSyncableTables and are never sent at all, encrypted or not)
  • Your name, email, payment information, or any identifier we could link back to you

Sync is opt-in. The app works fully without it. If you turn it off, no further sync data is sent.

5. Lawful basis for processing (EU/UK GDPR)

The minimal data we do process for sync is processed on the following bases:

  • Performance of a contract under GDPR Article 6(1)(b) and UK GDPR Art. 6(1)(b) for sync delivery itself: when you enable sync, we are providing the cross-device feature you signed up for.
  • Legitimate interests under Article 6(1)(f) for security and abuse prevention (rate limiting, replay protection, HMAC verification). The legitimate interest is keeping the sync service available for paying users; the impact on you is minimal because the data is anonymous.
  • Legal obligation under Article 6(1)(c) for retaining purchase records to the extent required by tax law in [INSERT JURISDICTION, likely your country/state].

We do not rely on consent for any processing in section 4 because there is no personal data under Article 4(1) on our side: encrypted ciphertext we cannot read, plus opaque IDs not linked to a person, do not constitute personal data unless and until they can be associated with an identifiable natural person.

Review before publish Counsel should confirm the legitimate-interests assessment and the assertion that pseudonymous opaque IDs plus encrypted ciphertext do not constitute personal data under Recital 26. Some EU regulators take the position that any persistent identifier is personal data even when no real-world link exists. The conservative position is to treat sync data as personal data and rely on Art. 6(1)(b).

6. Third-party processors

We use exactly two categories of third party. Both are necessary to deliver the service.

Apple Inc.

  • What they do for us: App Store distribution, in-app purchase processing via StoreKit 2, push notifications via APNs (if you enable them), device-level crash and performance reports if you have opted in via iOS Settings.
  • What data they receive directly from you: payment information, App Store account identifier, device telemetry per Apple's policies. We never see any of this.
  • Apple's privacy policy: apple.com/legal/privacy
  • App Store data and privacy: apple.com/legal/privacy/data/en/app-store

Cloudflare, Inc.

  • What they do for us: Hosts our sync-worker (Cloudflare Workers + D1 + KV) and the AI model file (Cloudflare R2). Provides standard CDN edge protection.
  • What data they process: encrypted sync payloads, opaque sync/device IDs, IP addresses for connection routing and abuse prevention, request logs for service operation.
  • Region: Cloudflare routes requests to the nearest edge by default. Our worker is deployed globally; D1 is replicated. We do not pin to a specific region.
  • Cloudflare's privacy policy: cloudflare.com/privacypolicy
  • Cloudflare DPA: Available on request, signed [INSERT DATE OR "TODO"].
Review before publish Counsel should confirm whether the Cloudflare standard DPA is in place and which Standard Contractual Clauses apply for international transfers (US receiving from EU users). If we want to limit data to EU regions, we must configure Cloudflare regional restrictions and document that here.

We use no analytics SDK, no advertising SDK, no crash-reporting SDK other than Apple's built-in opt-in service, no attribution SDK, no fingerprinting library, no third-party tracking pixel, and no tag manager.

7. International data transfers

If you are outside the United States and use sync, your encrypted sync payload may transit to and be stored on Cloudflare infrastructure that includes US points of presence. We rely on the following legal mechanisms:

  • EU/EEA users: Standard Contractual Clauses (Commission Implementing Decision (EU) 2021/914) between us and Cloudflare, plus Cloudflare's adherence to the EU-US Data Privacy Framework where applicable.
  • UK users: UK Addendum to the SCCs as published by the ICO, in force from 21 March 2022.
  • Swiss users: Swiss-US Data Privacy Framework where Cloudflare is certified.

Because the only personal data we transmit is encrypted ciphertext we cannot decrypt, plus opaque pseudonymous identifiers, the practical impact of any cross-border transfer is minimal.

Review before publish Confirm DPF certification status of Cloudflare at the time of publishing. If the EU-US DPF has been invalidated again (Schrems III scenarios), we must rely solely on SCCs plus Transfer Impact Assessment.

8. Your rights

All users

  • Delete the app to delete the data. Because almost all data is on your device, uninstalling KickMint deletes it.
  • Export. Settings > Data > Export creates a JSON file you can save anywhere. Sync is not required to export.
  • Disable sync. Settings > Sync > Disable. Subsequent local changes are never sent.
  • Revoke a paired device. Settings > Sync > Devices > Revoke. The revoked device cannot re-register (see sync-worker/src/index.ts, the handleRevokeDevice function).

EU/EEA, UK, and other GDPR-style users

Under GDPR Articles 15-22 and equivalent UK provisions, you have the rights of access, rectification, erasure, restriction, portability, and objection.

  • Right of access (Art. 15): ask [email protected] and we will send you everything we hold that is associable with your sync group ID. In practice this is your sync group's encrypted operation list, sanitized device names, and timestamps. We cannot decrypt the operations. We will respond within 30 days.
  • Right to erasure (Art. 17, "right to be forgotten"): ask [email protected] and provide your sync group ID (visible in Settings > Sync > Advanced). We delete all operations, device records, and the secret hash within 30 days. Local data on your devices is unaffected; delete the app to remove that.
  • Right to portability (Art. 20): the in-app Export feature satisfies this for your task data. For sync metadata, ask [email protected] and we will export in JSON.
  • Right to restriction (Art. 18) and objection (Art. 21): disable sync in Settings, which stops further processing.
  • Right to lodge a complaint (Art. 77): you may complain to your national data protection authority. In Ireland, the DPC at dataprotection.ie. In the UK, the ICO at ico.org.uk.

California users (CCPA / CPRA)

Under California Civil Code section 1798.100 et seq., you have the rights of access, deletion, correction, opt-out of sale or sharing for cross-context behavioral advertising, and limit on use of sensitive personal information.

  • Right to know (1798.110, 1798.115): ask [email protected]. As described above, we hold opaque IDs and encrypted ciphertext. We have no source from which we sold or shared personal information because we do not sell or share.
  • Right to delete (1798.105): see the EU section above for the same mechanism. We do not retain any backup copies of operations after deletion outside of Cloudflare's standard 30-day request log retention.
  • Right to opt out of sale or sharing (1798.120): N/A. We do not sell or share personal information for cross-context behavioral advertising as those terms are defined in 1798.140.
  • Right to limit use of sensitive personal information (1798.121): N/A. We do not collect sensitive personal information as defined in 1798.140(ae). All cycle, health, sleep, and medication data stays on your device and is in nonSyncableTables.
  • No discrimination (1798.125): we do not discriminate against you for exercising any of these rights. Pricing and features do not depend on whether you exercise rights.
  • Authorized agent requests: you may designate an agent under California Code of Regulations Title 11 section 7063 by emailing [email protected] with written authorization signed by you.

We are required to disclose retention periods (1798.100(a)(3)). Because we collect almost nothing, the relevant retention periods are: encrypted operations are retained until you request deletion or for the lifetime of the sync group, whichever comes first; device records are retained until you revoke the device; tombstones are retained for 30 days then auto-deleted by a daily cron in sync-worker (scheduled handler in index.ts).

Brazil users (LGPD)

Under Lei nÂș 13.709/2018, particularly Article 18, you have the rights of confirmation of processing, access, correction, anonymization, portability, deletion, information about sharing, and revocation of consent. Use the same email mechanism as above. ANPD complaints: gov.br/anpd.

Canada users (PIPEDA)

PIPEDA Principle 9 (Individual Access) and Principle 8 (Openness) apply. Contact [email protected]. The Office of the Privacy Commissioner of Canada accepts complaints at priv.gc.ca.

Australia users (Privacy Act 1988)

Australian Privacy Principles 5, 6, 12, and 13 apply. Contact [email protected]. The Office of the Australian Information Commissioner accepts complaints at oaic.gov.au.

Review before publish Confirm whether we meet the small-business exemption under the Australian Privacy Act ($3M turnover threshold). If yes, we are still bound for "health information" handling, but the broader Privacy Act may not apply. Most likely we are below threshold but we should plan for being above.

9. Children's privacy

KickMint is rated 4+ on the App Store, but the product is built for adult users. We do not direct the app at children under 13 (United States COPPA, 15 U.S.C. sections 6501-6506) and we do not knowingly collect data from children under 13.

The 4+ App Store rating reflects the absence of objectionable content, not a target audience of small children. Per Apple's App Review Guideline 1.3 and the Kids Category guidance, an app is "directed at children" only if it is primarily intended for children under 13, which KickMint is not.

If you are a parent or guardian and you believe a child under 13 has used KickMint, contact [email protected]. We will delete any associated sync group on confirmation.

For users in the UK, the ICO's Age Appropriate Design Code (issued under section 123 DPA 2018) applies to services likely to be accessed by children. Because our user base is intentionally adult-targeted (productivity for ADHD adults), we believe the Code is not applicable to KickMint, but we have nevertheless followed its data-minimization guidance by collecting nothing.

Review before publish This is an area of active regulatory expansion. The 2025 App Store Accountability Act and similar state laws may impose new age-verification duties on app distributors (Apple) that flow back to developers. Counsel should re-review at publication time.

10. Security

  • Local data: stored in the iOS app sandbox using SQLite, automatically protected by iOS Data Protection (NSFileProtectionComplete-class), encrypted at rest with a key derived from your device passcode.
  • Cryptographic keys: the sync secret, HMAC signing key, and AES-256-GCM encryption key live in the iOS Keychain. On devices with the Secure Enclave, the keys are hardware-backed.
  • Sync transport: TLS 1.3 to Cloudflare endpoints, plus a second layer of AES-256-GCM application-layer encryption on the payload (we encrypt before transmission; Cloudflare cannot decrypt).
  • Authentication: every authenticated sync request is HMAC-signed using the sync group secret with a 5-minute timestamp window and single-use nonce, providing replay protection (see sync-worker/src/index.ts validateAuth and iosApp/Sources/Sync/DeviceIdentity.swift).
  • Rate limiting: per-device and per-group quotas in the sync worker prevent abuse and exfiltration attempts.
  • Breach notification: if we discover a breach involving personal data, we will notify affected users without undue delay and within 72 hours of becoming aware where required by GDPR Article 33, and within statutory windows under CCPA, LGPD, PIPEDA, and Australia's Notifiable Data Breaches scheme.
Review before publish Confirm we have an incident response runbook before publishing this language. Promising 72-hour notification creates a contractual and regulatory commitment.

11. Retention

DataRetention
Local task and AI data on your deviceUntil you delete it or uninstall the app
Encrypted sync operations on our backendUntil deletion request, sync group revocation, or 30 days after the last device revoked. After all devices in a group are revoked we purge associated rows on the next scheduled cleanup.
Tombstones (deletion records)30 days, then auto-purged daily by sync-worker cron at 03:00 UTC
Cloudflare connection logsPer Cloudflare's standard policy, typically rolling 30 days for abuse prevention
Apple StoreKit purchase recordsPer Apple's policy. We retain receipt data only for the lifetime of the subscription

12. Changes to this policy

If we make material changes, we will:

  1. Update the "Last updated" date at the top.
  2. Notify users inside the app the next time they open it after the change.
  3. For changes that broaden processing (which we do not anticipate), we will give 30 days' advance notice and, where required, request fresh consent.

13. Contact

  • Privacy questions, rights requests, or breach reports: [email protected]
  • Legal notices: [email protected]
  • Postal address: [INSERT MAILING ADDRESS]

If you do not receive a response within 30 days, you may escalate to your data protection authority. See section 8 for the relevant authority in your jurisdiction.

Review before publish Final lawyer pass should verify (a) entity name and address, (b) controller / processor designations across jurisdictions, (c) DPO and Article 27 representative status, (d) Cloudflare DPA in place and SCCs signed, (e) all [INSERT ...] placeholders replaced, (f) effective date set, (g) localization needed for non-English markets where required by law.
KickMint

Made for ADHD brains. On-device AI, always.

Product

  • Features
  • Pricing
  • FAQ
  • Waitlist

Company

  • [email protected]
  • Support
  • Privacy contact

Legal

  • Privacy policy
  • Terms of service
  • Cookies
© 2026 KickMint. Made for ADHD brains, on-device AI. [email protected]