How we handle your wardrobe.
Virtual Closet is a personal wardrobe app. The data inside it , your photos, your measurements, the outfits you wear, is yours. This page explains exactly what we collect, why, and how to get rid of it.
Effective: April 29, 2026 · Last updated: July 13, 2026
- Summary
- What we collect (includes face data)
- How we use it
- Third-party services
- AI processing
- Sharing with friends
- Safety and moderation
- Gmail and contacts (limited use)
- Where your data lives
- How long we keep it
- Your rights and controls
- Children
- California residents (CCPA)
- European residents (GDPR / UK GDPR)
- Changes to this policy
- Contact
1. Summary
Virtual Closet is operated by an independent developer ("we", "us"). We built the app for one job: helping you keep track of what you own and wear. We do not run analytics, we do not show ads, and we do not sell your information to anyone , ever.
Most of your closet , clothing photos, measurements, outfits, calendar events, your style profile, is stored on your device. A subset is synced to your private account in Google Cloud (Firebase) so you can use the app on multiple devices and share specific items with friends you choose. Photos you submit to AI features are sent to AI providers solely to produce the response you asked for, and are not used to train their models.
The short version. Your data is encrypted in transit and at rest. Your closet backup is stored in our secure cloud and locked to your account. Only you, signed in, can read it, so you can restore on any device. Sensitive shared content (calendar events) and items you share with friends in groups are additionally encrypted end-to-end. We cannot read those. You can delete your account and all server-side data from inside the app at any time.
2. What we collect
We only collect what's necessary to run the features you choose to use.
Account information
- Email address, set when you sign up via email/password or Google Sign-In.
- Display name, optionally provided by you or pulled from your Google account during sign-in.
- A unique user ID assigned by Firebase Authentication.
Wardrobe content (mostly stored on-device)
- Photos of clothing items, outfits, friend groups, and venues that you take, choose, or paste into the app.
- Item details you enter or that the app extracts: brand, size, color, category, measurements, fabric, notes, purchase price and date, storage location, tags.
- Outfits and outfit logs: which items make up an outfit, when you wore it, occasion, optional photo, mood, weather, and a city name (no precise coordinates).
- Trips and calendar events: dates, titles, optional venue, planned outfits, who you've shared an event with.
- Wishlist items you add to remember things you might buy later.
Face data (only if you use the photo library scan feature)
Virtual Closet includes an optional bulk photo library scan feature that automatically catalogs clothing from your camera roll. Before running this scan, the app asks you to complete a brief, guided selfie enrollment so it can distinguish your photos from photos of other people (friends, family) that happen to be in your library. This is the sole purpose of the face data we handle.
- What is collected: a small set of numerical face embeddings (mathematical fingerprints of roughly 128 floating-point numbers each) generated on your device by an on-device machine learning model (MobileFaceNet, running via TensorFlow Lite). Face embeddings are one-way transformations. They cannot be reverse-engineered back into a recognizable photo of you.
- Also, during an active scan session only: a single reference selfie photo may be temporarily uploaded to our private Firebase Cloud Storage (encrypted at rest by Firebase, accessible only via Cloud Functions we operate) so a server-side Cloud Function can filter your photos against your face reference during bulk processing. This blob is automatically deleted within 24 hours by a scheduled cleanup job, and immediately when the scan session ends or is cancelled.
- What we do NOT do with face data: we do not use it for authentication, unlocking the app, checking in, identifying you across sessions, targeting content, profiling, or any purpose other than distinguishing your photos during the bulk scan. It is never sold, never shared with any third party for advertising or profiling, and never used to train any ML model, ours, Anthropic's, Replicate's, or anyone else's.
- Third parties: face data is not sent to Anthropic (Claude), Replicate, or any other AI provider. It stays either on your device (as embeddings) or in our own Firebase infrastructure (as the temporary reference blob, deleted within 24h).
- How to opt out: the entire bulk photo scan feature is optional. If you skip enrollment, the app still works. You just can't use the bulk photo library scan. You can delete your face reference at any time by deleting your account (which triggers the server-side cleanup) or by clearing the app's data on your device.
- Retention: face embeddings stored in your device's iOS Keychain remain until you delete the app or your account. Temporary cloud reference blobs are deleted within 24 hours or immediately when the scan ends. See section 10.
Profile and measurements
- Your gender, birthday, height, weight, body measurements (chest/bust, waist, hips, inseam, sleeve, neck), body type, fit preferences, and style preferences. These are used by the AI features to generate better outfit suggestions, and are stored locally in your device's preferences. They are not synced to our servers.
Friends and shared items
- The friend codes, user IDs, names, and emails of people you choose to add as friends.
- Items you specifically mark as "Share" (these sync to your account on our servers so friends can see them) , items you don't mark as shared stay only on your device.
- Friend group membership and per-member permission settings.
Calendar events shared with friends
- Calendar events that you share with friends are uploaded to your account on our servers. Sensitive fields (title, venue, outfit plan, weather) are end-to-end encrypted using a key generated on your device and stored in your iOS Keychain. We cannot read these fields. The encrypted blob, the recipient list, the event date, and your user ID are visible to the server because they're needed to deliver the event to your friends.
Permissions you grant
- Camera and photo library: to capture or import clothing photos. Photos stay on your device unless you mark an item as shared.
- Notifications: to send outfit-of-the-day reminders and to deliver friend-related push notifications. We store the device push token associated with your account; it is used only for sending notifications to you.
- Location (optional): only used briefly when you select a venue or storage location, or when a feature needs nearby weather. We do not store ongoing location traces.
- Contacts (optional): only if you tap "Find friends from contacts." We read names and emails to suggest matches and do not upload your address book to our servers.
- Microphone: not used.
What we explicitly do not collect
- We do not run any analytics or behavioral telemetry.
- We do not include advertising SDKs or any tracking pixels.
- We do not collect device identifiers like IDFA.
- We do not record screens or interactions.
3. How we use it
We use the data above only to operate the features you've chosen, specifically:
- Storing and displaying your closet, outfits, calendar, trips, and wishlist.
- Authenticating you when you sign in.
- Letting you sync data between your devices and share specific items with friends you've added.
- Running the AI features when you tap them (photo analysis, outfit suggestions, "Prettify," tag/barcode scanning) , see section 5.
- Sending you outfit-of-the-day reminders and friend-related notifications you've opted into.
- Improving reliability of the app by fixing crashes you report through the in-app feedback button.
We do not use your wardrobe content for advertising, model training, or any commercial purpose other than delivering the app's features.
4. Third-party services
Virtual Closet uses the following service providers as data processors. We share with them only what each service strictly needs to function. Each operates under its own privacy policy.
| Service | What it does | What it receives |
|---|---|---|
| Google / Firebase | Authentication, database, file storage, push notifications, hosting | Email, user ID, push token, items you mark as shared, encrypted calendar events, friend lists |
| Anthropic | Claude AI (photo analysis, outfit generation, tag/barcode interpretation) | Item photos and the prompt for the specific request you triggered |
| Replicate | "Prettify" image enhancement and optional virtual try-on | The clothing photo you tapped Prettify on, or the try-on photo |
| Open-Meteo | Weather data for outfit and event context | Approximate latitude/longitude (no identifier) |
| Google Places | Venue and storage-location search | Your search query and approximate location |
| SerpAPI (optional, off by default) | Shopping result lookup if you opt in | The search terms you entered |
Links to provider policies: Google · Anthropic · Replicate · Open-Meteo · SerpAPI.
4a. Cloud scan pipeline (optional beta)
Inside the photo-import flow (where you build your closet from photos in your library), you can optionally enable a cloud scan pipeline in Profile → Cloud scan pipeline. When on:
- Each photo crop is encrypted on your device with a fresh AES-256 key generated per photo before it leaves your phone.
- The encrypted blob is uploaded to a temporary location in Firebase Storage that only your account can access.
- A Cloud Function decrypts the blob in memory (never to disk), passes the plaintext crop to Claude Haiku (Anthropic), returns the structured analysis to your phone, and deletes the encrypted blob within seconds.
- The encryption key is sent to the Cloud Function over TLS, used once, and never persisted on our infrastructure.
This shifts AI compute off your phone (battery savings) and centralizes prompt iteration (faster detection improvements). The data that leaves your device is the same as in the on-device path , your photo, sent to Anthropic for analysis. The only difference is a thin Cloud Function in between that decrypts and forwards. You can disable this at any time and the app falls back to on-device processing.
Telemetry (also optional)
When the cloud scan pipeline is on, you can additionally choose to share detection telemetry: structured decision logs from each scan (no photos) that we use to refine the AI prompts over time. With "Include full Claude responses" enabled, per-photo raw JSON responses are also stored. With "Disputed-case crops" enabled, a small (~50KB) sample of crops where our internal Phase 4 and Phase 6 checks disagree may be retained, encrypted with your private key so neither we nor any third party can read them. All three toggles are off by default and can be turned off independently.
5. AI processing
Your permission comes first. Before any data is sent to a third-party AI provider, the app shows you an in-app disclosure explaining exactly what will be sent (the photo or item details for your specific request) and who will receive it (Anthropic or Replicate), and asks for your explicit permission. No data is sent to an AI provider until you grant it. You can review or withdraw this permission at any time in Profile → AI features; with it off, no data goes to any AI provider and you can still add and manage items manually.
When you use a feature powered by AI, your photo and a structured prompt are sent to the relevant provider over an encrypted (HTTPS) connection. The AI returns a response , for example, a structured description of clothing items, a generated outfit suggestion, or a "prettified" version of your photo. The result is saved to your closet on your device.
We rely on the providers' contractual commitments not to use customer inputs to train their general-purpose models. Specifically:
- Anthropic (Claude): per Anthropic's commercial terms, inputs and outputs are not used to train models.
- Replicate: per Replicate's terms, inputs are processed only to produce the requested output.
Both providers process your data as service providers under their commercial terms, which provide protections for your data consistent with those described in this policy: encryption in transit, no use of your inputs or outputs for model training, no sale of your data, and limited retention (see section 10).
If you do not want a particular item processed by AI, do not use the AI features on that item , you can still add and manage items manually.
6. Sharing with friends
When you tap "Share" on a clothing item, that item's photo and metadata are uploaded to your account in Firebase Storage and Firestore, and the friends you've granted access can view it. You can unshare an item at any time, which removes it from the server. Items you have not marked as shared never leave your device.
When you share a calendar event with friends or a group, the event is uploaded to your account but its sensitive fields are encrypted on your device with a key only your friends' devices can derive. We can see that an event exists and who it is shared with, but we cannot read its contents.
7. Safety and moderation
Because Virtual Closet lets you share items and calendar events with other users, it includes tools to keep that experience safe.
- Block and unfriend: You can unfriend or block another user at any time. A blocked user can no longer see items you share with them, appear in your friend suggestions, or send you friend requests.
- Report: If you report a user for violating our policies, we record the reporting user, the reported user, the reason you provide (if any), and the timestamp. Reports trigger an automated server-side review process with a 24-hour response commitment for objectionable-content reports. The report is logged for investigation and is not visible to the reported user.
- Account deletion: You can permanently delete your account and all server-side data at any time from Profile → your avatar → “Delete Account” (see section 11).
We retain safety reports only as long as needed to investigate and resolve a valid concern, and we use them solely for abuse prevention, never for advertising or any unrelated purpose.
8. Gmail and contacts (limited use)
If you enable the optional Gmail import feature, the app uses Google's Gmail API to read messages that look like clothing receipts so it can create wishlist or closet items for you. If you enable contact-based friend discovery, the app reads your device contacts to suggest people you might know on Virtual Closet.
Google Limited Use disclosure. Virtual Closet's use of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements. We do not use Gmail or Contacts data for advertising; we do not share it with third parties for advertising; we do not allow humans to read it except as needed for security, debugging with your consent, or where required by law; and we do not use it to train generalized AI/ML models.
Both Gmail import and contact-based discovery are opt-in. You can revoke access at any time at myaccount.google.com/permissions or by signing out and removing access in iOS Settings.
9. Where your data lives
- On your device: The bulk of your closet , items not marked as shared, your style profile, your local outfit logs, lives in encrypted iOS storage (Hive boxes inside the app sandbox). Calendar event encryption keys live in your iOS Keychain.
- Secure cloud backup: If you leave cloud backup enabled (it is on by default and toggleable in Profile → Cloud backup), every clothing item, outfit, calendar event, wishlist item, and trip you create is uploaded to your private Firebase backup. Your closet data is encrypted in transit (HTTPS) and at rest in our secure cloud (Firebase), and access is gated by Firebase Authentication. Only you, signed in to your account, can read it. This is what lets you restore your whole closet on any device just by signing in. (Photos you share with friends in groups continue to use end-to-end encryption. See the sharing details above.) If you disable backup, you can keep what's already there or delete it from the cloud entirely with a single tap.
- On Firebase (Google Cloud): Account info, items you've marked shared (encrypted end-to-end for shared groups), friend relationships, push tokens, and shared/encrypted calendar events. Firebase data is hosted on Google Cloud servers, protected by TLS in transit and encryption at rest, and governed by Google's privacy commitments.
- At AI providers: Only the photo plus prompt for a specific request, processed and returned in real time. We do not maintain a long-term store at these providers.
10. How long we keep it
- Data on your device is kept until you delete the item, the app, or your account.
- Synced data on Firebase is kept while your account is active. If you delete your account from inside the app, all your server-side data (auth record, items, outfits, calendar events, friend records you authored, push tokens) is removed within 30 days.
- AI providers process requests transiently. Anthropic and Replicate may retain logs for a limited period (typically 30 days) for abuse prevention and debugging, governed by their own policies.
- Backups, including database snapshots, may persist for up to 90 days after deletion as a routine disaster-recovery measure, after which they roll off.
11. Your rights and controls
- Access: You can view all your data inside the app. To request a machine-readable export, email support@getvirtualcloset.com from your account address.
- Delete an item: Use the delete action in the item details screen.
- Stop sharing: Toggle "Share" off on any item or remove a friend from a calendar event.
- Turn AI features on or off: Profile → AI features. Off means no data is sent to any AI provider.
- Turn off cloud backup: Profile → Cloud backup → toggle off. You can keep the existing cloud copy or delete it from the cloud entirely.
- Restore from cloud backup: Profile → Cloud backup → "Restore now." Useful after reinstalling the app or switching phones.
- Delete your account: In the app, open the Profile tab, tap your avatar in the top corner, and choose "Delete Account." This removes all server-side data tied to your account, including any encrypted cloud backup. The action is permanent.
- Revoke notifications: Disable in iOS Settings → Notifications → Virtual Closet.
- Revoke Google access: at myaccount.google.com/permissions.
- Object, restrict, or correct: email support@getvirtualcloset.com with your request.
12. Children
Virtual Closet is not directed to children under 13, and we do not knowingly collect personal information from children under 13. If you believe a child has provided us information, please contact us and we will delete it.
13. California residents (CCPA / CPRA)
If you are a California resident, you have the right to know what personal information we collect about you, to request deletion of that information, to correct inaccurate information, and to opt out of any "sale" or "sharing" of personal information. We do not sell or share personal information for cross-context behavioral advertising. To exercise your rights, email support@getvirtualcloset.com from your account address. We do not discriminate against users who exercise these rights.
14. European residents (GDPR / UK GDPR)
If you are in the European Economic Area, the United Kingdom, or Switzerland, the legal bases for processing your personal data are: (i) contract (providing the app you signed up for); (ii) consent (for optional features you opt into, including notifications, Gmail import, and contact discovery); and (iii) legitimate interests (security, abuse prevention, and supporting users who reach out). Consent also covers AI processing: no data is sent to an AI provider until you grant permission in the app. You may withdraw consent at any time by disabling the relevant feature (including in Profile → AI features) or deleting your account.
You have the right to access, rectify, port, restrict, and erase your personal data, and to object to processing. You also have the right to lodge a complaint with your local supervisory authority.
If you are in the EEA/UK/Switzerland, your data may be transferred to and processed in the United States. We rely on the providers' Standard Contractual Clauses for these transfers.
15. Changes to this policy
If we make material changes to this policy, we will update the effective date above and, where appropriate, notify you in the app or by email. Continued use of Virtual Closet after a change indicates acceptance.
16. Contact
Privacy questions, requests, or concerns: