Effective date: September 28, 2026
Last updated: 2026-10-26
Who we are
JuggleScroll is an app for football players. In this policy, "we" and "our" mean the person who operates JuggleScroll, named under Contact at the end. Questions about this policy, or about your data, go to [email protected].
The short version
JuggleScroll keeps almost all of its data on your phone. There is no sign-up, no analytics and no advertising. The camera is used only to detect your football during a session, on the device, and no video or images are stored or sent anywhere. The apps you choose to block stay on your phone: on iPhone as Apple's anonymous tokens, on Android as the app's own package name. Neither is ever sent anywhere.
On Android, JuggleScroll uses an Accessibility Service to do the blocking. It is told only the name of the app that has just come to the front. It cannot read the contents of your screen — not your messages, not what you type, not anything inside another app — and that is enforced by Android itself, not by a promise. See "Blocking apps on Android" below.
One thing is backed up. JuggleScroll creates an anonymous identity — no email, no password, no name attached to it — and saves the date and length of each session you win to our server under it. Apart from that, two small things leave your phone: a one-way code that stops the three free days being claimed twice, and whether you have an active subscription — plus the technical details every internet request carries, such as your IP address. All of it is explained below. Your name, your goals, your settings and your shielded apps never leave your phone. You can delete the backup and the identity at any time with Delete my data on the You screen.
What JuggleScroll collects and stores
Almost everything JuggleScroll stores, it stores on your device only. The rows in bold are the exceptions, and they are the only data it transmits.
| Data | Why | Where |
|---|---|---|
| A name you choose to enter (optional) | To address you on your own screens | On device |
| The goals you pick during set-up | Shown back to you on the You tab | On device |
| Your daily screen-time target and the level and hours you choose | To price a session | On device |
| Your drop count, the level you played and which app build detected it | Shown on your own screens and used for support | On device |
| Cards you save on the Discover tab | So they stay saved | On device |
| The time your earned screen-time allowance ends | To show the countdown and re-apply the shield | On device (and, on iOS, in the app's private shared container so the Screen Time extensions can read it) |
| Your Screen Time selection (see below) | To shield the apps you chose | On device, in the app's private shared container |
| An anonymous identity — a random identifier, with no email, password or name | So your backup belongs to someone, without asking you to sign up | On device and on our server |
| The date and length of each session you win | A copy of your session record, kept with your anonymous identity (see "Who can see the backup" for what it can and cannot restore) | On device and on our server |
| The IP address and app version the anonymous identity signs in from | Recorded by our backup provider's sign-in service with each sign-in, for security | On our server, until the identity is deleted |
| A one-way code for this device, and when you started your free days | So the three free days can be claimed once per device (see below) | On our server |
| Whether this installation has an active subscription | To unlock the app after the free days, and to restore a subscription | With RevenueCat and Google Play or the App Store (see Third parties) |
Your session count, total juggling time, days won, current streak and best streak are all worked out from those dates and lengths. None of them is stored as a separate number on our server, because a number that can drift from the sessions behind it is worse than no number at all.
JuggleScroll does not collect your date of birth, exact age, location, contacts, photos, microphone audio, advertising identifier, or any account credentials. It has no sign-up and no password, and asks for nothing that names you. "Anonymous" here means that no name, email or password is attached: the identity is still unique to your installation, so we treat it, and everything stored with it, as personal data and protect it as this policy describes.
Who can see the backup
Only the app holding your anonymous identity can read it: the database's access rules stop any other installation from reading another identity's sessions. As the operator we can see the stored rows themselves, but nothing in them tells us whose they are.
The identity lives in this app's storage on your phone, and there is no password to recover it with. So clearing the app's data, reinstalling, or moving to a new phone means a new identity and an empty record. That is the cost of not asking you to sign up, and it means the backup keeps a copy of your record on our server — it cannot bring your record back after any of those.
The camera
JuggleScroll asks for camera access only when you start a juggling session. Camera frames are processed on your device to detect your football, whether you are actively juggling, and where your hands are, so that time with the ball held in your hands does not count. Frames are analysed and discarded.
- No video is recorded.
- No frame or image is saved.
- No frame or image is uploaded or sent to anyone.
- No third-party software receives camera data.
The detection models run entirely inside the app.
Screen Time and Family Controls (iOS)
On iPhone, JuggleScroll uses Apple's Screen Time APIs (FamilyControls, ManagedSettings and DeviceActivity) to shield the apps, categories and websites you choose, and to lift that shield for the time you earn.
- You choose what to shield using Apple's own picker.
- Apple gives JuggleScroll opaque tokens for your choices. JuggleScroll does not receive, store or transmit the names of the apps you chose, and it does not collect a list of the apps installed on your phone.
- These tokens are stored only on your device, in a container shared between the app and its Screen Time extensions so the shield can be re-applied when your earned time runs out.
- JuggleScroll does not read your Screen Time usage reports.
- Screen Time data never leaves your device.
- You can revoke JuggleScroll's Screen Time access at any time in iOS Settings → Screen Time. Doing so removes the shield.
Screen Time authorisation is requested for the person using the device (Apple's "individual" authorisation). JuggleScroll does not manage other people's devices.
Blocking apps on Android (Accessibility Service)
Android has no equivalent of Apple's Screen Time API for a third-party app, so JuggleScroll does the blocking itself, using an Accessibility Service. This section explains exactly what that service can and cannot do, because it is the most sensitive permission the app asks for and you are owed the detail.
You turn it on, and you can turn it off. The service does nothing until you enable JuggleScroll in Android Settings → Accessibility. JuggleScroll explains what it will do before sending you there. You can revoke it at any time in the same place; the moment you do, nothing is blocked.
What the service is told. It receives exactly one kind of event,
typeWindowStateChanged, which fires when an app comes to the foreground and
carries that app's package name. That single fact — "the app now in front is
com.example.social" — is all JuggleScroll needs to decide whether to block.
What the service cannot do. JuggleScroll declares
canRetrieveWindowContent="false". Without that capability Android refuses the
app every request for screen content: it cannot read text, messages, passwords,
form fields or anything else inside any app, and it cannot see what you type.
This is enforced by the operating system — the requests fail at the platform,
not at our discretion. JuggleScroll also does not request the "draw over other
apps" permission.
The list of your apps. To show you a picker, JuggleScroll reads the list of
apps on your phone that have a launcher icon. It does not request
QUERY_ALL_PACKAGES, so it cannot see apps without one. This list stays on
your device and is never sent anywhere. It is used only to draw the picker.
Your choices. The apps you choose to block are stored as package names in JuggleScroll's own private storage on your phone. They are not uploaded, not attached to your backed-up sessions, and not shared with anyone. The part of JuggleScroll that does the blocking makes no network connections at all.
Not an accessibility tool. JuggleScroll uses the Accessibility API to block apps you chose, not to provide assistive features, and it is declared to Google Play on that basis.
Accounts, analytics, advertising and purchases
- Accounts: JuggleScroll has no sign-up. There is no email, no password and no profile to create. The anonymous identity described above is created for you, is not a login, and can be deleted from inside the app.
- Analytics: no usage analytics, crash reporting or tracking software is included. The only figures we see are RevenueCat's totals of purchases and subscriptions, described under Third parties.
- Advertising: none. No advertising identifier is read.
- Purchases: JuggleScroll offers a subscription through Google Play on Android and through the App Store on iPhone. The purchase happens in Google Play or the App Store, using the Google account or Apple ID already on your phone. JuggleScroll never sees or stores your card, your billing address or your Google or Apple account details, and there is no JuggleScroll payment screen — there is deliberately no code in the app that could collect any of it.
Your three free days, and the record that prevents repeat claims
New installs get 72 hours of the full app, free. This is not a Google Play or App Store free trial: you authorise nothing, no payment details are taken, and nothing is charged when the 72 hours end. You either choose a plan afterwards or you do not.
For that free period to mean anything, we have to be able to tell that a device has already had one — otherwise reinstalling would hand out another three days indefinitely. So when you start your free days, JuggleScroll stores two values on our server:
- a pseudonymous device identifier — on Android, your device's identifier; on iPhone, a random identifier JuggleScroll creates and keeps in your iPhone's Keychain, set so that it stays on that iPhone and is not copied to other devices. Either way it is combined with a JuggleScroll-specific label and converted into a fixed-length code (a SHA-256 hash) on your phone. The underlying identifier itself is never sent to us and is never stored by us.
- the date and time you started.
That is the whole record. We are not claiming this code makes your device impossible to identify: it is stable for this app on this device, which is exactly what lets it recognise a reinstall. We are telling you what it is for, and it is for one thing — deciding whether this device has already had its free days.
It is not linked to your sessions, your streak, your name, your goals, the apps you chose to block, or the anonymous identity used for your backup. The record has no field that could connect it to any of them. It is never used for analytics, advertising, cross-app tracking or profiling.
Third parties
JuggleScroll's backup is hosted on Supabase, which stores the anonymous identity and the session dates and lengths described above on our behalf. As with any internet request, Supabase's servers see the network information every request carries, such as your IP address, and its sign-in service records the IP address and the app version (user agent) of each sign-in of the anonymous identity, for security. Those records are deleted with the identity, and we do not use them for anything else.
Subscriptions are handled by Google Play (Android) or the App Store (iPhone), and by RevenueCat, which records whether this installation has an active subscription so the app can unlock. RevenueCat receives a random identifier for the installation, the purchase status the store reports, and the technical details of each request such as IP address, operating-system and app version, and your locale. Its dashboard also gives us totals worked out from those purchase records, such as how many subscriptions are active. It does not receive your name, your goals, the apps you block, anything from the camera, the free-trial device code described above, or your backup identity. Google's and Apple's own handling of your purchase is governed by their privacy policies, not this one.
Supabase and RevenueCat act on our behalf, under their terms of service and data-processing agreements, and protect the data they receive at least as well as this policy describes. Neither may use it for its own purposes.
Nothing else is sent to any third party. The app bundles its detection models, runtime and fonts inside itself, and apart from the backup, the free-days check and the subscription check it makes no network requests during normal use.
The app is distributed through the Apple App Store on iPhone and through Google Play on Android. Apple's and Google's handling of your download, payment and device information is governed by their own privacy policies, not this one.
Retention and deletion
You control all of it:
- Delete my data, on the You screen, removes the backup and the anonymous identity it belongs to, and clears your streak and totals from the phone. It cannot be undone, and you do not have to contact anyone to do it.
- Deleting the app deletes JuggleScroll's data on that device, with one exception on iPhone: the random identifier behind the free-days code stays in the iPhone's Keychain, which is how a reinstall is recognised. Erasing the iPhone removes it.
- If you delete the app or clear its data without using Delete my data first, the backup stays on our server under an identity that no app can sign in as any more. We cannot tell whose it is, so we cannot find it for you later. We do not yet delete such backups automatically.
- Revoking Screen Time access in iOS Settings removes the shield.
Screen time you have already earned is not taken back when you delete your data, and your app-blocking permission is left as it is — neither of those is data we hold.
Your subscription's purchase record is kept by Google Play or the App Store and by RevenueCat, as purchase records have to be; Delete my data does not remove it. It holds no name, goals, sessions or blocked apps — see Third parties.
How long we keep things. The backup and its sign-in records: until you delete them with Delete my data (or, for a backup left behind as described above, until we introduce automatic deletion, which this policy will then state). Purchase records: as long as Google, Apple and RevenueCat keep them. The free-trial record: for as long as JuggleScroll offers free days.
One thing is deliberately kept when you delete your data: the free-trial record described above — the pseudonymous device code and the date your three free days started. If deleting your data also deleted that record, "delete my data" would become a button that grants another three free days, and the free period would stop meaning anything.
We have kept that record as small as it is possible to make it. It is a code and a date. It is not connected to your sessions, your streak, your name, your goals, your blocked apps or your backup identity, it is not used for anything except deciding whether this device has already had its free days, and everything else about you is deleted as described above.
Your choices and rights
- See it: everything the backup holds — the dates and lengths of the sessions you won — is shown to you on the You screen.
- Delete it: Delete my data, as described above, with no need to contact anyone. Deleting the app and revoking its permissions in Settings stops everything else.
- Ask us: email [email protected] about anything in this policy. Because we hold no name or email, we can only act on a record the app on your phone can identify; we cannot search our server for you by name.
- Depending on where you live (for example under Canada's PIPEDA or the EU and UK GDPR), you may have further rights to access, correct or erase your personal data, and you can complain to your data-protection authority.
Children
JuggleScroll is a general-audience app for football players and is not directed at children under 13. It does not ask for a date of birth or exact age and does not knowingly collect personal information from children.
Changes to this policy
If this policy changes, the new version will be published at the same address with a new effective date, and material changes will be noted in the app.
Contact
Operated by Kambili Okwuosa.