← Home

Privacy Policy — No Panic

Effective date: To be set before store submission
Last updated: 2026-05-07

Publisher: No Panic Labs (temporary working name until legal entity is finalized), Ukraine.
Support contact: denysdubov88@gmail.com (also the sole channel for privacy / GDPR requests).
Canonical URL: https://denid88.github.io/nopanic-app/privacy-policy.html

This Privacy Policy explains how No Panic Labs ("we", "us", "our") handles information in connection with the No Panic mobile application (the "App"). By using the App you acknowledge that you have read this Policy.

We designed No Panic to be privacy-respecting by default:

Read below for the details.


1. Who is the controller

The data controller is No Panic Labs, established in Ukraine. Contact: denysdubov88@gmail.com. We have not appointed a formal Data Protection Officer — all privacy requests go to the same email.

2. What the App stores on your device

The App keeps the following information locally on your device only. We do not receive or read this data.

StorageWhat it containsWhy
SharedPreferences (iOS NSUserDefaults / Android SharedPreferences) — unencrypted onboarding_completed flag Skip onboarding after first run.
SharedPreferences pro_entitlement_cache — a JSON snapshot of your most recent Pro entitlement (active flag, expiry date, renewal flag, product ID, trial flag) Show correct lock state at cold start, including offline.
SharedPreferences affirmation_favorites — IDs of affirmations you hearted Let you revisit your favorites.
SharedPreferences affirmation_of_day_id + affirmation_of_day_date Show a stable "affirmation of the day".
SharedPreferences analytics_consent — a boolean; false by default, set to true only after you explicitly opt in Gate Firebase Analytics collection (see §3.4).
Local SQLite database nopanic_journal.db, table journal_entries Journal body text, optional mood emoji, created/updated timestamps, local auto-incremented ID Power the Journaling feature.
Local SQLite database nopanic_medication.db Medication names, dosages, schedules, and dose history you enter in the Medication Tracker Power the Medication Tracker feature. Stored only on your device; never transmitted to our servers, third-party services, or analytics providers.
OS-managed audio cache Cached playback state for bundled audio files Smooth playback of exercises.
Firebase Analytics local cache (only if analytics consent is granted) An app-scoped pseudonymous Firebase Instance ID and a queue of events waiting to upload Buffer analytics between network uploads. Cleared when you revoke consent or uninstall.

All of the above is removed when you uninstall the App or use your operating system's "Clear data" / "Offload app" action.

The App does not collect or store:

Medication data — Names, dosages, schedules, and dose history you enter in the Medication Tracker are stored only on your device using the local database (SQLite). They are never transmitted to our servers, third-party services, or analytics providers. Anonymized event counts (e.g., a dose was logged) may be sent if you opted in to analytics, but never the medication name or any identifying detail.

3. Third parties that may process data about you

Using the App triggers a minimal, specific set of third-party interactions. We list them exhaustively.

3.1 Apple (App Store) and Google (Google Play)

3.2 RevenueCat

3.3 Google Fonts (runtime font fetch)

3.4 Firebase Analytics (opt-in only)

3.5 Services that do not run

For transparency, the App does not include:

4. Permissions the App requests

The App does not request the microphone, camera, location, contacts, photos, calendar, or Bluetooth. On iOS, the App does request Apple's App Tracking Transparency (ATT) permission — only when you affirmatively opt in to analytics on the Analytics Consent screen, never on first launch and never if you decline analytics. The purpose is described in §3.4.

The App plays bundled audio using standard OS APIs. To enable background playback for the Sleep exercise — so the music keeps playing when you lock the screen and lock-screen / Control Center / Notification controls remain available — the App declares the following non-prompting OS capabilities: on Android, the WAKE_LOCK, FOREGROUND_SERVICE, and FOREGROUND_SERVICE_MEDIA_PLAYBACK permissions and a media-playback foreground service (provided by the audio_service package); on iOS, the audio value in the UIBackgroundModes array of Info.plist. None of these capabilities show an interactive permission prompt or grant the App access to any of your data — they only allow the App's own audio engine to keep playing while the App is backgrounded or the screen is off.

5. Children

The App is not directed at children under 13 and does not knowingly collect personal data from them. If you believe a child under the minimum age has used the App, contact us so we can assist.

6. Your legal rights (GDPR, UA, UK GDPR, CCPA)

Because the App does not associate any data with your identity, many traditional rights (access, export, erasure of "your personal data") do not apply in the usual sense — there is no server-side record linked to you. You nonetheless have the right to:

To exercise any right, email denysdubov88@gmail.com.

7. Legal basis (EU/EEA, UK, Switzerland)

Where the GDPR or an equivalent law applies, the legal bases for the minimal processing described above are:

8. International transfers

The App itself stores data on your device in your country of residence. When you interact with the paywall, RevenueCat and the App Store / Google Play may transfer data internationally (primarily to the United States) under their own safeguards (Standard Contractual Clauses and equivalent mechanisms). If you have enabled analytics, Firebase Analytics also transfers event data to Google's infrastructure (primarily the United States) under Google's Standard Contractual Clauses and equivalent mechanisms.

9. Retention

10. Security

We keep server-side processing to a minimum and rely on Apple's and Google's sandboxing to protect data stored on your device. Journal entries are not encrypted by the App beyond what the operating system provides at rest; if your device supports full-disk encryption and you have enabled a passcode, your data benefits from it. We recommend keeping your OS up to date and using a passcode or biometric lock.

11. Changes to this Policy

We may update this Policy as the App evolves. Changes will be reflected in the "Last updated" date above and, if material, highlighted in the App or at the store listing. Continued use after the updated Policy takes effect constitutes acknowledgement.

12. Contact

Questions, requests, or complaints about this Policy: denysdubov88@gmail.com.


Appendix A — Technical inventory (for completeness)

This section mirrors what a developer or auditor would see in the codebase, so that nothing in the App is undisclosed.

Appendix B — Data deletion summary (for store review)

If a store reviewer asks "how does a user delete their data?":

  1. Inside the App: open Journaling, delete entries individually. In the Medication Tracker, delete medications and dose-history entries individually.
  2. Uninstall the App, or use your device's "Clear data" (Android) / "Offload App + Delete" (iOS) action. This removes all on-device App data, including Journal entries, affirmation favorites, onboarding flag, the Pro entitlement cache, the analytics_consent flag, and the Firebase Instance ID.
  3. To stop ongoing analytics collection, open Settings → Privacy and disable the Analytics toggle. To also delete previously uploaded analytics events, email denysdubov88@gmail.com and we will initiate a deletion request against the Firebase project.
  4. To cancel or delete subscription data held by Apple, Google, or RevenueCat, use the subscription management tools in your App Store or Google Play account, or email denysdubov88@gmail.com for assistance.

← Home