Privacy Policy

How MoonSleeper collects, uses, and protects your personal information.

Effective date: April 18, 2026 (v1.6) · Last updated: April 18, 2026

This Privacy Policy describes how MoonSleeper ("we", "our", "the App") collects, uses, and shares information when you use our iOS application. It applies to all users of MoonSleeper.

1. Who we are

MoonSleeper is operated by Lin Quote, an independent developer.
Contact: [email protected]

2. Information we collect

We collect the following limited categories of data, described below with purpose and whether the data is linked to your identity.

2.1 Account information

  • Email address — used to create and authenticate your account, and to send essential service messages (e.g., password reset). Linked to your identity.
  • Display name (optional) — used to personalize the in-app experience. Linked to your identity.

2.2 Health and fitness data

  • With your explicit permission, we read sleep analysis and heart rate samples from Apple HealthKit.
  • We compute aggregate sleep metrics (sleep duration, sleep efficiency, time in bed) and store these summaries on our servers, linked to your account, to power your sleep score, trends, and reports.
  • We do not sell health data, share it with advertisers, or use it for any purpose other than delivering the App's features.

2.3 Audio data (processed on-device)

  • The App requests microphone access to detect snoring and ambient noise events during sleep tracking.
  • Raw audio never leaves your device. We process audio locally on your iPhone in real time. Only short event metadata (e.g., snore counts, brief snore clip references) is associated with your sleep session.
  • Short snore clips may optionally be exported by you via the in-app debug export feature for personal review or to send to support.

2.4 Identifiers and device telemetry

  • User ID — an internal identifier we assign to your account.
  • Anonymous device ID — a randomly generated UUID stored in your device's Keychain. Used to give your device a stable identity for push notifications when you have not yet created an account.
  • APNs device token — provided by Apple, used solely to deliver push notifications you enable.
  • Device model (e.g., "iPhone15,4") — collected once per device at sign-in for diagnostics and to understand which hardware generations we need to support.
  • iOS version — collected once per device at sign-in for diagnostics and OS-compatibility investigations.
  • App version — collected at sign-in and refreshed on each launch for diagnostics and to measure feature adoption across releases.

We do not use the iOS advertising identifier (IDFA), and we do not use any of these identifiers to track you across other apps or websites.

2.5 Usage data

  • We use Firebase Analytics to collect product interaction data (screen views, feature usage, session length) to understand which features users find valuable and to improve the App.
  • This data is linked to your User ID for our internal analysis.
  • Usage metrics are joined with your current app version so we can correlate feature adoption, regressions, and crash rates with specific releases.

2.6 Diagnostics

  • We collect anonymous crash reports and performance metrics (e.g., scene load times) to identify and fix bugs.
  • This data is not linked to your identity.

2.7 Onboarding survey answers (optional)

  • Onboarding survey answers (optional) — Your responses to up to six optional questions shown on first launch, covering your primary sleep goal, main challenges, schedule, bedtime, desired wake experience, and experience level with sleep tracking. You may skip any question. Linked to your anonymous device ID. Used to personalize in-app recommendations and subscription prompts.

2.8 Subscription information

  • When you purchase a subscription, Apple processes the payment. We never see your payment card or financial information.
  • We store your subscription tier (free, monthly premium, annual premium) and renewal status, linked to your account, to unlock features.

2.9 Coarse location (weather only, in-memory)

  • With your explicit permission (iOS "Allow Once" or "While Using the App"), we read your approximate location at the start of a sleep session and pass it directly to Apple WeatherKit to retrieve weather conditions (temperature, humidity, hourly forecast, condition code) for your sleep environment report.
  • Coarse location is used in memory only for the WeatherKit request; we do not store latitude / longitude on your device or on our servers. Only the resulting weather snapshot (temperature, humidity, condition) is persisted, linked to your sleep session.
  • You can deny or revoke location permission at any time in iOS Settings → Privacy & Security → Location Services → MoonSleeper. With permission denied, the Weather card on the Dashboard simply shows an "unavailable" state; all other App functionality is unaffected.

2.10 Coarse country (server-side IP lookup)

  • We derive a coarse country code (ISO 3166-1 alpha-2, e.g. "TW") from your IP address at the moment you authenticate. We do not store your IP address. Only the 2-letter country code is retained, linked to your account, for regional usage analytics.
  • The lookup is performed server-side using a bundled offline MaxMind GeoLite2 database; no network call is made to MaxMind and your IP address is never sent to a third party for this derivation.
  • Country is derived only from the server-observed IP at the moment of authentication (not continuously). It is not a precise location and cannot identify a city, address, or device location.

3. How we use your information

We use the data described above only to:

  • Provide core App functionality (account, sleep tracking, sleep aid library, reports)
  • Authenticate you and secure your account
  • Deliver push notifications you opt into
  • Analyze product usage to improve features
  • Diagnose crashes and performance issues
  • Manage your subscription

We do not use your information for third-party advertising, marketing emails (we do not currently send any), profiling for ads, or selling data to data brokers.

Opt-out of analytics. You can disable Firebase Analytics collection at any time in Settings → Privacy → Share usage analytics. Crash reports and subscription/account activity remain active because they are required for app stability and service delivery.

3.1 Lawful basis (GDPR Art. 6 / Art. 9)

For users subject to the EU / UK GDPR, each processing purpose below relies on the lawful basis identified. Where processing is based on consent (Art. 6(1)(a) or Art. 9(2)(a)), you may withdraw consent at any time (see §7).

Processing purposeLawful basis (GDPR Art. 6)Notes
Account authenticationContract (Art. 6(1)(b))Necessary to provide service
Sleep tracking + HealthKit dataExplicit consent (Art. 9(2)(a))iOS HealthKit permission prompt
Aggregated sleep metrics syncContract (Art. 6(1)(b))Required for sync feature
Subscription managementContract (Art. 6(1)(b))Required to unlock features
Firebase AnalyticsLegitimate interest (Art. 6(1)(f)) — product improvementRight to object under Art. 21
Anonymous diagnosticsLegitimate interest (Art. 6(1)(f))No user identification
Push notificationsConsent (Art. 6(1)(a))iOS permission prompt
Onboarding surveyConsent (Art. 6(1)(a))All questions skippable; explicit opt-in disclosure on Q1
Account deletion requestLegal obligation (Art. 6(1)(c)) + user right (Art. 17)

4. Third parties we share data with

We rely on the following service providers to operate MoonSleeper. Each receives only the minimum data needed for its function.

ProviderPurposeData received
Apple (HealthKit, APNs, App Store)OS APIs, push delivery, paymentsHealth data stays on device; APNs token used for push; Apple processes purchase data
RevenueCatSubscription managementInternal user ID, subscription product ID and status
Firebase Analytics (Google)Product analyticsUser ID, screen views, anonymized event data
RailwayBackend hostingAll server-side data described above
Cloudflare R2Audio content deliveryNone of your personal data; only public sleep aid audio
Cloudflare (CDN for moonsleeper.com)Serves static pages (privacy, terms, tips) on our marketing siteStandard HTTP request metadata only; no account data
Fastly (via Railway edge, api.moonsleeper.com)Default CDN / edge in front of our Railway APIStandard HTTP request metadata for API routing; no additional personal data
MaxMind (GeoLite2, bundled offline database)Server-side IP → country-code lookup at authenticationNo network call to MaxMind; the database is bundled with our backend and runs locally
Apple WeatherKitWeather data for sleep environment reportCoarse latitude / longitude (in-memory only at sleep start; never stored by MoonSleeper). Apple's own WeatherKit data handling applies.

We do not share your data with any other party for any purpose other than what is described in this Policy.

5. Data handling — disclosure of limited collection

For transparency:

  • Coarse location (WeatherKit) — used only at sleep start to fetch weather from Apple WeatherKit (see §2.9). Latitude / longitude is held in memory for the WeatherKit request and is never stored on your device or on our servers; only the resulting weather snapshot (temperature, humidity, condition code) is persisted with your sleep session. Permission is optional; denying it disables the Weather card but does not affect any other feature.
  • No precise GPS coordinates — we never request precise (kCLLocationAccuracyBest) location; only reducedAccuracy (coarse, ~1–10 km) for WeatherKit. We derive coarse country-level location from your IP address only at authentication (see §2.10), and we do not store the IP itself.
  • No contacts
  • No browsing or search history
  • No financial information (Apple processes payments)
  • No raw audio recordings transmitted off-device

6. Data retention

  • Account data: retained while your account is active.
  • Health summaries: retained while your account is active.
  • Anonymous diagnostics: retained for up to 90 days.
  • Device telemetry (device model, iOS version, app version, coarse country code): retained while your account is active and deleted as part of account deletion within 30 days.
  • On account deletion, we delete or anonymize your personal data within 30 days, except where retention is required by law.

7. Your rights

Everyone

You can:

  • Access and edit your account information in the App's Profile screen.
  • Disable HealthKit permissions at any time in iOS Settings → Privacy & Security → Health → MoonSleeper.
  • Disable push notifications in iOS Settings → MoonSleeper → Notifications.
  • Request deletion of your account via the in-app "Delete Account" option in Profile → Account, or by contacting [email protected].
  • Request a copy of the personal data we hold about you.

EU / UK / EEA residents (GDPR / UK GDPR)

If you reside in the European Union, United Kingdom, European Economic Area, or Switzerland, you have the following rights under the EU General Data Protection Regulation (GDPR) and UK GDPR:

  • Right of access (Art. 15) — obtain confirmation of whether we process your personal data, and a copy of that data.
  • Right to rectification (Art. 16) — correct inaccurate or incomplete personal data.
  • Right to erasure / "right to be forgotten" (Art. 17) — request deletion of your personal data.
  • Right to restriction of processing (Art. 18) — request that we limit how we process your data in certain circumstances.
  • Right to data portability (Art. 20) — receive your personal data in a structured, commonly used, machine-readable format, and transmit it to another controller.
  • Right to object (Art. 21) — object to processing based on legitimate interests, including profiling.
  • Right to withdraw consent (Art. 7(3)) — where processing is based on consent (e.g., HealthKit access), withdraw consent at any time; withdrawal does not affect the lawfulness of processing prior to withdrawal.
  • Right to lodge a complaint with a supervisory authority (Art. 77) — file a complaint with your local data protection authority (e.g., CNIL in France, ICO in the UK, Datenschutzbehörde in Austria). A list of EU DPAs is available at edpb.europa.eu.

To exercise any of these rights, email [email protected]. We will respond within 30 days of receiving a verifiable request. There is no fee unless a request is manifestly unfounded or excessive.

California residents (CCPA / CPRA)

If you are a California resident, you have the following rights under the California Consumer Privacy Act as amended by the California Privacy Rights Act:

  • Right to Know — what categories and specific pieces of personal information we collect, the sources, the purposes, and the categories of third parties we share it with.
  • Right to Delete — request deletion of personal information we have collected from you (subject to legal exceptions).
  • Right to Correct — request correction of inaccurate personal information we maintain about you.
  • Right to Opt-Out of Sale or Sharing — opt out of the sale or sharing of your personal information. We do not sell or share your personal information for cross-context behavioral advertising, and we have not done so in the preceding 12 months. Accordingly, no "Do Not Sell or Share My Personal Information" link is required.
  • Right to Limit Use of Sensitive Personal Information — limit our use of sensitive personal information (e.g., health data) to purposes necessary to provide the service. We already restrict health data to core App functionality.
  • Right to Non-Discrimination — we will not discriminate against you for exercising any CCPA right (no denial of service, different pricing, or reduced quality).

To exercise these rights, email [email protected]. You may designate an authorized agent to submit a request on your behalf, provided the agent supplies written permission and we can verify your identity. We will respond within 45 days (extendable once by another 45 days with notice) as required by the CCPA.

8. Children's privacy

MoonSleeper is not directed to children under 13 (or under 16 in the EU). We do not knowingly collect personal information from children. If you believe a child has provided us with personal information, please contact us and we will delete it.

9. International transfers

Our servers are operated by Railway in the United States. By using the App, you understand that your information may be processed in the United States or other countries with different data protection laws.

For users in the European Economic Area (EEA), United Kingdom, or Switzerland, transfers of your personal data to the United States are made under Standard Contractual Clauses (SCCs) as adopted by the European Commission (Decision 2021/914) and, where applicable, the UK International Data Transfer Addendum issued by the UK Information Commissioner's Office. These clauses provide contractual safeguards equivalent to GDPR protections. A copy of the SCCs is available on request by emailing [email protected].

10. Changes to this policy

We may update this Policy from time to time. The "Last updated" date at the top will reflect changes. Material changes will be communicated in the App or by email.

11. Contact

Questions about this Policy or your data?
Email: [email protected]

Effective Date: April 18, 2026 · Last Updated: April 18, 2026 · Version 1.6