Privacy Policy
Costori is a personal cosplay planner. Your ideas, checklists, and progress photos are yours, and we built the app so they stay that way. This policy explains, in plain words, what data Costori handles and why.
1. Who we are
“Costori” (“we”, “us”) means the Costori mobile app and the Costori website, including its waitlist and public portfolio pages. When we say “the service”, we mean both. Costori is an independent, solo-built product.
2. What we collect
- Account data. Your email address and password. Authentication is handled by Supabase Auth. Your password is stored only in hashed form and we never see it in plaintext. If you use Sign in with Apple or Google, we receive the identifier (and email, where the provider shares it) needed to create and recognise your account.
- Profile data. Your display name, your profile photo if you add one, the social links you add, and your preferences: currency, theme, and language.
- Your content. Everything you create in the app: cosplays, tasks and checklists, notes, reference images and links, progress and wear photos, shopping items, and events.
- Tori conversations. If you chat with Tori, your questions and her answers, stored with the cosplay they belong to. See “Tori and Google Gemini”.
- Tori usage. A count of the times you used Tori, so we can apply the free limits, and how much processing each request took, so we can keep Tori running within budget. This never includes what you asked, Tori’s answers or your images. If you delete your account, the count is deleted with it, and the processing figures are kept without any link to you. Older usage records from earlier versions of the app are kept but no longer used.
- Subscription status. If you subscribe to Costori Pro, we store whether Pro is active, until when, which plan you have, and the latest subscription event (such as a renewal or cancellation), so the app and our servers know which features to unlock. We never receive your card or payment details.
- Feedback. Messages you choose to send us through the in-app feedback form or the website’s contact form, together with the email address you enter there so we can reply.
- Waitlist email. If you join the waitlist on the website, we store the email address you submit (with your chosen language) so we can invite you.
- Usage data. Basic product-analytics events in the app and on our website, such as opening the app, completing onboarding, creating a cosplay, reaching a free limit, starting a subscription, or tapping a download button on the site. In the app they are pseudonymous, linked only to a random account identifier, never your name or email. On the website they carry no persistent identifier, and nothing is stored on your device. We use these to understand how Costori is used and to improve it. See “Where your data lives” for the provider.
The website stores your theme and language choice in your browser’s local storage. Our free tools (such as the cosplay budget calculator and the con packing checklist) also save what you enter there, so your list is still there when you come back. That data stays on your device. It is not a tracking cookie and is never sent to us.
3. Tori and Google Gemini
Tori is strictly opt-in. Nothing is sent to Google Gemini unless you have switched on Tori in Tori & Privacy and asked her for something yourself.
- Reference breakdown. When you ask Tori to break down a reference, the photo you chose, plus the cosplay’s name and series, is sent through our server to Google’s Gemini API to draft checklist and shopping suggestions. Your saved measurements are sent too, but only if you turn them on in Tori & Privacy.
- Chat. When you send Tori a question, our server sends Gemini your question, a summary of that cosplay (its name, series, status and notes, your checklist and what is done, the names on your shopping list, the event you are getting ready for and how close it is, and the skills you said you work in), and the last few messages of that conversation. Up to four of that cosplay’s reference images and your saved measurements are sent only if you turn them on in Tori & Privacy. Your cover, progress and wear photos are never sent.
- Gemini uses this only to answer you. Costori uses Gemini through a paid plan, so under Google’s terms this data is not used to train or improve Google’s models. Google keeps a log for a limited time only to detect misuse of its service.
- Your conversations are stored in Costori, with the cosplay they belong to, so you can come back to them. They stay until you clear them. You can clear a conversation from its menu at any time, and it is also deleted when you delete that cosplay or your account.
- You can turn Tori off at any time in Tori & Privacy.
4. Public portfolio pages
You can choose to publish a public portfolio page at costori.app/cosplayer/<your handle>. It is off by default, and nothing becomes public unless you switch it on.
- Only what you choose is public. The page shows your display name, your handle, your profile photo if you have one, the bio you write, your social links (with Costori Pro), and the cosplays you pick, each with its name, series, status, and cover photo. For each cosplay you decide whether to include its checklist, progress photos, wear photos, and story. Your shopping lists, prices, private notes, references, events, and measurements are never shown. You can unpublish a cosplay or switch the whole page off at any time.
- Anyone with the link can see it. Search engines can find and show your page unless you turn on “Hide from search engines” in the app. After you change or remove something, it can take a few minutes for the page to update.
- View counts. We count views as one number per day for your page and for each published cosplay. We store no information about who viewed it: no IP address, no identifier, and no location. The counts are shown to you with Costori Pro.
- Page analytics. Portfolio pages send a few anonymous events to PostHog (for example, that a portfolio page was viewed, which theme it uses, or that someone tapped the Costori badge or opened the report form). Your handle and the page address are removed before anything is sent, so these events can’t be tied to your page. There are no cookies, nothing is stored on the visitor’s device, and there is no session recording on portfolio pages.
- Reporting a page. Anyone can report a portfolio page through the “Report this page” form. The form is protected by Cloudflare Turnstile, a bot check that may process technical information about the reporter’s browser. A report stores the reason given and, only if the reporter chooses to add one, an email address so we can reply. Reports are relayed to the team via Telegram without that email address.
- Portfolio pages are served by Vercel, like the rest of the website. Deleting your account removes your portfolio page along with the rest of your data.
5. Costori Pro and payments
- Apple and Google handle payment. When you subscribe, the purchase goes through the App Store or Google Play. They process your payment details under their own privacy policies; we never see them.
- RevenueCat manages subscription status. We use RevenueCat to confirm purchases with Apple or Google and keep track of whether your subscription is active. RevenueCat receives your purchase and subscription details (such as the plan, dates, and store transaction), linked to your random Costori account identifier, not your name or email. RevenueCat tells our server about changes such as renewals or cancellations, and we save the result as your subscription status (section 2).
- Subscription analytics. RevenueCat also sends subscription events (for example, a trial started or a subscription renewed) to our PostHog analytics, linked to the same random account identifier, so we can understand how Pro is used.
6. Calendar sync
Calendar sync is a Costori Pro feature on iPhone and Android. It is off until you turn it on, and it asks for permission to use your calendar first.
- Costori adds your events (and, if you choose, your cosplay deadlines) to a calendar on your device. On iPhone that is a new “Costori” calendar or one you pick. On Android there is no separate “Costori” calendar, so the entries go into a calendar you pick, such as your Google calendar. Costori keeps those entries up to date when you edit them in Costori.
- This happens entirely on your device. Costori does not send anything about your calendar to its servers.
- To find the entries it added, Costori reads the events in the calendar it uses (the one you picked, or the “Costori” calendar on iPhone), on your phone only. It never changes, stores or sends your other events.
- On Android, the notes of each entry Costori adds end with a short line: “Added by Costori” (in the app’s language) and a code. This line is how Costori recognizes its own entries, for example after you reinstall the app. The code does not include your name, email or event details. Costori rewrites the notes of its own entries when it updates them.
- If you pick a calendar that belongs to an online account (such as iCloud or Google), that provider syncs it under its own privacy policy, as it does with any calendar entry.
- You can turn calendar sync off at any time and choose to remove the Costori entries. Entries stay in your calendar if you sign out or delete your account, and you can remove them in your calendar app.
7. Where your data lives
Your account, content (including Tori conversations), images, and subscription status are stored with Supabase, hosted in the European Union (Stockholm, region eu-north-1). This covers the database, authentication, and image storage, all protected by per-user access controls. Your rows and files are only accessible to your account, except what you choose to publish on a public portfolio page (section 4). The website, including portfolio pages, is hosted on Vercel.
Product-analytics events are processed by PostHog on its European Union cloud. These events are pseudonymous, linked only to a random account identifier, and carry no additional personal data.
Our website (costori.app) uses the same PostHog service without cookies. Analytics store nothing on your device: no cookies, no local storage, and no lasting identifier, so each visit is counted separately. Your IP address is used only to derive an approximate location (country or city) and is then discarded; it is not stored with the visit and is not used to identify you. On our main pages we record page views, clicks, scrolling, and anonymised session replays in which every form field is masked. Text you type into the free tools is also left out of session replays. Portfolio pages send only the few anonymous events described in section 4. Website analytics are not linked to any app account.
8. Feedback relay
When you send feedback in the app or a message through the website’s contact form, the content of your message and the email address you entered are forwarded to the team via Telegram so we can read and reply quickly.
When you report something in the app, including one of Tori’s replies, we store the report and are notified via Telegram, so we can review the reported item and act on it.
9. What we don’t do
- No advertising.
- No selling or renting your data, ever.
- No advertising, ad-tracking, or cross-app tracking SDKs. Our only analytics is PostHog (EU): pseudonymous in the app, cookie-free and not linked to you on the website. See section 7.
We only share data with the service providers named in this policy (Supabase, Vercel, Cloudflare for the report form’s bot check, PostHog for product analytics, RevenueCat for subscription status, Apple or Google for payments and if you sign in with them, Google’s Gemini API when you opt in, and Telegram for feedback and report relay), and only to the extent needed to run the service.
10. Deleting your data
You can permanently delete your account at any time in the app: Profile → Account & security → Delete account. This removes your account, all of your content (including your Tori conversations), your stored images, your portfolio page, and your subscription status. Deleting your account does not cancel a Costori Pro subscription; please cancel it in your App Store or Google Play settings. If you can’t access the app, or want your waitlist email removed, contact us and we’ll take care of it.
11. Children
Costori is not directed at children under 13, and we do not knowingly collect data from them.
12. Changes to this policy
If we change this policy, we’ll update this page and its effective date. For meaningful changes, we’ll let you know in the app or by email.
13. Contact
Questions about your data? Write to us at costori.app@gmail.com. We read everything.