What Should I Wear Today
Privacy Policy
This policy explains what the What Should I Wear Today app (“the app”, “we”) collects, why, who else processes it, how long it is kept, and how to delete it. The app is operated by RuiCodex. Questions: info@ruicodex.com.
In short: we use your data to run your digital wardrobe and suggest outfits. We do not show ads, do not sell or rent your data, and do not use advertising or cross-app tracking tools. Usage analytics are optional, off until you allow them, and run on servers we operate ourselves; crash reports follow the same choice and are processed for us by Sentry in the EU.
What we collect
Information you give us
- Account details: email address, first and last name, password (stored only as a salted hash), gender, and optionally your birth year (worked out from the age you select) and country.
- Style profile: your survey answers — age group, preferred style, favourite colours, clothing size, favourite tops and bottoms, dress and outerwear preferences, fit, the occasions you shop for and how often you shop.
- Notification settings: whether daily outfit reminders, event reminders and app-update notices are on, and your preferred reminder time. Reminders are scheduled on your device; we do not collect a push-notification token.
- Wardrobe photos: the pictures of clothing you upload, and the background-removed versions we create from them.
- Outfits and plans: outfits you save (name, optional description and the items in them) and events you add in the app (title, type, date and any outfit you assign). The app does not read your device calendar.
- Feedback: which outfit suggestions you like or pass on, with the weather they were made for.
- Profile photo, if you add one.
Information created when you use the app
- AI-derived wardrobe data: descriptions, categories, colours, seasons, occasions and tags generated from your clothing photos, and the processing status of each upload.
- Purchases and credits: records of in-app purchases and subscriptions (store, product, order and transaction identifiers, the store’s purchase token, dates, status and expiry), your credit balance, and a ledger of credits granted, spent, refunded and forfeited.
- Usage records: daily counts of uploads and AI requests for your account, and for each AI request the model used, the amount of text processed (tokens), how long it took and whether it succeeded. We use these to bill credits accurately and keep the service running.
- Technical logs: our servers keep operational logs, which can include IP addresses, internal account numbers and error details, for security and troubleshooting.
Usage analytics (only if you allow it)
The app asks once, after you sign in (or on the sign-up form), whether you want to share usage data. Until you answer “Allow”, nothing is sent. If you allow it, we record:
- which parts of the app you use: app opened and closed with time spent, sign-up and sign-in, finishing the style survey, how many screens you opened, uploads started and completed, recommendations requested and whether the AI or the fallback answered, outfits and events saved, feedback given, the paywall and credit screens being shown, and purchases started with their outcome;
- purchases the store has confirmed, and refunds or expiries the store reports (product and store, never payment details);
- crash and error reports (error type and where in the app it happened), if error reporting is switched on;
- crash and freeze reports from the app (error type, the places in the app’s code where it happened, the app version, and technical device information: device model and manufacturer, operating system and version, memory and storage, battery state, network type, language, time zone and a random installation identifier), sent to Sentry (see “Who processes your data”). Web addresses, identifiers and email addresses are removed from error messages on your device before a report is sent; reports never contain photos, request contents, screenshots or your IP address;
- device and app details that come with each event: device model, operating system and version, app version, and an approximate country derived from your IP address.
These records are stored under a random identifier created for analytics only. They never include your name, email address, photos, item descriptions or anything you type. We do not record your screen. You can switch this off at any time in Settings → Usage Analytics, which stops it immediately.
Live updates
While a photo you uploaded is being analysed, the app keeps a connection open to our live-update server so the item appears as soon as it is ready. The server only tells the app “something changed”: it holds a counter under an identifier that cannot be traced back to you, and no photos, descriptions or account details.
Location
With your permission, the app reads your device’s location when it needs the local weather for a recommendation. The coordinates are sent to our server only so it can look up the weather with OpenWeatherMap. They are not saved to your account; the server keeps the weather for a rounded location in memory for a short time so that repeated requests do not trigger new lookups. If you decline location access, the app uses a default location.
How we use it
- To create and secure your account and sign you in.
- To digitise your wardrobe: remove photo backgrounds, and describe and categorise each item.
- To suggest outfits for the weather, your style preferences, your planned events and your past feedback.
- To verify purchases, grant and track credits and subscriptions, and handle refunds.
- To operate, secure and troubleshoot the service, and to check that the credit price of each AI feature covers what it costs us.
- If you allow usage analytics: to understand which features are used, where people get stuck, and which errors to fix first.
We do not use your data for advertising and we do not sell it.
Who processes your data
- Our own servers store your account and wardrobe data and run the app’s backend. Photo background removal runs on these servers; no third party receives your photos for that step. The usage analytics service (PostHog) and the live-update service (Appwrite) are self-hosted on servers we operate, not provided as a third-party cloud service.
- Anthropic (Claude API) receives each clothing photo you upload so it can describe and tag the item. It also receives the text of each outfit-recommendation request: the weather, your style preferences (such as preferred style, colours, fit, age group and occasions), the titles and types of events planned for the day, any event description you type, and descriptions of your wardrobe items and of outfits you recently passed on. Your name, email address and profile photo are not sent. Anthropic processes this content under its commercial API terms in order to provide the service to us, and does not use it to train its models.
- Runware (running a Google image model) receives the photos of the garments in an outfit only when you ask to see that outfit on a model, so that the Google image model it runs can draw that one picture. Nothing else is sent to it: not your name, email address, profile photo or any other photo.
- OpenWeatherMap receives location coordinates and returns the weather. It receives no account information.
- Sentry (Functional Software, Inc.) receives the crash and freeze reports described under “Usage analytics”, only if you allow usage analytics, and processes them on our behalf as a data processor in its EU data region (Germany). Reports are not linked to your account and are deleted automatically after 90 days.
- Apple (App Store) and Google (Google Play) process your payments. We send them the purchase identifiers the app receives from them to verify each purchase, and they notify us of renewals, cancellations and refunds. We never see your card or other payment details.
We may also disclose information where the law requires it, or to protect the rights, safety and security of our users and the service.
How long we keep it
We keep your data for as long as your account exists. Technical logs are kept for up to 30 days, and crash reports at Sentry for up to 90 days.
When you delete your account, the following is deleted straight away:
- all wardrobe items, including items you had already removed, with their photos, background-removed images and AI-generated descriptions and tags;
- your outfits, planned events and outfit feedback;
- your style profile, survey answers and notification settings;
- your daily usage counts and any photo processing still waiting in the queue;
- your profile photo, name, email address, gender, birth year, country and password.
The following is kept, because store refunds, tax and accounting require it. It stays linked only to an anonymous internal account number, not to your name or email address:
- purchase and subscription records, including the store identifiers for them;
- the credit ledger and subscription credit-allowance records. Any unused credits are forfeited and your balance is set to zero.
Records of individual AI requests (model, token counts, timing) are kept for cost accounting with the link to your account removed.
If you allowed usage analytics, your analytics profile and every event recorded under it are deleted too.
Deleting your account does not cancel a subscription. Subscriptions are billed by Apple or Google; cancel them in your App Store or Google Play subscription settings.
Your choices and rights
- Access and correction: you can view and edit your profile, preferences, wardrobe, outfits and events in the app.
- Deletion: delete individual items in the app, or your whole account — see how to delete your account.
- Location: you can deny or withdraw location permission in your device settings at any time.
- Usage analytics: off unless you allow it; switch it on or off at any time in Settings → Usage Analytics.
- Other requests: depending on where you live, you may have further rights, such as to receive a copy of your data or to object to certain processing. Email info@ruicodex.com and we will respond within the time the law requires.
Security
Data travels over encrypted connections (HTTPS). Passwords are stored only as salted hashes, and every request for your data must carry a signed sign-in token. No method of storage or transmission is completely secure, but we work to protect your information.
Children
The app is not directed at children under 13, and registration requires an age of at least 13. If you believe a child under 13 has given us personal information, contact us and we will delete it.
Changes to this policy
If we change this policy we will update the effective date above, and tell you in the app when a change materially affects how your data is used.
Contact
RuiCodex · info@ruicodex.com
