Sync and privacy
Pinwork does not require a Pinwork account. Your tasks live on your device and sync through your private iCloud database when iCloud is available.
There are no Pinwork servers for your task data.
Where your data is stored
Section titled “Where your data is stored”Pinwork stores tasks, projects, tags, checklist items, ordering, and app metadata in a local Core Data store on your device.
Production device builds use Apple’s CloudKit-backed Core Data syncing through your private iCloud database.
The CloudKit container is owned by the app, but the records live in your private iCloud scope.
How iCloud sync works
Section titled “How iCloud sync works”Sync runs automatically.
When you save changes, Core Data exports those local changes to CloudKit. Changes from other devices are imported by Apple’s CloudKit system on its own schedule.
Pinwork listens for remote change notifications, refreshes the local view context, and asks open task, project, and tag screens to reload from the store.
CloudKit import timing is controlled by Apple. Pinwork can refresh local data that has already arrived, but it cannot force iCloud to download instantly.
Offline behavior
Section titled “Offline behavior”Pinwork works offline.
The local store remains the source of truth for the current device while you are offline. You can keep creating, editing, completing, and organizing tasks.
Pending changes export when iCloud is available again.
If iCloud is unavailable, busy, rate limited, signed out, not authenticated, or out of quota, sync diagnostics can show a user-facing message. Sync retries are left to the system.
Sync diagnostics
Section titled “Sync diagnostics”Open Settings and the Sync section to see:
- status
- iCloud account status
- last Cloud activity
- last checked time
- last error
- Check Sync Status
Status labels can include Ready, Checking, Recent activity, or Needs attention.
Check Sync Status can save pending local changes and refresh local data that has already been imported. It cannot force an instant iCloud download.
If the iCloud account is signed out, sync is paused. Sign in to iCloud and restart Pinwork.
Conflict behavior
Section titled “Conflict behavior”Pinwork does not show a field-by-field conflict resolver.
Core Data merges background changes into the main app context, and open views reload from the store after remote sync notifications.
If the same task changes on multiple devices, recover by editing the task again, using local undo where available, or restoring from Archive where that applies.
Preference sync
Section titled “Preference sync”Most preferences live in local device settings.
Selected preferences sync separately through iCloud Key-Value Storage, including:
- GTD mode
- completion behavior
- auto rollover
- Calendar Peek
- linked calendar event visibility
- upcoming time range
- onboarding completion and version
- starter project version and ID
Some settings stay local or App Group based, including many device-specific flags, Spotlight controls, deep-link related state, and widget settings.
Apple Reminders import
Section titled “Apple Reminders import”Pinwork can import selected Apple Reminders lists into Pinwork projects.
The import is one-way. Pinwork reads the Reminders lists you choose and does not change, delete, complete, or keep syncing Apple Reminders.
Imported reminders become normal Pinwork tasks. After import, those tasks are stored locally in Pinwork and sync through Pinwork’s private iCloud data when iCloud is available.
See Import Apple Reminders for the full import workflow and field mapping.
App Group data for extensions
Section titled “App Group data for extensions”Widgets, Shortcuts, Share Extension, Focus Filters, and Live Activity controls need small shared payloads so they can work outside the main app.
Pinwork stores these payloads in the shared App Group container.
Shared data can include:
- widget snapshot
- widget, App Intent, and share action queue
- intent task index
- share metadata cache
- widget settings
- cached entitlement state
- pending Live Activity completion ID
- pending intent navigation
- Focus Filter state
The cached entitlement state is a Pinwork-owned access summary. Extensions and Apple Watch do not load RevenueCat or inspect App Store purchase history directly.
The widget snapshot includes a lightweight Today summary and task rows with fields such as ID, title, When, Deadline, priority, overdue state, and completed state.
The intent task index includes incomplete task IDs, titles, optional scheduled dates, and overdue state.
The share metadata cache includes active project names, project colors, tag names, and tag colors.
Spotlight search
Section titled “Spotlight search”Pinwork can index active tasks into system Spotlight search.
Spotlight indexing is on by default and local to the device.
Indexed fields can include:
- task title
- notes as content description
- tags
- keywords such as inbox, today, waiting, someday, and maybe
- task deep link URL
- creation date
- modification date
Done and Canceled tasks are removed from the Spotlight index. Apple Watch does not index tasks.
In Settings, you can disable Spotlight indexing, rebuild the index, or clear the Pinwork Spotlight index.
Purchase verification and RevenueCat
Section titled “Purchase verification and RevenueCat”Apple processes Pinwork purchases and payments. Pinwork uses RevenueCat to load App Store products and verify monthly, yearly, and lifetime access.
RevenueCat receives:
- a stable pseudonymous Pinwork customer ID
- App Store product and purchase history
- subscription and entitlement status
- store environment, such as production or sandbox
- purchase, expiration, renewal, billing, refund, and revocation evidence when the underlying store makes it available
Pinwork creates the customer ID by applying a one-way SHA-256 hash to a versioned value derived from Apple’s verified App Transaction identity and store environment. Pinwork does not persist or log the raw App Transaction ID, and RevenueCat does not receive it from Pinwork.
Purchase History and the pseudonymous customer ID are used for App Functionality and Analytics. They are linked to that pseudonymous customer record and are not used for tracking.
Automatic RevenueCat device identifier collection is disabled. Pinwork does not set RevenueCat customer attributes such as email address, display name, phone number, advertising identifier, or attribution data.
What Pinwork does not send to RevenueCat
Section titled “What Pinwork does not send to RevenueCat”Pinwork does not send any of the following to RevenueCat:
- task titles or notes
- projects, tags, or checklists
- Calendar events or Reminders
- contacts
- email address or phone number
- Apple Account details
- advertising identifiers
- iCloud records
RevenueCat is linked only to the main Pinwork app. Widgets, App Intents, the Share Extension, Apple Watch, Watch widgets, CoreKit, SharedConstants, and PinworkIntents do not include the RevenueCat SDK.
Purchase access while offline
Section titled “Purchase access while offline”Pinwork stores a verified entitlement snapshot locally and publishes a limited access summary to its App Group and Apple Watch.
Cached no-access evidence cannot remove previously trusted access. Trial and subscription access is bounded by the last known expiration. Grace period access uses a limited verification window. Billing retry, expired, and revoked states remain read-only.
If previously trusted lifetime access disappears from otherwise fresh purchase evidence, Pinwork performs one guarded purchase synchronization and current-network check. Absence alone does not revoke lifetime access.
App privacy scope
Section titled “App privacy scope”This page describes the native Pinwork app and its extensions. The marketing website is separate and may have its own website analytics disclosure.
Reset and recovery
Section titled “Reset and recovery”Reset Local Data can appear on the database recovery screen if the local store fails to load. It deletes this device’s local store files for recovery. If CloudKit is enabled and iCloud data exists, data may sync back after recovery.
Do not use Reset Local Data as account deletion. It is local database recovery.
Related
Section titled “Related”- Getting started: basic storage and sync model.
- At a glance: widgets and extension surfaces.
- Apple Watch: Watch local store and best-effort sync.
- Calendar: Calendar permission and linked events.
Thanks for your feedback.