1. Overview
ruby AI ("App") is operated by RUBY AI LLC ("RUBY AI LLC", "we", "our", or "us"). ruby AI is a wellness app designed to help you understand your cycle through educational insights and estimates. We take privacy seriously and aim to collect as little data as possible.
ruby AI is a wellness and education tool. It is not a medical device and does not provide medical advice, diagnosis, or treatment. It is not a contraceptive aid.
2. The Data We Collect
We collect data in two categories:
A) Information you provide
- Account information (if you choose to create an account):
- Sign in with Apple or email address and password
- Optional profile details you enter in the app (such as settings and preferences)
B) App usage data (optional)
If you choose to share anonymous usage data, we collect limited analytics about how you use the app (for example, which screens are opened and which buttons are tapped).
We do not use usage analytics to collect sensitive cycle details.
3. Cycle and Health-Related Data
Cycle-related data (such as period logs, cycle estimates, or symptoms) is sensitive.
- By default, this data is stored on your device using secure local storage.
- We do not sell your cycle data or share it with advertisers.
- We do not send specific dates, raw cycle numbers, individual symptom names, or free-text journal entries to analytics systems. If you opt in to analytics, only coarse, bucketed signals are sent (see Section 5).
On-Device Intelligence
ruby AI includes features that analyze your cycle and symptom patterns to provide personalized insights (such as predicted symptoms and cycle statistics). This analysis is performed entirely on your device. Your symptom data and predictions are never sent to our servers as part of these on-device features.
If we add optional cloud sync in the future, we will update this policy and provide clear controls.
Ruby AI Chat (optional)
ruby AI includes an optional AI chat assistant ("Ruby"). The chat is opt-in: the first time you open it, you'll be asked to consent before any data leaves your device, and you can decline without losing access to the rest of the app.
When you send a message in Ruby AI Chat, the following information is transmitted over an encrypted connection to our servers and then forwarded to OpenAI, our AI processing provider, so Ruby can generate a relevant response:
- The message you typed
- Your current cycle phase and cycle day (e.g., "luteal phase, day 22")
- Your typical cycle length in days
- The symptoms you've recently logged
- The last few messages of the current conversation, for context
We do not send your name, email address, account ID, full period-log history, or any other personal identifier to OpenAI. Conversation history is stored only on your device.
OpenAI processes this data on our behalf under a data-processing agreement and does not use it to train their AI models. You can stop using the chat at any time by simply not opening it.
4. Accounts and Authentication
ruby AI can be used without creating an account. Guest Mode is the default experience, and all core features work without signing in.
If you choose to create an account, ruby AI uses Google Firebase Authentication to sign you in using:
- Sign in with Apple, or
- Email and password
Firebase Authentication helps us securely verify your identity. Depending on the sign-in method, Firebase may process identifiers such as your email address or an Apple-provided identifier to maintain your account.
5. Usage Analytics
If you enable "Share anonymous usage data," ruby AI uses Firebase Analytics to understand app performance and improve the experience.
When enabled, we may collect:
- App open events
- Screen views
- Basic interaction events (e.g., settings toggles)
If you opt in, ruby AI also sets a small set of user properties on Firebase Analytics so we can understand how the app is used across cycle phases. These properties are always coarse buckets — never raw values, dates, or free-text content. Examples include:
- Current cycle phase as a category (e.g., "follicular", "luteal", "unknown")
- Cycle day as a range bucket (e.g., "1_to_7", "8_to_14")
- Cycle length as a category (e.g., "short", "normal", "long")
- Symptom count over the last 7 days as a range bucket (e.g., "1_to_5", "6_plus")
- Top symptom category (e.g., "mood", "physical") — never the symptom names themselves
- Engagement signals such as logging streak bucket and account type
Through Firebase Analytics we do not collect:
- Specific period dates
- Individual symptom names or free-text journal entries
- Ovulation estimates tied to specific dates
- Any sexual-health content you enter as health logs
- Your name or email address
If you do not opt in to analytics, none of the above is sent. You can change your analytics preference at any time in Settings, then Privacy & Data. The optional Ruby AI Chat feature is governed separately by Section 3.
Crash Reports (optional)
If you opt in to crash reporting, ruby AI uses Firebase Crashlytics to receive anonymized diagnostic information when the app crashes. Crash reports include device model, OS version, app version, and the technical stack trace at the moment of the crash. We strip personal identifiers and never include your cycle data, symptom data, or chat content in crash reports. You can turn this off any time in Settings, then Privacy & Data.
6. App Configuration
ruby AI fetches configuration data from our servers to enable features and customize the app experience. These requests do not include any personal information or cycle data. Configuration data is cached on your device to reduce network requests.
7. Notifications
During your first time using the app, ruby AI will ask for your consent to send notifications. If you choose to enable notifications, ruby AI may send:
- Cycle-related reminders (estimates)
- Daily insights
Notifications require your consent through your device settings. You can change notification preferences at any time in Settings, then Notifications.
8. How We Use Data
We use data to:
- Provide core app functionality (settings, reminders, personalization)
- Maintain your account if you create one
- Improve the app (only if you enable anonymous usage analytics)
9. Data Sharing
RUBY AI LLC does not sell your personal data and does not display advertising in the app. We share limited data only with the service providers listed in Section 10 below, strictly so they can operate features of the app on our behalf.
10. Service Providers
We rely on the following third parties to operate the app. Each of them processes data only as described, only on our behalf, and under a data-processing agreement:
- Google Firebase — Authentication (sign-in), Crashlytics (optional crash reports), Analytics (optional usage analytics), Remote Config (in-app configuration), and Firestore (small operational records such as referral codes, feature waitlists, and rate-limit counters).
- OpenAI — generates Ruby AI Chat responses when you choose to use the chat feature, as described in Section 3.
- Resend — delivers your support emails when you submit feedback through the in-app feedback form.
We do not authorize any of these providers to use your data for their own purposes.
11. Data Retention and Storage
- On-device data (cycle, symptoms, settings, chat history) is stored using your device's local storage and remains until you delete it from within the app or uninstall the app.
- Sensitive settings (such as privacy preferences) are stored using your device's encrypted secure storage (iOS Keychain).
- Account data (if you created an account) remains until you delete your account.
- Operational records on our servers (referral codes, feature-waitlist signups) remain until you delete your account, after which they are removed as described in Section 14.
- Server request logs (containing IP address for abuse prevention and rate-limiting) are retained for up to 30 days and then deleted.
- Rate-limit counters reset automatically (daily for the chat feature, hourly for other endpoints).
Where Your Data Is Processed
Our servers and Firebase project are hosted in the United States. If you access the app from outside the United States, your data will be transferred to and processed in the United States.
12. How We Protect Your Data
- All network traffic between the app and our servers travels over encrypted HTTPS connections.
- Sensitive on-device data is stored using your device's secure storage (iOS Keychain via expo-secure-store).
- Account access requires Firebase Authentication using either an Apple-issued identity or a password-verified identity.
- Server access to operational data is limited to authorized personnel and protected by role-based access controls.
- Health data (period logs, symptoms, predictions) stays on your device and is never copied to our servers as part of normal app use.
13. Your Choices and Controls
You can:
- Use ruby AI without creating an account (Guest Mode)
- Turn notifications on/off in Settings
- Enable or disable anonymous usage analytics in Settings
- Enable or disable crash reports in Settings
- Decline the optional Ruby AI Chat feature, or simply not use it
- Export your on-device data as a file from Settings, then Privacy & Data, then Export My Data
- Delete your on-device data from Settings, then Privacy & Data, then Delete My Data
- Delete your account from Settings, then Profile, then Delete Account (if you created one)
14. Account Deletion
If you created an account, you can delete it from Settings, then Profile, then Delete Account, after a confirmation prompt.
When you delete your account:
- Your Firebase Authentication record is permanently deleted, so you can no longer sign in with that identity.
- All on-device cycle, symptom, settings, preference, and chat-history data is erased from your device.
- Server-side records associated with your account — including any referral code tied to your device, any feature-waitlist signup tied to your account or device, and per-user rate-limit counters — are queued for deletion as part of the same request and are removed promptly on a best-effort basis. If a record cannot be removed at that moment, you can email us at support@ruby-app.co and we will complete the removal manually within 30 days.
- Anonymized analytics events and crash reports sent before deletion remain in aggregated form but can no longer be linked to your identity.
- If you signed in with Apple, you can additionally revoke ruby AI's access at any time from your iPhone's Settings, then your name at the top, then Sign in with Apple, then ruby AI, then Stop Using Apple ID.
Deletion is immediate and cannot be undone. If you sign in again later, ruby AI will treat you as a brand-new user.
15. Sign in with Apple
If you choose Sign in with Apple, Apple gives you the option to share your real email address with ruby AI or to hide it behind a private relay address. We honor your choice — if you select the relay option, we only ever receive the relay address, and any email we send (such as a support reply) reaches you through Apple's relay system without revealing your real address to us.
16. Children's Privacy
ruby AI is not intended for children under 13 (or the minimum age required in your region). We do not knowingly collect data from children. If you believe a child has provided personal data to us, please contact us at support@ruby-app.co and we will delete it.
17. Your Rights (For EU Users)
If you are located in the European Union, the United Kingdom, or another jurisdiction with comparable data-protection law, you have the following rights:
- Right to Access: You can request a copy of your personal data. Since cycle data is stored on your device, you already have direct access. You can also export your data from within the app using Export My Data.
- Right to Rectification: You can correct inaccurate data directly in the app.
- Right to Erasure: You can delete your data at any time using the Delete My Data option in Settings, then Privacy & Data, or by deleting your account.
- Right to Data Portability: You can export your data in a machine-readable JSON format using the Export My Data option in Settings, then Privacy & Data.
- Right to Object: You can turn off analytics and crash reports at any time in Settings, then Privacy & Data.
- Right to Lodge a Complaint: You have the right to lodge a complaint with your local data protection authority.
Legal Basis for Processing
We process your data based on:
- Consent: For analytics, crash reports, notifications, and the Ruby AI Chat feature, all of which you can enable or disable at any time.
- Contract: To provide the app's core functionality when you use ruby AI.
- Legitimate Interest: To prevent abuse of free features (rate-limiting using IP address) and to fix issues with anonymized diagnostic data.
International Data Transfers
Our servers and Firebase project are hosted in the United States. When you use the app from outside the United States, your data is transferred to the United States. We rely on the Standard Contractual Clauses approved by the European Commission and equivalent safeguards offered by Google Firebase and OpenAI for these transfers.
Exercising Your Rights
To exercise any of these rights, you can use the in-app controls in Settings, or contact us at support@ruby-app.co. We will respond to requests within 30 days.
18. Your Rights (For California Users)
If you are a California resident, the California Consumer Privacy Act (CCPA), as amended by the California Privacy Rights Act (CPRA), gives you the following rights:
- Right to Know: You can request to know what personal information we have collected about you, including categories of sources and the purposes for which it is used.
- Right to Delete: You can request that we delete your personal information, which you can also do directly using Delete My Data or Delete Account in Settings.
- Right to Correct: You can correct inaccurate personal information by editing it directly in the app or contacting us.
- Right to Opt Out of Sale or Sharing: We do not sell or share your personal information for cross-context behavioral advertising. There is nothing to opt out of.
- Right to Limit Use of Sensitive Personal Information: Cycle and symptom data is sensitive. We use it only on your device to provide the service you requested and do not use it for any secondary purpose.
- Right to Non-Discrimination: We will not discriminate against you for exercising any of these rights.
To exercise these rights, contact us at support@ruby-app.co. We will verify your request using your account email or, for Guest Mode users, using information you provide that allows us to confirm the request relates to your data.
19. Changes to This Policy
We may update this policy to reflect product changes or legal requirements. We will update the "Last updated" date at the top of this page and, for material changes, provide notice in the app when appropriate.
20. Contact
If you have questions about this Privacy Policy, contact RUBY AI LLC at: