Last updated: October 15, 2026
This policy describes how PackNinja ("we," "us," or "our"), developed by Vince Chiang, collects, uses, and shares information when you use the PackNinja iOS app (the "Service").
By using the Service, you agree to the collection and use of information in accordance with this policy.
Information we collect
PackNinja is designed to keep your data on your device. Most of it never reaches our servers, and the copy in your personal iCloud account is not accessible to us.
Information you provide or generate
- Core data (on your device and in iCloud): trips, packing items, templates, custom items, to-dos and settings. This is stored in a database on your device. If you turn on iCloud sync, it is also stored in your private iCloud database through Apple's CloudKit so your devices stay up to date.
- Data sent to our backend for specific features:
- Weather summaries (Pro): the destination name, dates and forecast, which our backend sends to Google's Gemini model. Forecasts themselves are requested by the app directly from weather providers (see below).
- AI packing suggestions: the destination, dates, forecast, activities, plug types and the names of items already on the list, which our backend sends to Google's Gemini model.
- AI trip covers: the destinations and dates, which our backend sends to Google's Gemini model. The generated image is stored in Google Cloud Storage so your devices can download it.
- Your own cover photos: if iCloud sync is on, a photo you choose as a trip cover is uploaded to Google Cloud Storage (a display-size copy and a larger copy up to 2,000 pixels) so your other devices can download it. The app re-encodes the image before upload, which leaves out location and other photo metadata. Photos are not stored in iCloud, and nothing is uploaded while iCloud sync is off.
- Sharing: when you share a trip, only the information you select (such as dates, destination, packing list, to-dos and notes) is sent to our backend to create the link.
- Diagnostics you choose to send: if you tap Send Diagnostics, the app prepares a report with recent app logs and data counts (not the content of your lists) for you to send to us.
Information we collect automatically
- Analytics (Firebase Analytics and Mixpanel): anonymized, aggregated data about how the app is used, such as feature usage, session length, device type and crash reports. We use it to improve the app, not to identify you.
- App integrity (Firebase App Check): requests to our backend include a token from Apple's App Attest that confirms they come from a genuine copy of the app.
- Purchases (RevenueCat): RevenueCat manages subscriptions and tells the app whether Pro is active. We never receive your payment details.
- Server logs: when you use a feature that contacts our backend, standard logs such as IP address, time and endpoint may be recorded to operate and secure the service.
How we use your information
- To provide the Service and keep your data in sync across your devices.
- To manage access to Pro features.
- To provide weather, AI suggestions, AI covers and sharing when you use them.
- To understand how the app is used and decide what to improve.
- To protect our backend from abuse.
Sharing of information
We do not sell your personal information. We share it only in these cases:
- Service providers that operate parts of the Service for us and must protect the data:
- Apple (iCloud): stores and syncs your core data when iCloud sync is on, under Apple's Privacy Policy.
- Google (Cloud Platform, Firebase and Gemini): hosts our backend, cover images and analytics, and runs the AI features.
- Weather providers (US National Weather Service, MET Norway and Bright Sky): the app requests forecasts from them directly, sending the destination's coordinates.
- Mixpanel: usage analytics.
- RevenueCat: in-app purchases and subscriptions.
- At your direction, for example when you share a packing list.
- For legal reasons, if disclosure is required by law or to protect the rights, property and safety of us or others.
Storage and retention
- On-device and iCloud data stays until you delete it in the app or delete the app. Data in iCloud stays until you delete it there.
- Cover photos you uploaded are deleted from Google Cloud Storage when you remove or replace the cover or delete the trip (the next time the app syncs with iCloud sync on). AI-generated covers are kept so your devices can restore them. You can ask us to delete any cover image at any time.
- Shared lists may be deleted from our servers after a period of inactivity. You can ask us to delete one at any time.
- Server logs are kept for a limited time, typically 30 to 90 days.
Security
All communication with our backend uses HTTPS, and our services run on secure cloud hosting. No system is perfectly secure, so we cannot guarantee absolute security.
Your choices and rights
- You can view, change and delete your trips and lists in the app at any time.
- You can turn iCloud sync off in Settings.
- You can ask us to delete shared lists or cover images stored on our servers.
To exercise any rights you have under data protection law, contact us.
Children's privacy
The Service is not directed to children under 13 (or the age of digital consent where you live). We do not knowingly collect personal information from children. If you believe a child has given us information, contact us and we will delete it.
Changes to this policy
We may update this policy from time to time. We will post the new version on this page and update the date above, and may also mention it in the app or in App Store release notes.
Questions about this policy? See the contact page.