Privacy Policy
Last updated: September 9, 2026
Introduction
Dresser ("the app," "we," "us") is a virtual wardrobe and AI stylist app for iOS. This policy explains what information the app collects, how it is used, who it may be shared with, and the choices you have.
Please read this before you continue. Dresser is built local-first — your closet lives on your device first, full stop — but the app relies on cloud services to work, and your information, including in some cases photos and data about your wardrobe, may be processed by, or transferred to, third-party service providers as part of how those features work. At minimum, this currently includes Firebase and Google (analytics, crash reporting, AI processing, and — only if you choose to sign in with Apple — your account and wardrobe sync) and Apple (weather, platform services, and Sign in with Apple); see "Information We Send To Service Providers" and "Accounts and Sync" below for exactly what each one does and does not receive. We may engage other processors over time — this document will always be kept current to describe what is actually true of the version you are using. By continuing to use Dresser, you agree to this Privacy Policy. Where the law that applies to you requires your separate, explicit consent for a specific kind of processing, we will ask for it distinctly — continuing to use the app is not treated as that consent in those cases.
Where Your Information Is Stored Today
- Your closet. Photos of your clothing items, the attributes you or the app assign to them (category, color, season, style), your saved outfits ("looks"), your wear history, any style preferences you choose to set on "My Style" (preferred styles, colors or categories you'd rather avoid, comfort notes), and short notes the stylist records from a conversation (e.g. a stated preference, constraint, or a dated event you mentioned), shown on "My Style" where you can delete any of them at any time, are stored on your device, using Apple's SwiftData framework — true for every user, signed in or not. If you choose to sign in with Apple, this same data is also synced to our servers so it can follow you to a new device; see "Accounts and Sync" below for exactly what that involves and how to remove it. Specific features send limited, purpose-built data to the service providers listed below to work, as described in this document.
- Background removal. When you photograph an item, the app removes its background on-device using Apple's Vision framework, as the first processing step before anything about that photo is sent anywhere else.
- App preferences. Your haptics, appearance (light/dark/system) and analytics preferences are stored locally on your device and are never transmitted anywhere — these are device settings, not part of your wardrobe data.
Information We Send To Service Providers
Dresser uses the following third-party services, each for a specific, limited purpose:
Firebase Analytics (Google)
We use Firebase Analytics to understand how the app is used in aggregate — for example, which screens are opened and how often a feature is used — so we can improve the app. Analytics events never include your photos, item names, notes, or any other content you entered; they carry only anonymous, aggregate usage signals (for example, "the Closet tab was opened"). The app links Firebase Analytics without advertising-identifier support, and no advertising identifier (IDFA) is ever collected. You can turn this off at any time in Settings → Privacy → Usage Analytics; the app defaults to sharing this data, consistent with how most usage-analytics tools work, but the choice is always yours.
If you installed the app after tapping an Apple Search Ads result, a small number of these analytics events (first-run setup and subscription/purchase events only) may additionally carry Apple's own campaign and ad-group identifiers for that install — Apple's standard install-attribution mechanism, which tells us which of our own ad campaigns brought you to the app. This uses a separate, short-lived token from Apple ("AdServices"), never the advertising identifier (IDFA) named above, and Apple does not require a tracking permission prompt for it.
Firebase Crashlytics (Google)
We use Firebase Crashlytics to receive automatic crash reports if the app unexpectedly stops working during a session. A crash report may include technical details such as which line of code was running, your device model, and OS version — never your photos or closet content. Crash reporting cannot be turned off in the app, because it is safety and reliability telemetry that benefits every user of a young app, including the person whose crash it reports — turning it off would only reduce our ability to find and fix the very bug that affected them.
Firebase App Check
Firebase App Check verifies that requests to our backend genuinely come from an unmodified copy of the Dresser app, protecting our AI usage allowances from abuse. It does not collect any information about you personally — it verifies the app, not the user.
Google Gemini, via Firebase AI Logic
When you photograph or edit a clothing item, a description of that item's attributes (not the raw photo) may be sent to Google's Gemini model to suggest a category, color, season and style tags. When you use the AI stylist chat, your questions and a description of the relevant items in your closet are sent to Gemini to generate a styling answer. Your original photos are never sent to Gemini for attribute suggestions or chat — background removal always happens on-device first, and only the already-processed, backgroundless image data needed for attribute suggestions is sent when tagging a new item. Your chat conversations are saved on your device so you can pick up where you left off, and stay there between app sessions until you delete a conversation, clear your whole chat history, or delete the app — opening or reading a past conversation never sends anything to Gemini. The stylist may also record a short, structured note about a preference, constraint, or dated event you state in conversation, so it can remember it in later conversations — never a raw quote or the surrounding conversation, only a short factual note. These notes are shown on "My Style," where you can delete any of them at any time; deleting is permanent. If the stylist recommends a purchase and you tap the "Find in shops" card that appears, the app opens an in-app web browser to a Google search for that item near you — that search page is Google's own and is governed by Google's privacy policy, not ours.
Studio photo generation. If you tap to generate a studio-style product photo of an item — or, for the very first item you confirm during onboarding, when the app generates one automatically as part of introducing this feature — the item's cutout photo (or, if no cutout exists yet, the original photo) is sent to Google's Gemini image model, which returns a new, AI-generated photo of that item on a clean studio background. This is the one feature where an image itself, not just a description of it, leaves your device, and only the item you are generating a photo for is ever sent. On the paid API tier used for this feature, your content is not used to improve Google's products; Google retains the image and the generated result for up to 55 days solely to monitor for violations of its Prohibited Use Policy, reviewed only by authorized Google staff, and then deletes it. Every generated image carries an invisible, Google-embedded provenance watermark (SynthID) that has no effect on how the photo looks. A studio photo is an AI-stylized derivative of your garment and may not exactly reproduce every detail — such as a logo, wordmark, or repeating pattern — so the app always keeps your original photo and cutout too, and clearly labels the studio photo as generated.
Apple WeatherKit
To suggest outfits appropriate for today's weather, the app requests your device's approximate (city-level) location, with your permission, and uses it to fetch the local weather forecast from Apple's WeatherKit service. Precise location is never requested. You can review or revoke this permission at any time in Settings → Privacy → Permissions, or directly in iOS Settings.
Apple StoreKit (Purchases and Subscriptions)
When you view products, buy or restore a subscription or credit pack, or when Apple updates a purchase, Dresser uses StoreKit to receive the product identifier, transaction identifier, purchase and expiration dates, revocation or refund status, trial/offer eligibility, storefront, and verified entitlement state needed to deliver and reconcile the purchase. Dresser stores the minimum local entitlement and credit ledger needed to prevent duplicate grants and show your current access, kept on this device only — subscription entitlement and credit balance are deliberately not part of the wardrobe sync described in "Accounts and Sync" below.
Apple processes the purchase and payment method under your Apple Account and Apple's own privacy terms. Dresser never receives your full payment-card number or security code. We do not put transaction IDs, receipts, localized StoreKit errors, or payment details into analytics; monetization analytics uses only the non-sensitive product ID, paywall source, stable outcome category, and credit amount granted.
What We Don't Do
- We do not sell your data to anyone, for any reason.
- We do not use your data for advertising, and we do not collect an advertising identifier (IDFA). Apple's own install-attribution signal, described above, is a separate mechanism that only tells us which of our own ad campaigns led to an install — it identifies no one and builds no profile.
- We do not build a cross-app tracking profile of you.
- We do not share your photos or closet content with any third party except as described above, and only the minimum data needed for that specific feature to work.
Your Choices
- Analytics: turn off usage-analytics sharing at any time in Settings → Privacy → Usage Analytics.
- Camera and Location: review or change these permissions at any time in Settings → Privacy → Permissions, which links directly to the relevant iOS Settings page.
- Language: the app follows the language you have chosen for it in iOS Settings.
- Your data stays yours: deleting the app deletes your closet data from this device. (A data-export feature is planned for a future update.) If you have ever signed in with Apple, deleting the app does not delete the copy already synced to our servers — use Delete Account in Settings → Account (see "Accounts and Sync" below) to remove that too.
Accounts and Sync
Dresser offers an optional account, so your closet can follow you to a new device. Whether you ever use it is entirely your choice, and it changes nothing about how the app behaves if you don't.
- No sign-in, nothing leaves your device. The first time you open the app, it silently creates a technical, anonymous account for you in the background — no screen, no personal information involved, and no data leaves your device because of it. If you never sign in, your closet stays exactly where it always has: only on your device, exactly as described above.
- Sign in with Apple, and syncing starts automatically. From Settings → Account, you can sign in with your Apple ID at any time. This turns the anonymous account into a permanent one and immediately starts syncing your wardrobe in the background — your items and their attributes, your saved looks, your wear history, the style preferences you set on "My Style" (e.g. preferred styles, colors or categories you'd rather avoid, comfort notes), any notes the stylist has recorded from conversation, and the item/look photos themselves — to Google Firebase (Cloud Firestore for your data, Cloud Storage for your photos, hosted in the
us-central1region), kept in a private area of the database that only your own signed-in account can ever read or write, never visible to any other user. Signing out stops syncing immediately: every SwiftData row and photo already on your device stays exactly as it is, and new edits simply stop leaving the device until you sign in again — the same local-first guarantee this document opens with. - What we receive from Apple when you sign in. A stable identifier for your Apple ID, and — typically only the very first time you ever authorize Dresser — your name and/or email, exactly as much as you chose to share on Apple's own sign-in screen (an Apple-generated private-relay address counts as "shared" if you picked "Hide My Email"). This account record is held in Firebase Authentication, part of the same Firebase/Google service already disclosed above; the app itself stores only a short line in Settings → Account (your email, or "Signed in with Apple" if none was shared) on your device, for your own reference — it is never written into our database. To let us revoke this app's Apple sign-in authorization later if you delete your account, we also ask Apple for, and store, a refresh token in a database location the app itself can never read back — used for that one purpose only.
- Delete Account removes your server-held copies for good. Settings → Account → Delete Account permanently purges every synced item, look, wear-history entry, and photo tied to your account, revokes this app's Sign in with Apple authorization with Apple, and deletes the account record itself. It does not touch your local, on-device closet — you keep using the app exactly as you do now, from a fresh anonymous session, exactly as if you had never signed in. Because this cannot be undone, if you signed in more than five minutes ago the app asks you to sign in with Apple again first, to confirm it's really you. A brief internal record of what was deleted may remain for up to 30 days (so any other device you own can catch up before it's gone), then it is permanently and automatically erased.
- Deleting the app is not the same as deleting your account. If you have ever signed in, deleting Dresser from your device removes your local closet, exactly as the "Your data stays yours" bullet above says — but it does not touch the copy already synced to our servers. That copy stays until you use Delete Account above, which is exactly what lets your closet come back if you reinstall the app or set up a new device.
Children's Privacy
Dresser is not directed at children under 13, and we do not knowingly collect personal information from children under 13.
Changes to This Policy
If we change what data the app collects or how it is used, we will update this document and its "Last updated" date. For a material change, we will also ask you to review and accept the updated policy the next time you open the app — the same one-time agreement screen you saw when you first used Dresser.
Contact Us
Questions about this policy can be sent to the support address listed in the app's Settings → Support → Contact Support.