Privacy Policy — Worldpiece: Jigsaw Puzzles

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.

Short version

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 are exactly two exceptions to "nothing leaves the device". Both go to Apple, never to us, and both are 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.

Your own iCloud. If you are signed in to iCloud, the game keeps a copy of your progress there so it appears on your other devices. It is stored in your personal iCloud account, in the small key-value area Apple gives each app, and it counts against your iCloud storage, not ours. We have no access to it: we run no servers, hold no keys, and cannot read what is in your iCloud. If you are not signed in to iCloud, the game simply plays on, saving locally, and says nothing about it.

What travels is the same list of progress you see in the next section, minus two things that stay on each device on purpose: your settings (sound, vibration, language, reminders) and the unfinished game you are in the middle of. Settings belong to the device — you may want silence on one and sound on another. An unfinished board should not jump between devices mid-move.

If you sign in to neither, the app makes no network requests at all.

What is stored on your device

The game saves your progress locally so you can continue where you stopped:

That is the complete list — it mirrors DEFAULT_SAVE in src/storage.js field for field, and you can check it there.

This data is written to the device's own storage (Web Storage inside the app and, on mobile, the system preferences store). A copy also goes to your own iCloud when you are signed in to it — see the two exceptions above; it reaches Apple, never us. The local copy is removed when you delete the app, and "Reset progress" in Settings clears it from inside the game. The iCloud copy is yours: it is removed with the rest of an app's iCloud data in iOS Settings → your name → iCloud.

Your photos

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.

Children

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

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.

Advertising

Worldpiece contains no advertising. Not disabled by a setting — there is no advertising code in the app at all: no ad SDK, no ad network, no rewarded video, no interstitials between levels.

This is a property of the game, not a paid privilege: nobody sees ads, and nobody has to pay to avoid them.

Notifications

Reminders about the daily puzzle are off until you turn them on in Settings, and they are local notifications: the phone schedules them and the phone shows them. Nothing is sent anywhere, and nothing about you leaves the device — the reminder is created on your phone from data that was already on your phone.

The app uses no push notifications. Push would require a server that knows who you are and when to write to you; we run no such server and hold no such list. There is no APNs key in the project and no Push Notifications capability in the build.

Reminders never advertise: they say that a new daily puzzle is available, or that a streak you already started is about to end. Turning them off in Settings removes every scheduled reminder. Sound, banner style, badges and Scheduled Summary belong to iOS Settings, not to the app.

Analytics

There are none. The app does not measure sessions, crashes, retention, or anything else, because it never contacts a server.

Data sharing

None. There is nobody to share data with: no third-party services are embedded in the app.

Your rights

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.

Contact

Questions about this policy: [email protected]

We answer every letter. This address forwards to a real person — it is not a robot and not a ticket queue.

Where to verify these claims in the source

Reviewers and curious players can check every statement above:

ClaimWhere to look
No network requests of our ownno fetch, XMLHttpRequest, WebSocket, or sendBeacon anywhere in src/
Game Center and iCloud are the only things that leave the devicesrc/gamecenter.js and ios/App/App/GameCenterPlugin.swift — three calls: sign in, submit a number, show Apple's window
The iCloud copy goes to your account, not to ussrc/cloudsave.js and ios/App/App/CloudSavePlugin.swift — Apple's NSUbiquitousKeyValueStore and nothing else; there is no address in the code to send anything anywhere
Settings and the unfinished game stay on the deviceNOT_SYNCED in src/cloudmerge.js names them, and the merge tests check that they never travel
Game Center is optional and silentsignIn never presents a sign-in sheet on launch; submitScore does nothing unless the player signed in
We receive nothing backthe plugin returns only available and sent flags — no names, no ranks, no other players
No analytics or trackersno such dependency in package.json; no SDK in src/
Storage is local onlysrc/storage.js — Web Storage plus @capacitor/preferences
Photos are never uploadedsrc/screens/custom.jsFileReader only, no upload path
No camera plugin, no library accessno 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 choiceNSCameraUsageDescription in ios/App/App/Info.plist; iOS asks before the camera opens, and only if you tap "Take Photo"
No advertising at allno ad SDK in package.json; no ad module in src/; a test forbids one appearing (adsTests in tests/board.test.mjs)
Purchases go through the storesrc/billing.js — refuses without a real store plugin
Reminders are local, never pushios/App/App/RemindersPlugin.swift uses UNUserNotificationCenter; no registerForRemoteNotifications, no aps-environment in App.entitlements
Reminders are off by defaultsettings.reminders: false in src/storage.js; the system prompt is shown only after you switch the row on
The review prompt is Apple's ownsrc/rating.js and ios/App/App/RatingPlugin.swift — a single AppStore.requestReview(in:) call and nothing else

The full plugin list is: App, Haptics, Preferences, Splash Screen, Status Bar, and three plugins of our own — Game Center, Reminders, and Rating. Only Game Center talks to the network, only after you sign in, and only to Apple. Reminders runs entirely on the phone; Rating asks the system to show Apple's own review sheet and learns nothing about what you answer.