Legal
Privacy Policy
Last updated:
This policy explains what No Pain No Scroll does with your information — what stays on your phone, the little that reaches us, and what you can do about it. It covers the iOS app, the Android app and this website, wherever in the world you use them.
The short version
- Your camera never leaves your phone. Reps are counted by a model running on the device; each frame is analysed as it arrives and then discarded. Nothing is recorded, saved or uploaded.
- We never learn which apps you block. On iPhone the system hands us tokens we cannot decode. On Android the list stays in the app's own storage.
- There is no account. Using the app never requires your name, your phone number or an email address.
- We do collect anonymous usage statistics and crash reports, so we can tell which parts of the app work. They are tied to a random number, not to you.
- Nothing is sold, nothing goes to advertisers, and we do not track you across other companies' apps or websites — there is no advertising SDK in the app, and nothing in it meets Apple's definition of tracking.
1. Who we are
No Pain No Scroll is published worldwide on the App Store and Google Play — including throughout the United States, the European Union and the wider EEA, the United Kingdom, and Brazil. This policy applies to everyone who uses the app or this website, wherever you are.
The app is made by LBR DESENVOLVIMENTO E MANUTENCAO DE SOFTWARE LTDA, CNPJ 44.706.387/0001-71, a company registered in Salvador, Bahia, Brazil. In this policy “we” means that company, “the app” means the No Pain No Scroll application for iOS and Android, and “you” means the person using it.
We are the controller of the personal data described here — the party that decides why and how it is processed. Because the app is offered internationally, more than one data protection regime applies to it at once: for users in the United States, federal and state privacy law; for users in Europe, the EU General Data Protection Regulation and the UK GDPR; and in Brazil, the Lei Geral de Proteção de Dados (LGPD, Law 13.709/2018). The app behaves identically everywhere — there is no regional build that collects more — so where those laws differ we apply the strictest of them to everyone.
For anything in this document, write to privacy@nopainnoscroll.com.
2. What never leaves your phone
None of the following is transmitted anywhere. It lives in the app's private storage on your device, and it goes when the app goes.
| What | Where it comes from | What happens to it |
|---|---|---|
| Camera video | The camera, while a rep session is open | Each frame goes to a pose model running entirely on the device. The model returns the positions of your joints, the app turns those into a rep count, and the frame is dropped. Nothing is written to storage, and the app has no access to your photo library. |
| Your blocklist | The apps, categories and websites you choose | iOS: Apple's Screen Time framework hands the app opaque tokens instead of names — we are technically unable to find out what they refer to. Android: the package names are stored in the app's own settings file. |
| The app in front of you (Android) | The system, while blocking is switched on | The app reads the package name of whatever is on screen — com.example.app — so it knows when to show the block screen. The package name and nothing else: never the contents of the screen, never text you read or type. It is held in memory for the moment it is needed, never written to the app's own storage, and never transmitted. |
| Your installed apps (Android) | The system, when you open the app picker | Read to draw the picker so you can choose what to block. Not stored, not transmitted. |
| Your minutes | Your own activity in the app | Reps, minutes earned, spent and expired, and the activity history behind them. A database on the device. |
| Apple Health workouts (iOS, optional) | Apple Health, if you switch the feature on and grant permission | The app reads workout records — activity type, start time, duration — and converts their length into minutes you can spend. It does this in the background too, so minutes appear without you opening the app. The records stay on the device. The usage statistics in the next section note that minutes came from Apple Health and nothing more: never the kind of workout, how long it ran or how many minutes it earned. The app never writes anything back to Apple Health. |
| Your settings | You | Earn rate per exercise, whether minutes expire and after how long, how far through onboarding you are, which tutorials you have seen. |
3. What does reach us
Three things leave the device: usage statistics, crash reports, and any feedback you choose to send. All three are tied to the identifier described first.
The anonymous identifier
The first time you open the app, it generates a random identifier — a UUID, a string like f47ac10b-58cc-4372-a567-0e02b2c3d479 — along with the date and app version of that first launch. It is not derived from your device, your phone number, an account, or anything else about you.
It has one job: telling one anonymous stream of events from another, so that a question like “of the people who start setup, how many finish?” has an answer at all. It is kept in the iOS Keychain and, on Android, in Google Play's Block Store.
- It works only inside this app. It measures what happens in No Pain No Scroll, and nothing you do in any other app or on any website.
- It is not an advertising identifier. The app never asks for the IDFA on iOS or the Advertising ID on Android.
- It is never handed to an advertiser or a data broker.
Usage statistics
Every event below carries counts, durations and fixed labels. No free text, no names, no content.
| What we record | What it contains |
|---|---|
| Setup progress | Which step of onboarding you reached, and your two answers to the intro questions — roughly how long you scroll a day, and which of four reasons brought you here. |
| Permission outcomes | Which permission was asked for, in which part of the app, and whether it ended up granted. |
| Blocklist size | How many apps, categories and websites you block, and whether that number rose or fell when you edited it. The count only — never which ones. |
| Rep sessions | The exercise (squat, push-up or jumping jack), how many reps, how many minutes they earned, and whether you finished the session or left it. |
| Your minutes | Minutes credited, spent and expired; your balance before and after an unlock; whether expiry is on and the window you chose. Where a credit came from Apple Health, only that it did — never the kind of workout, how long it ran or how many minutes it earned. |
| Hitting a block | That a block screen appeared, and which button you pressed on it. |
| Notifications | That you opened one of the app's notifications, and which kind it was. |
| Feedback | That you opened the Send Feedback form; and on sending, whether you left an email address and how many characters you wrote — never what you wrote. |
Attached to every one of those: the number of items on your blocklist, whether expiry is on, the app's build number, and a flag marking our own test devices so we can exclude them from reports.
Never attached to any of them: which apps you block, what you do inside those apps, and anything derived from the camera.
Crash reports
When the app crashes, a report is sent so it can be fixed: the stack trace, the app and operating system version, the device model, its language and region, and coarse state such as available memory. The anonymous identifier rides along, so we can tell one person hitting the same crash ten times from ten people hitting it once.
Feedback you send
The app has a Send Feedback form, under Settings. If you use it we receive what you wrote (up to 2,000 characters) and, if you filled the optional field, your email address. That address is the single place in the whole app where you can hand us something that identifies you, it exists so we can reply, and it is entirely your choice. It is stored with your message and against the same anonymous identifier — never stamped onto your other events. That link is also what gives you a deletion route that works; §9 explains how to use it.
What our providers see automatically
The analytics and crash services receive the technical details that accompany any internet request: your IP address, device model, operating system version, app version, language, time zone and the time of the request. IP address is used to approximate the country or region an event came from; it is not used to build a profile of you. We do not use the advertising identifier — IDFA on iOS, Advertising ID on Android — and the app contains no advertising SDKs.
4. The permissions the app asks for
Each is requested at the moment the feature needs it, with an explanation on screen. You can refuse any of them, and change your mind later in your phone's settings. The app keeps working with whatever is left — minus the feature that permission was for.
| Permission | Platform | Why the app needs it | What we get from it |
|---|---|---|---|
| Camera | iOS and Android | To count your reps | Nothing. Frames are analysed on the device and discarded. |
| Screen Time (Family Controls) | iOS | To block and unblock the apps you chose | Tokens we cannot decode. |
| Apple Health — workouts | iOS, optional | To turn workouts you did elsewhere into minutes | Only that minutes came from it. The workout itself stays on the device. |
| Notifications | iOS and Android | To tell you when an unlock is ending, or when minutes were credited | Nothing. Every notification is generated on the device — there is no push server and no push token. |
| Usage access | Android | To see which app is in the foreground | The package name of that app. |
| Accessibility service | Android | The same, but instantly instead of by polling | Only the foreground app's package name. The service never reads screen text, never reads what you type, and transmits nothing. |
| Display over other apps | Android | To draw the block screen over the app you opened | Nothing. |
| See all installed apps | Android | To list your apps in the picker | Nothing. The list is neither stored nor sent. |
| Ignore battery optimisation | Android, optional | To stop the system killing the blocker in the background | Nothing. |
| Run at startup, foreground service | Android | To restore blocking after a reboot or an app update | Nothing. |
5. Why we are allowed to process this
Every use of personal data needs a legal basis. Ours:
| What we do | Why | Legal basis |
|---|---|---|
| Run the app on your device — blocking, counting reps, keeping your minutes | It is the service you installed | Performance of a service you asked for. |
| Use the camera, Apple Health, Screen Time, accessibility and notifications | Features you switched on | Your consent, given through your phone's permission prompt and withdrawable in its settings at any time. Health data needs your explicit consent, which the Apple Health prompt is. |
| Collect usage statistics | To find out which parts of the app work and which are abandoned | Our legitimate interest in improving a product we are responsible for — weighed against the fact that the data is pseudonymous, minimal, and never shared for advertising. You can object; see below. |
| Collect crash reports | To stop the app breaking | The same legitimate interest, plus stability and security. |
| Read your feedback | To answer you | Your consent — you wrote it and pressed send. |
6. Who else handles your data
We run no servers of our own. The services below receive data because the app and this site use them. Each operates under the data-processing terms it publishes, and none of them is authorised by us to use what it receives for its own purposes.
| Who | What they receive | Where | Their policy |
|---|---|---|---|
| PostHog | Usage statistics, the anonymous identifier, your feedback and any email address you send with it, plus the technical details in §3 | European Union | posthog.com/privacy |
| Google — Firebase Analytics | The same usage statistics and identifier, plus those technical details | United States and other countries where Google operates | firebase.google.com |
| Google — Firebase Crashlytics | Crash reports and the anonymous identifier | As above | firebase.google.com |
| Netlify | This website's server logs — IP address, browser user agent, page requested, time | United States | netlify.com/privacy |
| Google — Forms | The waitlist form, if you fill it in | United States | policies.google.com |
One thing is deliberately not in that table. When your browser loads a page on this site it fetches two typefaces directly from Google's font servers, so Google sees your IP address and browser — but it does that as an independent party, not as a processor acting for us, and we have no contract governing it. §10 covers it, and what you can do about it.
Beyond that, we disclose personal data only where the law requires it — a court order or a lawful request from an authority — or if the company is one day sold or merged, in which case this policy travels with the data and you would be told before anything changed.
We do not sell personal data, we do not share it for advertising of any kind, and we disclose nothing to data brokers. There are no advertising SDKs in the app.
Apple and Google also handle data in their own right when you download or update the app. What they do with it is governed by their policies, not this one.
7. Where your data is processed
The app is used internationally and its providers operate internationally, so wherever you are, your data is processed in more than one country. Our analytics provider stores data in the European Union. Google's services store data in the United States and other countries where Google operates. The company responsible for all of it is established in Brazil. Personal data therefore crosses borders in the ordinary course.
Those transfers are covered by the data-processing terms each provider publishes — that is where their transfer safeguards are set out, including the European Commission's Standard Contractual Clauses and their equivalents elsewhere. The links in §6 point at the current versions. If you want to know which mechanism applies to a particular provider, ask us.
8. How long we keep things
| What | How long |
|---|---|
| Everything on your device | Until you delete the app. Deleting it removes the local database, your blocklist, your minutes and your settings. |
| The anonymous identifier | Held in the iOS Keychain / Android Block Store, for as long as the operating system keeps it there. |
| Usage statistics | For as long as they are still telling us something useful about how the app is used, and never beyond the retention window configured with our analytics providers. |
| Crash reports | For as long as the crash is still worth diagnosing. Our crash reporting service applies its own retention window and discards them after it. |
| Feedback, and any email address sent with it | Until your question is resolved and we no longer need it, or until you ask us to delete it — whichever comes first. |
| Waitlist entries | Until the app launches and we have written to you, or until you ask to be removed. |
After that, the data is deleted or reduced to aggregate figures that can no longer be traced back to a single device. If you want to know the window currently in force for a particular provider, ask us.
9. Your rights
Wherever you are, you can ask us to: confirm whether we hold personal data about you; give you a copy of it; correct it where it is wrong, incomplete or out of date; delete it, or anonymise or block what is unnecessary, excessive or handled unlawfully; restrict or object to what we do with it; hand it to another provider; tell you who we share it with; and withdraw a consent you gave, having been told what refusing means. We offer that same list to everyone who uses the app, not only where a law compels it.
For users in the United States, several state privacy laws provide comparable rights — the list above is what we offer regardless of which state you are in. For users in Europe, those rights come from the EU GDPR and the UK GDPR, and withdrawing a consent never affects what we did while it was in force. For users in Brazil, they come from the LGPD.
Two of these you can exercise yourself, right now, without asking us: withdraw a permission in your phone's settings, and delete everything the app holds locally by deleting the app.
How deletion works
Write to privacy@nopainnoscroll.com. We answer within the deadline that applies where you are — at most one month, and sooner where local law requires. We may need a question or two to be confident we are acting for the right person — but only what is necessary to establish that, and nothing we would keep afterwards.
You can also lodge a complaint with your local data protection authority.
10. This website
nopainnoscroll.com is a set of static pages. It sets no cookies, runs no analytics, and ships no tracking scripts of any kind — there is no consent banner because there is nothing to consent to.
Two things still happen when you load a page. Our host, Netlify, keeps ordinary server logs — your IP address, your browser's user agent, the page requested and the time — for security and troubleshooting. And the page fetches two typefaces from Google Fonts, which discloses your IP address and browser to Google.
The waitlist is optional, and it is a Google Form. What you type into it — your email address, and anything else the form asks — is stored by Google and readable by us. We use it for one thing: telling you when the app is out. We will not add you to any other list, and every message will have a way to leave.
11. Security
Everything the app sends travels over encrypted connections. On the device, your data sits in the app's private storage, protected by iOS Data Protection and the Android application sandbox; the anonymous identifier sits in the iOS Keychain or Google Play Block Store. Our providers hold what §6 lists, under their own security programmes.
12. Changes to this policy
When this policy changes, the date at the top changes with it and the previous version is replaced here. And where a change would need your consent, the old one cannot carry it — you would be asked again before it applied to you.
13. Contact
LBR DESENVOLVIMENTO E MANUTENCAO DE SOFTWARE LTDA
CNPJ 44.706.387/0001-71
Al. Salvador, 1057 — Caminho das Árvores
Edif. Salvador Shopping Business — Torre América, salas 911 e 912
Salvador — BA, CEP 41820-790
Brazil
That address reaches the person responsible for data protection at the company.