Privacy Policy — Pinnie

Effective date:
2026-08-13
Last updated:
2026-08-13
Publisher:
Mudwood Labs ("we," "us")
Contact:
privacy@mudwoodlabs.com
Applies to:
the Pinnie web app at pinnie.mudwoodlabs.com, and the Pinnie apps for iOS and Android

Short version

Pinnie is a sideline tool for youth-sports coaches. Everything you put into it stays on your device.

The rest of this document is the long version, with the detail the app stores and EU/California regulators want spelled out.

1. What Pinnie stores on your device

Pinnie saves your work using localStorage — ordinary local browser storage, which in the store apps lives inside the app's own private container. This data never leaves your device unless you deliberately export or share it. There is no sync, no cloud copy and no backup on our side.

WhatWhyWhere
Teams and rosters — team names, player names, ability tiers, keep-together / keep-apart rules, owned bib colorsSo your squad is there the next time you open Pinniepinnie.teams.v2, pinnie.active.v1, pinnie.roster.v1, pinnie.together.v1, pinnie.apart.v1, pinnie.colors.v1
Who's here today — the present/out listOnly players marked "Here" go into Groups and Subspinnie.out.v1
The live game — lineup, clock, period, substitution log, minutes and goalkeeper time per playerSo closing or reloading the app mid-match doesn't lose the gamepinnie.game.v1, pinnie.lineup.v1, pinnie.periods.v1
Season history — cumulative minutes, starts, goalkeeper time and pairing history per playerPowers the fairness ledger and season-aware "Mix it up"pinnie.season.v1, pinnie.mix.v1
Focus sessions — which players you watched, the template used, and each logged repProduces the per-player process/outcome summary and its season rolluppinnie.focus.v1, pinnie.focus.prefs.v1
Settings — theme, sport, sound & buzz, group-balance mode, tile densityRemember how you like the apppinnie.sport.v1, pinnie.sound.v1, pinnie.balance.v1, pinnie.density.v1, and the theme key
Housekeeping flags — whether you've dismissed the install prompt, seen the landing page, or been nudged to back up; a one-time rules-migration markerSo Pinnie doesn't repeat a prompt you've already answeredpinnie.install.v1, pinnie.landing.seen, pinnie.bkupnudge.v1, pinnie.rulesmig.v1

That is the complete list. There is no hidden identifier, no device fingerprint, and no randomly generated user ID — because there is nothing for one to be sent to.

Cookies: Pinnie sets none. Not for storage, not for preferences, not for measurement.

Device backups

If you have device backup switched on — iCloud Backup on iOS, or Google Backup / Auto Backup on Android — the operating system may include the app's data in encrypted backups managed by Apple or Google. We have no access to those backups. This is standard OS behavior and applies to most apps. You can exclude Pinnie from backups in your device settings.

On iOS, "Offload App" preserves the data for a later restore while "Delete App" removes it entirely. On Android, uninstalling removes the app's on-device data; if Auto Backup is on, a copy may remain in your Google account until it expires or you delete it. In the web app, clearing site data for pinnie.mudwoodlabs.com in your browser settings deletes everything.

2. Player names and children's data

Pinnie is a tool for adults — coaches and team managers — but the names in the roster are usually children's. We take that seriously enough to state it plainly rather than bury it:

A practical suggestion: first names, or first name plus last initial, are all Pinnie needs to do its job. Using less is always safer than using more, especially if you ever share a lineup image or a backup file.

Because none of this data reaches us, we are not in a position to collect, disclose or sell children's personal information — under COPPA, the UK Age Appropriate Design Code, or any comparable regime. Your club or league may still have its own rules about recording player information on a personal device; those are between you and them.

3. What we do not collect

To be explicit about what Pinnie does not do:

4. No outbound requests

Pinnie’s own code contacts no third party. Not on launch, not in the background, not on a schedule. There is no analytics ping, no CDN, no remote configuration fetch, and no "phone home" of any kind. The site is served through Cloudflare, whose settings can inject a script we did not write — that has happened before, so we check the live pages every day and treat a failure as a bug, not a footnote.

That includes the typefaces. Pinnie's screens use two fonts, Anton and Hanken Grotesk, and both files ship inside the app rather than loading from Google Fonts. Until 2026-08-13 they were fetched from Google's font servers on first load, which meant your IP address reached Google before the page painted. It carried none of your data, but it was enough to make "nothing leaves your device" not quite true — so we removed it. Both faces are licensed under the SIL Open Font License, which expressly permits this.

The practical result: on a phone with the app installed, Pinnie can run an entire season in airplane mode. The store builds fetch nothing of their own. The one exception is the tip jar: opening it asks your app store for current prices, and tipping goes through your app store’s own checkout. Those exchanges are between your device and Apple or Google — we never see them, and they carry nothing about your roster. The web app makes exactly one kind of request — asking our own host for Pinnie's own files — and once its offline cache is warm, it stops making even those.

Everything else described in this policy happens only because you deliberately tapped something.

5. Website hosting web app only

The web app at pinnie.mudwoodlabs.com is a set of static files hosted on Cloudflare Pages. Like any web host, Cloudflare processes the requests needed to deliver the page and keeps operational logs (IP address, timestamp, requested URL, user agent) for security, abuse prevention and traffic analysis. We do not run analytics on top of this, and we do not consult, export or retain those logs. Cloudflare acts as our hosting provider; see the Cloudflare privacy policy.

The web app also installs a service worker — a small script your browser stores so Pinnie loads instantly and works with no signal. It caches Pinnie's own files, fonts included, in your browser. It sends nothing anywhere. The store apps have no service worker; their files are already on the device.

6. Sharing and export — when data leaves at your direction

Several features can move data off your device. Every one of them is something you tap deliberately, and you choose the destination. We never see the result.

6a. Backup code and backup file

From the Roster tab you can copy a backup code or download a backup file containing your teams, rosters, rules, season history and Focus sessions. Where you put it is entirely your choice — a note app, a message to yourself, a file on your phone. There is no cloud store it goes to, and we do not learn that you made one. Treat a backup like the roster it contains: it holds player names.

6b. Share a lineup, a summary or a Focus session

Share buttons hand the content to your operating system's share sheet (the Web Share API, or the native share intent). You pick the destination — Messages, Mail, a team chat group, anything. We do not see which app you choose or what happens afterwards. The shared content is the text or image you were looking at, which may include player names.

6c. Save a lineup as an image

The image is drawn on your device and saved to your device. It is never uploaded.

6d. Copy to clipboard

Some screens offer a copy button. Your OS owns the clipboard; we get no feedback about what you paste or where.

7. Optional tips in the store apps iOS & Android only

Pinnie is free, and every feature is free. The store apps include a Tips screen where you can, if you want to, send the developer a one-off thank-you. A tip unlocks nothing — it is not a purchase of features, a subscription, or a donation to your team, club or coach.

Refunds are handled by the store, not by us: Apple or Google Play.

8. Supporting Pinnie on the website web app only

The website has a Support page offering two optional ways to chip in. Neither appears in the store apps, and neither is required to use anything.

9. Third parties

The complete list of outside parties that may touch anything related to Pinnie. Every row is either your own web host serving you the app, or a payment you chose to make — none of them is something Pinnie does behind your back:

PartyWhenWhat they seeTheir policy
Cloudflare, Inc.Web app only, while it downloads the pageStandard hosting request logscloudflare.com/privacypolicy
Apple Inc.iOS app; only if you leave a tipYour payment details and Apple ID — which Apple already holds. We do not supply them.apple.com/legal/privacy
Google LLC (Google Play)Android app; only if you leave a tipYour payment details and Google account — which Google already holds. We do not supply them.policies.google.com/privacy
Ko-fi Labs Ltd.Web only; only if you choose to tip thereWhatever you enter on their checkoutmore.ko-fi.com/privacy

We do not sell, rent, lease, license, trade or otherwise commercialize personal information. We share nothing with data brokers. We do not engage in "cross-context behavioral advertising" as defined under California law. We do not use your data to train machine-learning models — we do not have your data.

10. Your rights

Pinnie holds no personal data on our side, so most data-rights requests have a faster answer than emailing us: the data is in your hands already. We honor these rights globally regardless of where you live.

10a. Delete your data

10b. Access or export your data

Use Copy backup code or Download backup file on the Roster tab. That export is complete — it is the same data Pinnie itself uses.

10c. Correct your data

Edit or delete any player, team, rule, game or Focus session directly in the app. No request to us is needed or possible.

10d. Opt out of "selling" or "sharing"

We do not sell or share personal information as defined by the California Consumer Privacy Act (as amended by the CPRA). No action is required. Global Privacy Control signals are honored automatically — though with no selling or sharing taking place, the signal has no behavior to change.

10e. EU/UK GDPR specifics

To exercise any right, email privacy@mudwoodlabs.com. We respond within 30 days — though for most requests the honest answer will be that we never had the data.

11. Children's privacy

Pinnie is designed for coaches and team managers, not for children, and it is not directed to children under 13 (under 16 in the EEA and UK). We do not knowingly collect personal information from anyone, children included — the app has no mechanism to transmit personal information to us.

Player names entered by a coach are covered in section 2. They remain on the coach's device throughout, and we never receive them. If you believe personal information about a child has somehow reached us, contact privacy@mudwoodlabs.com and we will investigate and delete it.

12. Security

If we ever become aware of a security incident affecting Pinnie users, we will post a notice on this page and inside the app within the timeframes required by applicable law, generally 72 hours.

13. Changes to this policy

We may update this policy if the app changes — for example, if a future feature touches data differently. When we do, we will update the "Last updated" date at the top, and for material changes surface a notice inside the app. Material changes take effect 30 days after that notice. Continued use after the effective date constitutes acceptance.

14. Contact

For any privacy question, data-rights request, or concern about this policy:

Mudwood Labs (a software DBA of Mudwood LLC)
privacy@mudwoodlabs.com