Last updated: 25 August 2026
This document describes what the Worldpiece app does with data. It is written from the source code, not from intent: every claim below can be checked in the repository, and the sections at the end say exactly where.
Worldpiece does not collect, receive, or share any data about you.
The app has no servers of its own, no accounts, no analytics, and no advertising SDK. Nothing you do is sent to us, because there is nowhere for it to be sent: we operate no service that could receive it.
There is exactly one exception to "nothing leaves the device", and it is yours to switch on or off: Apple Game Center. If — and only if — you choose to sign in, the game asks Apple to record your score in the leaderboard under your own Apple ID. That request goes to Apple, not to us. We never see your name, your Apple ID, your rank, or anyone else's score: the leaderboard is drawn by Apple in Apple's own window.
If you never sign in to Game Center, the app makes no network requests at all.
The game saves your progress locally so you can continue where you stopped:
This data is written to the device's own storage (Web Storage inside the app and, on mobile, the system preferences store). It never leaves the device. It is removed when you delete the app, and "Reset progress" in Settings clears it from inside the game.
Worldpiece can turn your own photo into a puzzle. You can pick an existing photo or take a new one — iOS offers both inside its own picker, and either way the picture goes straight into the puzzle and no further.
The app never asks for access to your photo library: the system picker runs outside the app and hands over only the one file you chose. It does ask for camera permission, but only at the moment you choose "Take Photo" yourself.
When you pick a photo:
The app never browses your photo library: it receives only the single file you hand it through the system picker, which runs outside the app. Camera permission is requested once, and only if you yourself choose "Take Photo" in that picker — the shot then goes straight into the puzzle.
Worldpiece contains no chat, no user-to-user contact, no user-generated content shared with anyone, no links out of the app, and no advertising. Nothing in the app can put a child in contact with a stranger.
Purchases inside the app are processed entirely by Apple's App Store or Google Play. Worldpiece never sees, receives, or stores your payment details — the app is told only whether a purchase succeeded. Refunds, receipts, and payment data are handled by the store under its own privacy policy.
The current release contains no advertising and no advertising SDK. If optional rewarded video is added in a future version, this policy will be updated before that version is published, and the change will be described in the release notes.
There are none. The app does not measure sessions, crashes, retention, or anything else, because it never contacts a server.
None. There is nobody to share data with: no third-party services are embedded in the app.
Because no data ever reaches us, there is nothing for us to disclose, export, correct, or delete on your behalf. You are in full control:
Should this ever change, this policy will be updated first.
Questions about this policy: [email protected]
Reviewers and curious players can check every statement above:
| Claim | Where to look |
|---|---|
| No network requests of our own | no fetch, XMLHttpRequest, WebSocket, or sendBeacon anywhere in src/ |
| Game Center is the only thing that leaves the device | src/gamecenter.js and ios/App/App/GameCenterPlugin.swift — three calls: sign in, submit a number, show Apple's window |
| Game Center is optional and silent | signIn never presents a sign-in sheet on launch; submitScore does nothing unless the player signed in |
| We receive nothing back | the plugin returns only available and sent flags — no names, no ranks, no other players |
| No analytics or trackers | no such dependency in package.json; no SDK in src/ |
| Storage is local only | src/storage.js — Web Storage plus @capacitor/preferences |
| Photos are never uploaded | src/screens/custom.js — FileReader only, no upload path |
| No camera plugin, no library access | no camera plugin in package.json; src/screens/custom.js uses a plain <input type="file">, so iOS runs its own picker outside the app |
| Camera only on your own choice | NSCameraUsageDescription in ios/App/App/Info.plist; iOS asks before the camera opens, and only if you tap "Take Photo" |
| Advertising is off | ADS.rewardedEnabled: false in src/config.js; no ad SDK installed |
| Purchases go through the store | src/billing.js — refuses without a real store plugin |
The full plugin list is: App, Haptics, Preferences, Splash Screen, Status Bar, and our own Game Center plugin. Only the last one talks to the network, only after you sign in, and only to Apple.