Privacy Policy
Last updated October 2026
What we collect and why
- Style profile — your color season, Kibbe type, essence, body shape, aesthetics, likes and dislikes, and occasion. Stored in your browser (localStorage) and, when you're signed in, with your account so it follows you to other devices. Otherwise it's only sent as the outfit description that asks the image generator for a picture.
- Email address — only if you sign in or buy images. Used to send your sign-in code, keep your account, and attach bought images to it.
- Name and birthday — only if you add them under Profile details. The name is shown to you in the account menu and used in your birthday email; the birthday gives you free images on it each year, with an email telling you they've arrived. Stored with your account. The name can be changed or removed any time; the birthday can't be changed once added (email us to remove it).
- Connection address (IP) — a keyed hash of it, used to enforce the free daily image limit and to rate-limit sign-in code requests. We store the hash, not the raw address, and only for 24 hours.
- Session cookie — a random token in an HttpOnly cookie so you stay signed in. Not readable by the page's own scripts.
- Sign-in codes — only a hash of each 6-digit code, kept 10 minutes.
- Outfit ratings — only for accounts invited to rate outfits. Each rating (the outfit's pieces, the style profile it was built for, and the answer) is stored with the account and used to improve how outfits are put together.
- Saved outfits and pieces — when you're signed in and press Save or the ♡ beside a piece: the outfit's pieces, styling rules and picture, or the piece's description and shopping link, stored with your account so you can come back to them. Remove them on the Saved page to delete them.
What we don't do
- No tracking, analytics, or advertising cookies.
- No sale or sharing of your email or activity with third parties for marketing.
- No storage of your card details — payments are handled entirely by Stripe.
Services we use
| Service | Used for | Data sent |
|---|---|---|
| Cloudflare | Hosting, the site's API, saved-outfit pictures | Request data to serve the site; pictures of outfits you save |
| Upstash | Daily limits, accounts, credits, style profiles, saved outfits and pieces, ratings | Hashed IP, hashed codes, user id, counters, signed-in style profile, saved outfits and pieces, outfit ratings |
| Resend | Sign-in code and birthday emails | Your email address, the code, and your name if you added one |
| Stripe | Payment for image packs | Email + order details; card only to Stripe |
| Pollinations | Generating outfit images | The outfit description (no identity) |
| GitHub | "Report a problem" issues | The reported outfit + note |
Retention
Sign-in sessions last 60 days. Daily image counters expire after 24 hours. Sign-in codes expire after 10 minutes. Your account (email, name and birthday if you added them, bought-image count, your style profile, saved outfits and pieces, and ratings if you rate outfits) is kept while you use the service; email us to delete it.
Your choices
Clearing this site's data in your browser removes the style profile saved there; a signed-in account keeps its copy until the account is deleted. To delete your account or ask a question, contact us by filing a report ("Report a problem" on any outfit card) or via the GitHub repository linked from it.
Changes
If we change this policy, the updated date above will change. Significant changes will be noted on the site.