S. S. Dhillon Author · AI educator

Privacy Policy

Effective date: 27 September 2026 · App: Nocturn (Android package online.ssdhillon.nocturn) · Developer: S. S. Dhillon, Punjab, India

Nocturn is an offline-first habit and sleep tracker for night-shift workers. This policy explains what data the app handles, why, who processes it for us, and what choices you have. It applies to Nocturn version 1.1.0 and later, whose online features run on Google Firebase. Older versions of the app are covered in section 15.

In this policy, a custom day is the 24-hour day Nocturn uses. It starts at the time you set under Settings → Your custom day.

In short

  • Your habits, sleep log, shift roster and settings stay on your phone, apart from the AI summaries and the optional backup described below.
  • The app signs in to Google Firebase with a random anonymous ID. There is no name, email or password.
  • To write the Coach Briefing and the Weekly Recap, the app sends a summary of your habits and sleep to Google’s Gemini AI automatically, usually once or twice per custom day. Habit suggestions and chat are sent only when you use them.
  • Chat history is kept in the cloud and deleted automatically within about 90 days. You can delete it at any time.
  • Cloud backups (Pro) are kept until you delete them in the app.
  • No ads, no analytics, and we never sell your data. Nocturn is for adults aged 18 and over.

1. Data stored only on your phone

Your habits (titles, notes, icons and completion history), sleep log, shift roster, reminders and settings are stored on your phone. They leave your phone only in the ways described below: as a summary for the AI coach (section 4) and, if you choose, as a cloud backup (section 7). Habit notes and reminder times are never sent to the AI. Settings → Reset all data, or uninstalling the app, removes this data from your phone.

2. Your anonymous app ID (Firebase Authentication)

The first time the app starts, it signs in to Google’s Firebase Authentication anonymously. This creates a random user ID for your copy of the app. We do not ask for, and Firebase does not receive, your name, email address, phone number or a password.

The app uses this ID to keep your chat history private to you, to count free AI requests (section 6), to label AI reports, and as your customer ID with RevenueCat (section 9). From version 1.1.1 the app also shows it to you as your Support ID under Settings → About, so you can quote it when you ask us to delete your data (section 14). The app connects to Firebase when it starts and while you use it, for example to keep this sign-in and its App Check token (section 3) valid and, without Pro, to read your free AI counter.

To sign you in, Firebase Authentication processes your device’s IP address and user agent. Google states that it uses them for security and to prevent abuse, that it keeps logged IP addresses for a few weeks, and that Firebase Authentication runs only from data centres in the United States.

Reset all data keeps this ID, so your Pro subscription and your daily free AI limit carry on. Clearing the app’s data in Android settings, or uninstalling the app, removes the ID from your phone, and the app creates a new one the next time it starts (section 9 explains how to get Pro back). Records linked to the old ID stay until they expire or are deleted (sections 13 and 14).

3. Checking that the app is genuine (Firebase App Check and Play Integrity)

To stop fake or modified apps from using our AI service and database, the app’s requests to Firebase carry an App Check token. To get this token, Google Play services on your phone uses Google’s Play Integrity API. Google lists the data this API always collects for a check as: values from the check request itself, app information (package name, version number and signing certificate), the app’s Google Play licence status for the accounts signed in on the phone, and device information including a key attestation certificate and a device attestation token generated by Google Play services.

Google states that this data is used to verify the integrity of the app and the device and the licence status, that it is encrypted, that it is not transferred to third parties, and that it is deleted after a fixed retention period. Firebase App Check does not keep this attestation material, and the tokens it issues are valid for at most 7 days. Neither the app’s code nor we see the device information itself. The Firebase console shows us only how many requests passed or failed the check.

4. AI coaching (Firebase AI Logic and Google Gemini)

Nocturn’s coach uses Google’s Gemini AI model. The app sends its requests directly to Google through Firebase AI Logic over an encrypted (HTTPS) connection. There is no Nocturn server in between.

What runs automatically

  • Coach Briefing (Today screen): requested when the Today screen opens in a new custom day, when the day switches between on-shift and off, or when you tap refresh or pull down to refresh. Otherwise the app shows the briefing it saved earlier that custom day.
  • Weekly Recap (Stats screen): requested the first time you open Stats in a new custom day, or when you tap refresh.

These two run without a separate tap, so using the app normally sends the summaries below to the AI once or twice per custom day. Without Pro, they count toward your free AI limit (section 6), and once that limit is reached they are not requested again until the next custom day. The app currently has no setting to turn them off.

What runs only when you ask

  • Habit suggestions, when you tap Suggest 3 in the habit editor.
  • Ask Nocturn chat, when you send a message.

Exactly what is sent

  • Coach Briefing: whether today is an on-shift or off day; the start and end time and the date of your current custom day; your shift pattern name if you set one (for example “4 ON / 4 OFF”); how many of today’s habits you have completed out of how many; and, for each of today’s habits (up to 50), its title, whether it is done today, its current streak and whether it applies to on days, off days or both. Also your sleep summary (below).
  • Sleep summary (sent with the briefing and with every chat message): your sleep goal; your total sleep so far in the current custom day and whether you met the goal; whether a sleep session is running right now; the date and total sleep of each of the previous 7 custom days on which you slept, and their average; and any sleep debt over those days.
  • Weekly Recap: for the previous 7 custom days, your shift pattern name and how many were on-shift days; for each habit (up to 50) its title, how many times you completed it, how many times it applied and its current streak; each day’s date, total sleep (or “no log”) and whether it was an on or off day; your sleep goal and any sleep debt.
  • Habit suggestions: whether you are on or off shift, your shift pattern name, and the titles of your existing habits (up to 100, each shortened to 60 characters).
  • Ask Nocturn chat: your message, your sleep summary, and your 20 most recent saved chat messages so the coach can follow the conversation.

Each request also carries your anonymous sign-in token, an App Check token and technical identifiers of the app (such as its Firebase app ID and the version of Google’s software library), so Google can check that it comes from a signed-in, genuine copy of the app. We do not send your name, email address, contacts, location, habit notes, reminder times, backup code or payment details.

How Google handles AI requests

AI requests go through Firebase AI Logic to Google Cloud’s Agent Platform Gemini API, a paid Google service covered by the Gemini API Additional Terms of Service and Google Cloud’s terms. Under these terms Google does not use your prompts or the AI’s replies to improve its products, and processes them as our data processor under its data processing terms. Google may keep prompts, the context sent with them and the AI’s replies for up to 55 days to detect and prevent violations of its Prohibited Use Policy and for any legally required disclosures, and Google’s models keep request data in memory only (not on disk) for up to 24 hours to answer faster. We use Google’s global endpoint, so a request may be processed in any Google Cloud location. Firebase AI Logic itself does not store them.

AI can be wrong

AI replies are generated automatically and can be wrong. They are general wellness information, not medical advice. Every AI card and the chat screen are labelled “AI-generated · not medical advice”. The app switches on Google’s safety filters for harmful content on every AI request. It also instructs the chat coach not to give medication, supplement or drug doses or diagnoses, to recommend a doctor for anything serious, to tell you to contact local emergency services if you mention self-harm or seem to be in danger, and never to encourage driving while drowsy. You can report any AI reply (section 8).

5. Chat history

Your Ask Nocturn conversation is stored in Google Cloud Firestore under your anonymous ID, so it survives app restarts. For each message we store who wrote it (you or the coach), the text, the time, the time it is due to be deleted, and your anonymous ID. A message and its reply are saved together, only after the coach has replied. Our database rules let only the app signed in with your ID read or delete your chat.

Each message is set to expire 85 days after it is sent. Firestore then deletes it automatically, typically within a day, so each message is gone within about 90 days. You can delete your whole chat at any time with the trash icon on the chat screen. Reset all data does not delete your chat, so use the trash icon first if you want it gone.

6. Free AI limit

Without Pro, you can make 5 AI requests per custom day. This includes the automatic Coach Briefing and Weekly Recap. Only requests that return an answer are counted. So that resetting the app or restoring a backup cannot refill the limit, we keep a small counter in Firestore under your anonymous ID: the date of your current custom day, the number of AI requests used that day, and when it was last updated. Each new custom day replaces the previous day’s values. The counter is not updated while you have Pro.

7. Cloud backup (optional, Pro)

If you tap Back up now, a copy of your app data is stored in Google Cloud Firestore under a random backup code shown to you. The copy contains your habits (titles, notes, icons and completion history), your sleep log (the times you slept), your shift roster, your settings and reminder times, your backup code and the date of your last backup, and your AI-usage count for the current custom day. We also store when the backup was created and last updated; anyone who restores with the code can read these too. A backup does not contain your anonymous ID. Backups do not include your chat history, your chat session ID or any payment details.

Anyone who has the code can restore, overwrite or delete that backup, so keep it private. A backup is kept until you delete it with Settings → Delete cloud backup (Reset all data also offers to delete it). There is no automatic expiry. After a backup is deleted or overwritten, someone who has the code can still read the previous copy for up to about an hour, because Google’s database keeps recent versions readable for that long.

8. AI content reports

Each AI card (Coach Briefing, Weekly Recap, each habit suggestion) and each chat reply has a Report button. In chat you can also long-press a reply. If you report something, we store the reported text (up to 4,000 characters), the reason you picked, which part of the app it came from, the time, its review status and your anonymous ID, so we can review it. The rest of your chat is not included. Reports are kept for 12 months after we receive them.

9. Subscriptions and payments

Nocturn Pro is sold through Google Play. Google Play processes the payment; we never see your card or bank details. Subscription status is managed by RevenueCat. Each time the app starts, it connects to RevenueCat. RevenueCat receives your anonymous app ID from section 2, which is used as your RevenueCat customer ID (RevenueCat may also create its own random ID for your copy of the app), your purchase and entitlement status and basic device information (platform, app version), in order to unlock Pro, support Restore purchases and show Manage subscription.

If you reinstall the app, clear its data or move to a new phone, the app has a new anonymous ID (section 2) and shows the free plan until you tap Restore purchases while signed in to the Google Play account that bought Pro. Pro is active in one copy of the app at a time: restoring it in a new copy (after a reinstall, after clearing the app’s data, or on another phone) moves Pro to that copy, and the previous copy returns to the free plan.

10. Fonts and pictures

When the app starts, it downloads its fonts from Google Fonts (fonts.gstatic.com). The Today and Shift screens load two background photos from Unsplash (images.unsplash.com). The app keeps copies on your phone after downloading them, so it usually does not need to download them again. These services receive your IP address and standard request information such as your device’s user agent. No app data is sent to them. See Google’s privacy policy and Unsplash’s privacy policy.

11. What we do not collect or do

  • We do not collect names, email addresses, phone numbers, passwords, contacts, photos, location or health-sensor data.
  • No advertising and no analytics. Google Analytics for Firebase is not used, and its data collection is switched off in the app.
  • No push notifications. Reminders are scheduled on your phone, and automatic Firebase Cloud Messaging registration is switched off in the app.
  • We do not sell your data or share it for advertising.

12. Where your data is stored and who processes it

We use Google Firebase (Firebase Authentication, Firebase App Check, Cloud Firestore and Firebase AI Logic with Google Cloud’s Agent Platform Gemini API). For these services Google generally acts as our data processor, under the Firebase Data Processing and Security Terms. AI requests are also covered by the Google Cloud terms described in section 4. See also Privacy and Security in Firebase.

Cloud Firestore data (chat history, backups, the free AI counter and AI reports) is stored in Google Cloud’s asia-south1 location (Mumbai, India). Firebase Authentication processes data in the United States (section 2). AI requests are handled by Google as described in section 4. Firebase encrypts data in transit with HTTPS, and Firestore encrypts data before it is written to disk. RevenueCat and Google Play handle subscription data as described in their own policies. Every online service the app connects to receives your device’s IP address, as any internet connection requires.

Our database rules limit who can reach each record: your chat and your AI counter only through the app signed in with your ID; a backup only by someone who has its code; AI reports cannot be read back through the app. We, the developer, can see stored data in the Firebase console and use that access only to run the app, review reports and handle your requests.

13. How long we keep data

DataWhereHow long
Habits, sleep log, roster, settingsYour phoneUntil you reset the app or uninstall it
Chat messagesCloud FirestoreDeleted automatically within about 90 days of being sent, or at once when you clear the chat
Cloud backupCloud FirestoreUntil you (or anyone with the code) delete it; no automatic expiry
Free AI counterCloud FirestoreReplaced every custom day; the record exists until we delete it at your request
AI reportsCloud Firestore12 months after we receive them
Anonymous accountFirebase AuthenticationUntil we delete it at your request. Google then removes it from its systems within 180 days. Logged IP addresses: a few weeks
AI requests and repliesGoogle Cloud (Agent Platform Gemini API)Not stored by Firebase AI Logic; held in Google’s memory cache for up to 24 hours; prompts and replies may be kept by Google for up to 55 days to detect abuse
App Check tokensGoogleValid for at most 7 days; App Check does not keep attestation material
Subscription recordsGoogle Play, RevenueCatAs described in their policies
Data on our old server (section 15)Railway, MongoDB AtlasUntil 31 October 2026

14. How to delete your data

  • Chat history: tap the trash icon on the chat screen. This deletes all your chat messages in the cloud.
  • Cloud backup: Settings → Delete cloud backup. Reset all data also offers to delete it.
  • Data on your phone: Settings → Reset all data, or uninstall the app.
  • Subscription: cancel in Google Play › Subscriptions, or from Settings → Manage subscription. Deleting the app does not cancel a subscription.
  • Everything else (your anonymous account, the free AI counter, AI reports you sent, and your RevenueCat record): email singhsukhwinder519@gmail.com with the subject “Delete my Nocturn data”. So that we can find your records, include the Support ID shown under Settings → About (version 1.1.1 and later; update the app if you do not see it). Settings → Contact support adds it to the email for you. If you bought Pro, you can instead include the Google Play order number from your purchase receipt (it starts with “GPA.”). We will reply within 30 days.

If you uninstall the app without clearing your chat, your chat messages are still deleted automatically within about 90 days.

15. Older versions of the app (1.0.2 and earlier)

Versions 1.0.2 and earlier do not use Firebase. They send AI requests, chat messages, backups and AI reports to our previous server (hosted on Railway, with data stored in MongoDB Atlas), which forwards AI requests to Google Gemini on Google’s paid tier. That server stores chat history under a random session ID, deleting each message 90 days after it was sent; stores backups together with the IP address that first created them; and stores AI reports. Nothing is copied from the old server to Firebase. The old server and all data on it will be deleted by 31 October 2026. If you made a backup with an older version, update the app and back up again to keep a copy.

16. Age

Nocturn is intended for adults aged 18 and over who work shift schedules. It is not directed to anyone under 18, and we do not knowingly collect data from anyone under 18.

17. Your choices and rights

You can use the app without cloud backup, delete your chat and your backup in the app, reset all data on your phone, and cancel your subscription in Google Play. Depending on where you live (for example the EU/UK or India’s Digital Personal Data Protection Act), you may have additional rights to access, correct or delete your personal data. Email us and we will respond within 30 days.

18. Changes to this policy

If we make material changes we will update the effective date above and, where appropriate, tell you inside the app.

19. Contact

S. S. Dhillon · singhsukhwinder519@gmail.com · ssdhillon.online

Terms of Use (summary)

Nocturn Pro is an auto-renewable subscription (monthly or yearly), sold through Google Play. If the paywall offers you a free trial, you are charged when the trial ends unless you cancel before then; otherwise payment is charged to your Google Play account when you confirm the purchase. Subscriptions renew automatically unless cancelled at least 24 hours before the end of the current period, and can be managed or cancelled in Google Play › Subscriptions or from Settings → Manage subscription. Deleting the app does not cancel a subscription. Without Pro, AI coaching is limited to 5 requests per custom day. The app provides habit and sleep tracking with AI-generated coaching for general wellness purposes only; it is not a medical device and its content is not medical advice. The app is provided “as is” without warranties, and to the maximum extent permitted by law we are not liable for data loss or decisions made based on AI-generated content.

Scroll to Top