Restock

Privacy

Last updated: 2026‑05‑13

Our privacy promise

Restock is a 100% on‑device pantry and gift tracker. Your data lives on your iPhone (and, if you choose, in your own private iCloud account). Restock has no servers, no analytics, no crash‑reporting SDK, no ads, no third‑party SDKs, and no networking code beyond what Apple uses to sync iCloud on your behalf. Nothing you put into Restock is ever sent to us — because there is no "us" on the other end.


What data we collect

Restock stores only the data you enter. All of it is held in SwiftData on your device, and optionally mirrored to your private iCloud database via CloudKit.

Data typeOriginWhere it livesWho can see it
Pantry items (name, quantity, category, notes)You type or dictate themSwiftData on device, optional iCloud syncYou
Photos attached to itemsYou take or choose themSwiftData on device, optional iCloud syncYou
Recipes and meal plansYou create themSwiftData on device, optional iCloud syncYou
Gift‑giver attributionYou pick from ContactsSwiftData on device, optional iCloud syncYou
Voice transcriptsYou dictate; on‑device speech recognitionSwiftData on device (as item names)You
Notification preferencesYou toggle them in SettingsUserDefaults on deviceYou

Restock does not collect any data on its own. There is no telemetry, no usage tracking, no identifiers, no IP logs.


System permissions we ask for

When you first use a feature that needs a system permission, iOS shows a standard prompt. You can revoke any permission at any time in Settings → Restock.

Info.plist keyiOS promptWhenWhy
NSCameraUsageDescription"Restock would like to access the Camera"First time you tap "Take photo"To photograph items or gifts so Vision can identify them on‑device
NSPhotoLibraryUsageDescription"Restock would like to access your Photos"First time you pick an existing photoTo attach an existing photo to an item
NSMicrophoneUsageDescription"Restock would like to access the Microphone"First time you tap voice‑addTo capture your voice for on‑device transcription
NSSpeechRecognitionUsageDescription"Restock would like to use Speech Recognition"First time you tap voice‑addTo transcribe spoken item names; audio never leaves your device
NSContactsUsageDescription"Restock would like to access your Contacts"First time you tag a gift giverTo let you pick a contact to credit for a gift

Restock never requests location, calendar, reminders, health, motion, Bluetooth, local network, or any tracking permissions.


What we DON'T do


Apple Intelligence and on‑device AI

Restock uses Apple's on‑device intelligence stack:

Restock does not use Private Cloud Compute, ChatGPT integration, or any cloud LLM.


iCloud sync

If you have iCloud Drive enabled and you allow Restock to use it, your pantry, recipes, photos, and gift records sync through CloudKit to your private iCloud database.

You can disable sync any time in Settings → [your name] → iCloud → Apps Using iCloud.


Required Reason API declarations

Apple requires apps to declare the categories of "required reason" APIs they touch. Restock's PrivacyInfo.xcprivacy declares:

CategoryCodeWhy
NSPrivacyAccessedAPICategoryFileTimestampC617.1SwiftData and image caches read/write file modification times within the app's sandbox
NSPrivacyAccessedAPICategoryUserDefaultsCA92.1Storing notification toggles, theme, etc.
NSPrivacyAccessedAPICategoryDiskSpaceE174.1Checking available space before writing photo caches
NSPrivacyAccessedAPICategorySystemBootTime35F9.1Indirectly accessed by Foundation/@Observable runtime machinery

All four categories are accessed only inside Restock's own process — never for tracking, never sent off device.


Privacy nutrition label preview

When Restock ships, the privacy section of its App Store page will read:

Data Not Collected. The developer does not collect any data from this app.

This matches NSPrivacyCollectedDataTypes being an empty array and NSPrivacyTracking being false.


Questions?

If something on this page is unclear, or you spot something that contradicts how Restock actually behaves, please open an issue on the project's repository. Privacy is a contract — if we ever change it, this document changes first.