Privacy Policy

Last updated October 31, 2026

This policy covers the 90North app for iPhone and Android and this website, 90north.app. It explains what we collect, why, who sees it and what you can do about it.

The short version

  • Your rules, check-ins and contract stay on your phone and in your own iCloud or Google backup. We never receive them.
  • Doing an arc on your own needs no account, and nothing about you is stored on our servers.
  • If you join a crew, we store your first name, the email your sign-in provider gives us, and what your crew needs to see: daily counts, streaks, cheers, nudges and chat messages.
  • Your crew never sees your rules, your difficulty, your misses or your contract.
  • There are no ads, no advertising or analytics SDKs, and we never sell your data.
  • You can export your data, delete everything on your phone, or delete your account, from the app at any time.

Who we are

90North is made by Zekcs (zekcs.dev), an independent developer (“we”, “us”). We decide how your personal data is used, which makes us the controller under data protection law. Write to support@90north.app about anything in this policy, including requests to use your rights.

What stays on your phone

The app is built so that the personal part of your arc never reaches us. These live only on your phone:

  • your rules, with their names, any notes you add, areas, times, deadlines and reminders
  • every check-in and slip, with the time it was recorded
  • which rules you hit or missed each day
  • which days were sick days (in a crew, a sick day reaches us and your crew only as “Resting today,” never why)
  • your contract, including your signature
  • when your free days started and when you paid, and the days you started over from
  • your settings

If backup is on, your phone copies this to your own iCloud account (iPhone) or Google account (Android). Apple and Google store that backup under their own terms, and we can’t read it. Your rules and contract are never sent to our servers, even when you’re in a crew. In a crew, your daily counts go to your crew, never which rules you hit or missed.

If you use 90North on your own

Solo arcs don’t need an account, and nothing about you is stored on our servers. A few things still leave your phone:

  • App settings and updates. The app asks our server for its current settings, such as whether this version needs an update. When you open the app, and when you come back to it if it hasn’t asked in the last 15 minutes, it also asks whether there’s a fix for this version to download, which it applies the next time the app starts. That request names only the phone’s system, the app’s version and which fixes your phone has run or couldn’t start. It carries no ID for you or your phone. Neither request says anything about you, but like any request they reach our hosting provider’s logs with your IP address.
  • Purchases. The App Store or Google Play handles the payment. We use RevenueCat to check that a purchase is valid, to restore it on a new phone and to see purchase figures in its dashboard, such as how many arcs were bought or refunded. RevenueCat receives an anonymous ID that its code in the app creates on your phone, the purchase details the store provides (product, price, currency, date and whether it was refunded; on iPhone the free “3-day Trial” is a purchase too, at no charge) and device details: the model, the system and app versions, your phone’s languages and the store’s country. On iPhone, RevenueCat’s code also sends the ID Apple gives our app on your phone (its identifier for vendor), which other developers’ apps can’t read. We never see your card or payment details.
  • The age check. The app asks the App Store or Google Play whether you’re 13 or older, never your date of birth. On iPhone, Apple may show its own question before you sign in for crews, in any region, and when you first open the app where the law asks for it. On Android, Google Play may show its own question before you sign in for crews, in any region. The answer stays on your phone unless you join a crew.
  • Invite links. If you open an invite link before you sign in, the app asks our server for the crew’s name, size and start date. To limit lookups we keep a hash of your IP address for a day, never the address itself.
  • Emails to support. If you write to us from the app (Settings, Help, Contact support), the email includes app details you can see and delete before sending: the app’s version and build number, your phone’s system version, your day of the arc, the store’s last error as a code and, if the arc didn’t open, why, as a code. Never your rules or messages.

If you join a crew

Crews need an account so your friends know it’s really you. When you sign in and use a crew, we store the following on our servers.

WhatDetails
AccountYour first name (up to 20 characters), your initials, the ID your sign-in provider gives us, the email address it shares, when you signed up and last signed in, and a sign-in session for each phone you’re signed in on, with its IP address and device type. If you sign in with Apple and choose Hide My Email, we only get a relay address. With Apple we also keep the token Apple gives us, encrypted, so we can disconnect Sign in with Apple when you delete your account. You can change your first name in Settings, Your name.
Age checkWhat the App Store or Google Play last said about your age: 13 or older, or nothing, and which store said it and when. On iPhone with iOS 18.4 or later, the ID the App Store gives your download of the app; on Android, if a parent supervises your Google account, the ID Google Play gives your install. These let us delete your account if a parent withdraws consent. An answer that you’re under 13 never reaches us: the app deletes your crew account instead.
Your crewThe crew’s name, its invite code, its start date and who created it. Renaming a crew notes the old name in crew activity.
Crew membershipWhich crew you’re in, whether you’re its owner, when you joined or left, and whether you were removed, so the old invite code can’t bring you back. If you join with a code while setting up the app, we hold your seat for up to 7 days until you finish.
Daily summaryFor each day: how many rules were due and how many you hit, whether you checked in, when you finished, your streak and best streak, your day number and start date, whether you were resting or taking a break, and the camps you reached. Only a sick day rests a day, so “Resting today” tells us and your crew that you were unwell that day, never why: it’s the one piece of health information that reaches us. Never the names of your rules, or which ones you hit or missed.
Cheers and nudgesWho sent one to whom, on which day, and the one-tap reply.
Chat messagesThe text you send to your crew and when you sent it, the message it replies to, your reactions to messages, and a message you pin.
Crew activityEvents such as joins, finishes, camps, summits and full-crew days.
SafetyPeople you block, and reports you make or that are made about you. When you block someone, our moderators get a note of it with that person’s first name. A report of a message holds its reason, the message and the few messages before it. A note when the word filter stops a name or message you wrote, whether your phone or our servers stopped it: which kind of text it was and when, never the text itself. If an account is banned, a one-way hash of the Apple or Google account ID it signed in with.
DeviceA push notification token for each phone you’re signed in on, its platform, and which crew notifications you turned off. Your time zone and when your day ends, so your crew sees your own day and nudges wait until noon where you are. On Android, a random ID each install of the app makes, so only one of your phones holds your arc at a time.
Refunds and unpaid daysIf the App Store or Google Play refunds an arc, RevenueCat tells us when, so your crew sees you as taking a break until you start a new arc. After free days that ended without a purchase, your phone’s daily summary tells us and your crew that you’re taking a break, until you buy the arc.

How we use it and why we’re allowed to

If you’re in the European Economic Area, the UK or Switzerland, the law asks us to name a legal basis for each use.

What we doLegal basis
Run your crew: show your crew your counts, deliver cheers, nudges and messages, and keep crew activity.Performing our contract with you (the Terms of Use).
Send the notifications you turned on.Performing our contract. You can turn them off in crew settings or in your phone’s settings.
Check your purchase and restore it on another device.Performing our contract.
See purchase figures in RevenueCat’s dashboard, such as how many arcs were bought or refunded and in which countries.Our legitimate interest in running 90North as a business.
Keep crews safe: filter names and messages, review reports, remove people and ban accounts.Our legitimate interest, and that of other users, in a safe service.
Check with the App Store or Google Play that crew members are 13 or older, and delete an account when a parent withdraws consent.Legal obligation where age laws apply; elsewhere, our legitimate interest in keeping crews for people 13 and older.
Prevent abuse and keep the service secure, for example with rate limits and access logs.Our legitimate interest in protecting 90North and its users.
Answer your emails.Performing our contract, or our legitimate interest if you don’t use the app.
Comply with the law and respond to valid legal requests.Legal obligation.

We don’t use your data for advertising and we don’t build profiles about you. The word filter can stop a name or message from being saved, but a person reviews every report before we remove or ban anyone. Crew owners can also remove members themselves.

What your crew sees

In the app, tap your own name on the Crew tab to see exactly this.

Your crew seesYour crew never sees
Your first name and initialsWhat your rules are, or when each one was checked
Your day, your start date, today’s count and when you finishedYour difficulty, misses or slips (only your streak number)
Your streak, your best streak and the camps you reachedYour contract
Whether you’re resting, taking a break or finishedYour email or any account detail

Each member of your crew sees your chat messages and crew activity from when they joined, never from before. Moderators can open a message only when someone reports it, together with the few messages before it, and every time they do is logged.

Who we share it with

We don’t sell your personal data and we don’t share it for advertising. We use a small number of service providers that process data on our behalf, under data processing agreements, and only to run 90North.

ProviderWhat forWhat they receive
Our hosting provider, with servers in the EUStoring crew data and chat, running our APIThe crew data listed above
Apple Push Notification service and Firebase Cloud Messaging (Google)Delivering push notificationsYour device token and the notification text
RevenueCat, Inc.Checking and restoring purchases, and purchase figuresAn anonymous ID (linked to your account if you join a crew), purchase details and device details, on iPhone with the ID Apple gives our app on your phone
Our email providerSending account emails, like the confirmation after you delete your accountYour email address and the message
Our support mailbox providerReceiving your emails to supportYour email address, what you write, and any app details you leave in
Our website hostServing 90north.appStandard server logs, described under This website

Apple and Google also act on their own account when you sign in with them, buy through their stores or back up to iCloud or Google. Their privacy policies apply to that: Apple, Google and RevenueCat.

We may also disclose data when the law requires it, to protect someone’s safety, or if 90North moves to a company that takes it over, including one we set up to run it. In that last case this policy keeps applying to your data.

What we don’t collect

  • No location, contacts, photos, camera or microphone. The app doesn’t read Apple Health or Health Connect, and the only health information that reaches us is a crew member’s sick day, as “Resting today.”
  • No advertising identifier, and no tracking across other companies’ apps or websites. The app never shows Apple’s tracking prompt because it has nothing to ask.
  • No analytics of what you do in the app, on your phone or on our servers. Crew data on our servers is used only to run your crew. RevenueCat’s dashboard shows us purchase figures, nothing else.

Sharing an image of your progress, a camp, the summit, the recap or your crew’s week uses your phone’s share sheet. The app never reads your photos; iOS asks once if you choose Save Image.

How long we keep it

DataWhereKept for
Rules, check-ins, contractYour phone and your own iCloud or Google backupUntil you delete them
Account, crew membership and daily summaries, and your time zone, day end, notification switches, Android install ID, and the age check with its store IDsOur serversUntil you delete your account
Sign-in sessions, with their IP address and device typeOur serversUntil you sign out on that phone or delete your account
A crew’s name, invite code and start dateOur serversUntil its last member leaves
A seat held while you finish setting upOur serversUntil you finish, or 7 days at most
Crew activity, cheers and nudgesOur servers180 days
Chat messages, with their reactions and pinOur servers, encrypted at rest100 days. A reported message is kept until its report is closed.
Reports, including the note a block sendsOur serversUntil a year after the report is closed, to handle abuse, even if an account in it is deleted. A block’s note is closed after 30 days.
The moderation log: who opened a report and what they didOur servers1 year
People you blockOur serversUntil you unblock them or either account is deleted
A banned account’s sign-in ID, as a one-way hashOur serversFor good, so the same Apple or Google account can’t sign up again
Push tokenOur serversUntil you sign out or delete your account. We keep your five most recent phones.
Notifications on their way to youOur servers7 days after they’re delivered
A note that the word filter stopped a name or message (never the text)Our servers1 year, or until you delete your account
RefundsOur serversThe ID RevenueCat gives each refund, for 90 days, so it’s handled only once. Taking a break lasts until you start a new arc. After unpaid free days, the daily summaries say so, kept like the rest of them.
Rate limitsOur servers1 day. For invite lookups before sign-in, on this website or in the app, we keep only a hash of the IP address.
Server logs of requests and events, with IP addresses and account IDs but never names or messagesOur hosting providerFor its log retention period
Emails we send youOur email providerA short time under its terms, to deliver them
Emails you send to supportOur support mailbox providerUntil we’ve answered, then 1 year
Server backupsOur hosting providerDeleted data is cleared from backups within 30 days
Purchase recordsApple, Google and RevenueCatUnder their policies. We delete your RevenueCat customer record when you delete your account; the purchase itself stays with the store.

Where your data is stored

Our servers are in the European Union. Some providers, such as RevenueCat, Apple, Google and our website host, may process data in the United States or other countries. When personal data leaves the EEA, the UK or Switzerland, we rely on an adequacy decision, such as the EU-U.S. Data Privacy Framework, or on the European Commission’s Standard Contractual Clauses.

How we protect it

  • Everything is encrypted in transit, and our database and backups are encrypted at rest.
  • Your session is stored in the iPhone Keychain or the Android Keystore.
  • Moderator access is limited by role, and every look at reported content is logged.
  • Invite codes are random and lookups are rate-limited, so they can’t practically be guessed.

No system is perfectly secure. If a breach ever affects your data, we’ll tell you and the authorities as the law requires.

Your rights and choices

  • Get a copy. Settings, Export your data gives you a ZIP with your rules, check-ins, contract, crew activity, the messages you sent, your reactions and your pins. Other people’s messages aren’t included.
  • Correct it. Change your first name in Settings, Your name, or write to support@90north.app and we’ll change it.
  • Delete it. Settings, Delete all data removes your arc, check-ins, contract and backup from your phone and your iCloud. On Android it removes them from your phone, and Google’s copy is replaced at its next backup, usually within a day, so keep the app installed until then. A crew account stays on our servers until you delete it: Settings, Delete account deletes it and what our servers hold about you, apart from the reports and ban records kept longer (see How long we keep it). You can also ask at 90north.app/delete-account without the app. Deleting the app removes the data on your phone but not your iCloud or Google backup, which you can delete in your Apple or Google account’s settings.
  • Notifications. You can turn off reminders, the evening check and crew notifications in Settings, Reminders and notifications, crew notifications in crew settings too, and any notification in your phone’s settings. Two one-time notices about your place in a crew always come unless you turn notifications off in your phone’s settings: that a crew was handed to you, and that you were removed from one.
  • Leave or block. You can leave a crew or block anyone at any time.

Depending on where you live, you may also have the right to access, correct or delete your data, to object to processing based on legitimate interests, to restrict processing, to data portability, and to complain to your local data protection authority. We’d like the chance to sort things out first, so please write to support@90north.app. We answer within 30 days and don’t charge for requests.

California

In the last 12 months we collected, from crew users, identifiers (name, email address, and account, device and store install IDs), user content (chat messages and crew names), app activity (daily counts), purchase information (refunds), an age range from the App Store or Google Play (13 or older) and health information (that a sick day rested your day). From everyone who uses the app, RevenueCat collected an anonymous purchase ID, purchase records and device details for us, on iPhone with the ID Apple gives our app. Our hosting provider kept IP addresses in server logs. We used all of it for the purposes described above. We don’t sell or share personal information as the California Consumer Privacy Act defines those terms, and we don’t use sensitive personal information to infer anything about you. You can ask to know, correct or delete your information, and we won’t treat you differently for asking.

Children

Crews are for people 13 and older. The app asks the App Store or Google Play whether you’re 13 or older, never your date of birth: when it first opens, before you sign in for crews, and each time it opens while you’re signed in or after the store said you’re under 13. On iPhone, Apple may show its own question before you sign in for crews, in any region, and when you first open the app where the law asks for it. On Android, Google Play may show its own question before you sign in for crews, in any region. Under 13, the app has no crews and sends nothing about you to our servers; a crew account you already had is deleted. If a parent withdraws consent through the App Store, or withdraws approval through Google Play, we delete the accounts that install signed in with. If you believe a child under 13 has given us personal data, write to us and we’ll delete it.

This website

90north.app doesn’t use cookies, analytics or advertising tags, and it doesn’t load anything from other companies’ servers. The account deletion page keeps a random code in your browser’s session storage while you sign in with Apple or Google, and removes it when you come back. Our website host keeps standard server logs (IP address, browser and device type, the page requested, the page that linked to it and the time) to deliver the site and protect it from abuse. The Cookie Policy has the details.

Invite pages show the code from the link. They may ask our server for the crew’s name, size and start date, never its members’ names.

Changes to this policy

If we change this policy in a way that matters, we’ll tell you in the app or on this page before the change takes effect. The date at the top of this page shows when it last changed.

Contact

90North is made by Zekcs (zekcs.dev). Write to support@90north.app.