Terms of Service
Version 2.19 · Last updated: 2026-10-31
These Terms of Service (“Terms”) govern your use of PRIMAL’s Services. By creating an account, downloading our apps, or using our website, you agree to these Terms.
1. Eligibility
You must be at least 13 years old to use PRIMAL. By using the Services, you represent that you meet this requirement and that the information you provide is accurate.
2. The Services
PRIMAL provides software for tracking habits, daily scores, streaks, and Awards; Home spans (Day, Week, and Month on Free; Year requires Pro) and Insights spans (Day and Week on Free; Month and Year require Pro); Smart Insights on-device habit scans; Trends and Personal Records; Plan Tomorrow (Pro — free users see the tomorrow preview and an evening prompt; editing requires Pro); custom accent colors with matching home screen icons (Pro); an optional PRO badge; CSV export for all users (one row per habit log with date, habit name, value, unit, and completion status, generated from the data on your device); optional read-only Apple Health data (steps, exercise minutes, sleep, water, protein, calories eaten, mindful minutes and time in daylight) for the habit sources you turn on, only if you connect it; friend invites and requests; leaderboards; optional habit sharing; one-on-one messaging with typing indicators and cheers; blocking and the Blocked Users list; in-app reporting; local notifications including friend-score alerts; remote push for messages, friend requests, and acceptances; and optional PRIMAL Pro subscriptions. Chat is peer-to-peer only — there is no AI chatbot. Features may change over time. PRIMAL is a habit tracking tool, not medical advice, and does not guarantee any health outcome.
Streak freezes. If a completed day ends below the streak threshold while you have an active streak, the app automatically uses a streak freeze for that day so your streak continues. A frozen day keeps your streak alive but does not add to its length. Free accounts get 3 streak freezes in total; Pro accounts get 500 in total. Freezes cannot be chosen, saved for later, transferred, or exchanged for money, and are not refunded once used. A freeze is used only for days after streak freezes became available on your account. If you miss more days than you have freezes left, your streak resets. Freezes already used stay used if you change plans: a Pro account that returns to Free keeps the Free total of 3, counting freezes already used. Streak freezes are a game mechanic with no cash value, and we may change how they work under Section 17.
3. Your habit logs
You are responsible for the accuracy of your own habit logs and entries. PRIMAL is a tracking tool. It does not verify whether every log reflects real-world activity.
4. Prohibited conduct
You agree not to:
- Cheat, manipulate scores, or abuse the friends or leaderboard systems.
- Spam, scam, defraud, or mislead other users.
- Harass, threaten, bully, or use hate speech toward other users.
- Impersonate others or misrepresent your affiliation with PRIMAL.
- Use the Services for illegal activity or to violate another person’s rights.
- Use bots, scripts, scraping tools, or other malicious automation to access or disrupt the Services.
- Attempt to reverse engineer, bypass restrictions, or interfere with the Services.
- Upload malware or attempt unauthorized access to accounts, systems, or data.
- Send messages that bypass our client-side moderation filter or contain harassment, threats, hate speech, or illegal content.
- Share invite links or friend requests for spam, scams, or impersonation.
- Use modified/jailbroken devices to circumvent purchase, messaging, or security restrictions where the app disables those features.
PRIMAL enforces per-account limits to prevent abuse and control infrastructure cost, including 500 messages per day (the Free tier limit of 50/day is enforced in the app), 50 friend requests per day, 8,000 habit log syncs per day, a minimum of 1 second between messages, an escalating cooldown after repeated rate-limit hits, and one cheer per friend per calendar day. These limits may be adjusted as described in §8.
5. Community standards
When using social features, you agree to keep usernames, profile photos, messages, and friend interactions respectful and lawful. Do not post content that is abusive, sexually explicit, violent, discriminatory, or otherwise inappropriate. You can block users, manage your Blocked Users list in Settings, unfriend users, hide conversations on your side, turn off sharing your daily habits with friends, hide the friends leaderboard on your Home tab, and report users through in-app controls. Blocking is one-directional: a blocked user cannot message you or send friend requests, is not notified of the block, and is automatically unfriended if you were friends. Unblocking restores the ability to interact but does not restore past friendship. Unfriending alone does not block someone from sending a new invite link. Outbound messages are checked on your device against a list of roughly 430 prohibited terms bundled with the app. Messages containing them are not sent. Message content is not automatically scanned on our servers for prohibited terms, and PRIMAL does not use generative AI or chatbots to read or respond to messages. Moderation of message content relies on client-side filtering, user reports, blocking, and human review of reports and related conversation records when needed. We may remove content, restrict features, disable or suspend accounts, or delete accounts that violate these standards. Reporting details are described in §5A below. You may also email theprimalapp@gmail.com for follow-up.
5A. Social features and user-generated content
Friends: PRIMAL uses invite links (primal://invite?uid={FirebaseUID} and https://primal.app/invite?uid={uid} — both expose the inviter’s Firebase user identifier). There is no public username search, no public directory, and no browse UI. Friend requests can be sent, accepted, or declined. Either party may unfriend at any time. Friend suggestions are friends-of-friends only, ranked by number of mutual connections, capped at 12, and require at least one existing friend. Dismissed users are remembered on your device. There is no suggestion from contacts, location, or any outside source.
Habit sharing: By default, friends may view your last 7 days of habit names, progress, and scores on your profile, at most 20 habits per day. You may disable this in Settings. Your public profile also includes the number of active habits you are tracking. That count is visible to anyone who can read your profile and is not governed by the “Show Habits to Friends” toggle.
Leaderboards: Friends can compare daily scores. Hiding the leaderboard on your Home tab does not remove your scores from friend profile views.
Messaging: You are responsible for messages you send. Messages are stored on our servers for conversation history and are normally visible only to the two participants. Chat is between users — PRIMAL does not use generative AI or chatbots, and we do not use message content for advertising. Outbound messages are checked on your device against a client-side list of prohibited terms; message content is not automatically scanned on our servers for prohibited terms. The operator of PRIMAL may access message content only when needed to investigate a user report, prevent abuse or illegal activity, provide support you request, or comply with law. Typing indicators and preset “cheer” messages (e.g. “Good job today 🎉!” — once per friend per calendar day, tracked on your device) are supported. Do not send unlawful, abusive, or harmful content.
Blocking: You may block another user from their profile, Messages, or your friends list. Blocking stores a one-directional block entry under your account (blocked user ID, display name, optional photo URL, block timestamp). The block list is not shown to anyone in the app, and the blocked user is not notified. Effects: the blocked user cannot send you messages or friend requests; pending friend requests between you are removed; if you were friends, the friendship is removed; the conversation is removed from your inbox; public-profile reads are prevented in both directions. Either party blocking the other prevents messaging and friend requests in both directions. You can unblock users anytime from Settings → Blocked Users. Blocking does not prevent someone from using a new invite link unless you block them again.
Public profiles: There is no username search, no public directory, and no browse UI in the app. In normal use, profiles surface only through friends, pending friend requests, friends-of-friends suggestions, and leaderboards. You can always read your own public profile. Any other signed-in user can read it when their sign-in token includes a verified email, they know your user identifier, and neither of you has blocked the other. Apple Sign-In and Google Sign-In set that verified-email flag. Friendship is not required. Blocking prevents this in both directions. Purchases are handled entirely through Apple’s StoreKit. The app and its backend never see or store card numbers, billing addresses, or full receipts. A deterministic token links a purchase to your account, Apple’s subscription status is checked on our servers, and only a Pro / not-Pro flag is stored. PRIMAL publishes an isPro flag to your friend-visible public profile. Friends see a PRO badge on your profile. It is on by default, and Pro users can turn off “Show PRO badge” in Settings. Other users’ devices read this flag to determine your friend-limit tier when adding you. No payment details, purchase history, or Apple account information is shared with friends — only the subscription state.
Reporting: In-app Report submits a report to PRIMAL’s servers with the reporter, the reported user (including display name), a reason, a context (profile or message), a timestamp, and an optional short note (up to 50 characters). Message reports may include a short excerpt of the reported message text. Reports are kept for safety and moderation and are not deleted on request. You cannot read, edit, or delete a submitted report. Reports are reviewed by our team. When investigating a report or enforcing these Terms, we may review relevant conversation/message records stored on our servers and take action, including removing content, restricting features, disabling or suspending accounts, or deleting accounts. You may also contact theprimalapp@gmail.com for follow-up.
6. Account security
You sign in with Apple or Google. You are responsible for the security of that Apple or Google account and for all activity that occurs under your PRIMAL account. Notify us promptly if you believe your account has been compromised.
7. Account termination
We may suspend or terminate accounts that violate these Terms, harm other users, or create legal, security, or operational risk. You may stop using the Services or delete your account at any time in the app. Account deletion works as follows (the same process described in our Privacy Policy, §14):
You can delete your account in the app (Profile → Delete Account). This is a complete in-app deletion, not a request that waits on email. Deleting your account requires re-authentication — signing in again with Google or Apple. When deletion is confirmed, we permanently remove:
- Your Firebase Auth account
- The Sign in with Apple token for this app, if that was how you signed in
- Your private user document and all subcollections: habits, habit logs, daily rosters, awards (achievements), habit inventory count, push device tokens, notification preferences, and daily usage counters
- Your public profile
- Your friend-graph entries on both sides, and all friend requests involving you, so you are removed from other people’s friend lists
- Your own block list
- Your profile photo in Firebase Storage
- All local on-device data
A Cloud Function runs server-side after your auth account is removed. It deletes anything remaining under your user record — for example the current day’s usage counters, which the app itself is not permitted to delete — and scrubs your identity elsewhere. On other users’ conversation previews and block lists, your name and photo are replaced with a “Deleted User” placeholder. Your old name and photo are not left on those surfaces.
What remains after deletion:
- Messages you already sent. Those messages stay in the other participant’s copy of the conversation. They are not deleted from that copy. Your name and photo on the conversation, including the preview, are replaced with “Deleted User.” The other participant also keeps the messages they sent until they delete their own account.
- Block entries other people created about you. The entry can remain so the block still applies, but your display name and photo on it are replaced with “Deleted User.”
- Reports (ones you submitted and ones filed about you), retained for safety and moderation. Reports are not deleted on request.
- Limited encrypted backup copies may remain temporarily for disaster recovery and legal obligations, but they are not accessible in the app and are deleted on backup rotation.
If the account is removed but server-side cleanup does not fully complete, the app tells you some data may remain. Contact us at theprimalapp@gmail.com so we can finish the cleanup.
Deleting your account does not cancel an active Apple subscription. Cancel that in Settings → Apple ID → Subscriptions. We may retain minimal records where required by law, such as billing or fraud-prevention records handled by Apple or required tax and accounting data. Sign-out alone does not delete cloud data. You may also contact us at theprimalapp@gmail.com if you need help deleting your account.
Unfriending a user removes mutual friend visibility but does not prevent them from sending a new invite link. Hiding a chat removes it from your inbox only until new activity occurs. Blocking a user is separate from unfriending and persists until you unblock them in Settings.
8. Subscriptions and in-app purchases
PRIMAL Pro is an auto-renewing subscription in one subscription group, sold through the Apple App Store (StoreKit): $4.99 USD per month, or $39.99 USD per year (one annual charge). Those are the prices shown on this website. The amount Apple charges is the price on the App Store confirmation screen for your storefront, which can differ by country. Payment is charged to your Apple ID at confirmation of purchase. The plan renews automatically unless you cancel at least 24 hours before the end of the current period. Your account is charged for renewal within 24 hours before that period ends. Purchases are handled entirely through Apple’s StoreKit. The app and its backend never see or store card numbers, billing addresses, or full receipts. A deterministic token links a purchase to your account so subscription status can be verified. Apple’s subscription status is checked on our servers and is not stored beyond a Pro / not-Pro flag. PRIMAL publishes an isPro flag to your friend-visible public profile. Friends see a PRO badge on your profile. It is on by default, and Pro users can turn off “Show PRO badge” in Settings. Other users’ devices read this flag to determine your friend-limit tier when adding you. No payment details, purchase history, or Apple account information is shared with friends — only the subscription state. Billing, renewal, price changes, cancellation, and refunds are handled by Apple under Apple’s Media Services Terms and App Store policies. To cancel, use Settings → Apple ID → Subscriptions at least 24 hours before the period ends. Deleting the app, or deleting your PRIMAL account, does not end your subscription. Use “Restore Purchases” in the app if you reinstall or change devices. Contact Apple Support for billing or refund questions.
Free vs Pro limits (enforced in the app):
| Feature | Free | Pro |
|---|---|---|
| Active habits | 10 | 50 |
| Total stored habits | 50 | 50 |
| Friends | 20 | 50 |
| Messages per day | 50 | 500 |
| Daily history drill-down | 7 days | 365 days |
| Week/month browsing | 90 days | 365 days |
| Home spans | Day, Week, Month | + Year |
| Insights spans | Day, Week | + Month, Year |
| Smart Insights scans | 1 per day | Unlimited (5-minute cooldown) |
| Streak freezes (lifetime total) | 3 | 500 |
| Plan Tomorrow | Preview only | Full editing |
| Custom accent + app icon | Default only | 7 colors + matching icons |
| PRO badge shown to friends | No | Yes (optional) |
| CSV export | Yes | Yes |
PRIMAL enforces additional per-account limits on all users regardless of plan — 50 friend requests per day, 8,000 habit log syncs per day, a minimum interval between messages, and a server cap of 500 messages per day. These protect against abuse and are subject to change.
Limits are delivered by server-side configuration and can be adjusted without an app update, with reasonable notice where required by law or platform rules.
9. Third-party services
The Services rely on third-party providers such as Apple, Google, Firebase (Authentication, Cloud Firestore, Storage, Cloud Messaging for remote push, Cloud Functions, and App Check with Apple App Attest), Firebase Crashlytics for crash and error reports that are on by default and can include internal document IDs, Apple Health / HealthKit for optional read-only steps, exercise minutes, sleep, water, protein, calories eaten, mindful minutes and time in daylight for the sources you turn on, if you connect it, and Apple StoreKit for subscriptions. The app and its backend never see or store card numbers, billing addresses, or full receipts. A deterministic token links a purchase to your account; subscription status is checked on our servers and stored only as a Pro / not-Pro flag. Cloud Functions send message, friend-request, and acceptance push; perform that subscription check; and run post-deletion cleanup. The marketing site uses Vercel Analytics and Speed Insights only after you accept cookies. The iOS app does not use Firebase Analytics, advertising SDKs, IDFA, AdSupport, or App Tracking Transparency. Your use of those services may be subject to their own terms and policies. PRIMAL is not responsible for third-party services and does not control their availability, performance, or practices.
10. Intellectual property
PRIMAL owns the app, branding, software, and all related intellectual property. You receive a limited, revocable, non-exclusive license to use the Services for personal, non-commercial purposes according to these Terms.
11. Your data
You own the content and data you create in the app. You grant PRIMAL a license to store, process, sync, and display that data solely to provide and improve the Services as described in our Privacy Policy.
12. Disclaimer
The Services are provided “as is” and “as available.” We do not guarantee uninterrupted uptime, error-free operation, or permanent data retention. PRIMAL is a habit and lifestyle tracking tool, not medical advice.
13. Limitation of liability
To the maximum extent permitted by law, PRIMAL and its suppliers will not be liable for indirect, incidental, special, consequential, or punitive damages, or loss of profits, data, or goodwill arising from your use of the Services.
14. Indemnification
To the extent permitted by law, you agree to defend, indemnify, and hold harmless PRIMAL and its team from claims, damages, losses, and expenses arising out of your use of the Services, your content, or your violation of these Terms or another person’s rights.
15. Force majeure
We are not liable for delays or failures caused by events outside our reasonable control, including natural disasters, government actions, platform outages, network failures, or third-party service interruptions.
16. Apple App Store terms
If you downloaded PRIMAL from the Apple App Store, you acknowledge that these Terms are between you and PRIMAL, not Apple. Apple is not responsible for the Services or their content. Apple has no obligation to provide maintenance or support for the app. In the event of any failure of the app to conform to an applicable warranty, you may notify Apple and Apple may refund the purchase price, if any, for the app. To the maximum extent permitted by law, Apple has no other warranty obligation with respect to the app. Apple is not responsible for addressing any claims by you or any third party relating to the app or your use of it, including product liability claims, failure to conform to legal requirements, consumer protection claims, or intellectual property claims. Purchases on modified/jailbroken devices may be disabled by the app for security.
17. Changes to these Terms
We may update these Terms from time to time. Material changes will be communicated via app update or other reasonable notice. Continued use after changes take effect means you accept the updated Terms.
18. Governing law
These Terms are governed by the laws of the Commonwealth of Pennsylvania, United States, without regard to conflict-of-law rules, except where mandatory consumer protections in your jurisdiction apply.
19. Severability
If any part of these Terms is found unenforceable, the remaining provisions will remain in full force and effect.
20. No waiver
Our failure to enforce any provision of these Terms is not a waiver of our right to enforce it later.
21. Assignment
You may not assign or transfer these Terms without our consent. We may assign these Terms in connection with a merger, acquisition, reorganization, or sale of assets.
22. Survival
Provisions that by their nature should survive termination will survive, including Intellectual Property, Your data (license already granted), Disclaimer, Limitation of liability, Indemnification, Governing law, Severability, No waiver, and any surviving privacy/retention terms described in the Privacy Policy.
23. Contact
PRIMAL is operated by Mahmoud Alhabib, an individual doing business as PRIMAL (not a limited liability company). The operator is that same individual. Legal questions: theprimalapp@gmail.com

