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.
| What | Details |
|---|---|
| Account | Your 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 check | What 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 crew | The crew’s name, its invite code, its start date and who created it. Renaming a crew notes the old name in crew activity. |
| Crew membership | Which 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 summary | For 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 nudges | Who sent one to whom, on which day, and the one-tap reply. |
| Chat messages | The 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 activity | Events such as joins, finishes, camps, summits and full-crew days. |
| Safety | People 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. |
| Device | A 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 days | If 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 do | Legal 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 sees | Your crew never sees |
|---|---|
| Your first name and initials | What your rules are, or when each one was checked |
| Your day, your start date, today’s count and when you finished | Your difficulty, misses or slips (only your streak number) |
| Your streak, your best streak and the camps you reached | Your contract |
| Whether you’re resting, taking a break or finished | Your 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.
| Provider | What for | What they receive |
|---|---|---|
| Our hosting provider, with servers in the EU | Storing crew data and chat, running our API | The crew data listed above |
| Apple Push Notification service and Firebase Cloud Messaging (Google) | Delivering push notifications | Your device token and the notification text |
| RevenueCat, Inc. | Checking and restoring purchases, and purchase figures | An 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 provider | Sending account emails, like the confirmation after you delete your account | Your email address and the message |
| Our support mailbox provider | Receiving your emails to support | Your email address, what you write, and any app details you leave in |
| Our website host | Serving 90north.app | Standard 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
| Data | Where | Kept for |
|---|---|---|
| Rules, check-ins, contract | Your phone and your own iCloud or Google backup | Until 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 IDs | Our servers | Until you delete your account |
| Sign-in sessions, with their IP address and device type | Our servers | Until you sign out on that phone or delete your account |
| A crew’s name, invite code and start date | Our servers | Until its last member leaves |
| A seat held while you finish setting up | Our servers | Until you finish, or 7 days at most |
| Crew activity, cheers and nudges | Our servers | 180 days |
| Chat messages, with their reactions and pin | Our servers, encrypted at rest | 100 days. A reported message is kept until its report is closed. |
| Reports, including the note a block sends | Our servers | Until 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 did | Our servers | 1 year |
| People you block | Our servers | Until you unblock them or either account is deleted |
| A banned account’s sign-in ID, as a one-way hash | Our servers | For good, so the same Apple or Google account can’t sign up again |
| Push token | Our servers | Until you sign out or delete your account. We keep your five most recent phones. |
| Notifications on their way to you | Our servers | 7 days after they’re delivered |
| A note that the word filter stopped a name or message (never the text) | Our servers | 1 year, or until you delete your account |
| Refunds | Our servers | The 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 limits | Our servers | 1 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 messages | Our hosting provider | For its log retention period |
| Emails we send you | Our email provider | A short time under its terms, to deliver them |
| Emails you send to support | Our support mailbox provider | Until we’ve answered, then 1 year |
| Server backups | Our hosting provider | Deleted data is cleared from backups within 30 days |
| Purchase records | Apple, Google and RevenueCat | Under 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.