Privacy policy
What we collect
Aimset keeps your shooting sessions on your device. By default, we upload:
- Account profile — username, display name, country (optional), avatar.
- Session metadata — date, target, firearm, hit positions, scores. This is what backs your personal history and any leaderboards you opt into.
- Detection stats — anonymized numbers from each detection (no images, no audio) plus the corrections you make when you use the review tool. We use this to improve the detection model so it works for more firearms, targets, and lighting.
When you first launch the app you choose, in plain language, whether to share detection stats. The default is on, but you can change it at any time from Settings → Data sharing.
A second tier — target images — is available as an opt-in only. When enabled, photos of the targets you've reviewed get uploaded encrypted on your device, over Wi-Fi only, to help train the next generation of detection. This tier is available from the same onboarding card and from settings.
How we use it
- Personalize your experience (history, analytics, leaderboards).
- Improve detection. Stats and images are used in aggregate to retrain the detection model; no individual session is surfaced anywhere.
- We do not sell data. We do not share it with advertisers. We do not use it for anything outside the product. Some features do need an outside service to work — those are listed below, and they only get what that feature needs.
Finding people
Aimset is a social product, so other people have to be able to find you. There are three ways, and they are not governed by the same switch.
- Your username — always findable, by anyone who types it exactly. That is what a username is for, and it has worked this way since usernames existed in the app.
- Your display name — a prefix search, from four characters up.
- Your email address — matched exactly, never a partial or “starts with” match.
The last two are controlled by one switch: Settings → Privacy → Findable by name and email. It starts on. Turning it off removes you from both immediately. Your username stays findable either way, and turning the switch off also deletes the email code described below.
We never receive an address that somebody searched for. Your phone turns it into a one-way code before it is sent, and the code is what travels. On our side we apply a second layer using a key that is not stored in our database, and it is those values that are compared — code against code. A match tells the searcher only that the exact address they already typed has an account, and shows that account's display name, username and avatar. No email address is ever returned by a search, to anyone.
Your contacts. If you ask the app to find friends from your contacts, it reads email addresses only — not names, not phone numbers, not anything else on the card — turns each one into the same one-way code on your phone, and sends the codes. Your address book is not uploaded, not stored, and not used to build a contact graph or a “people you may know” model. An address that has no Aimset account produces no match and no record of the person it belongs to. You can decline access, grant it for selected contacts only, or withdraw it at any time in your phone's settings; the rest of the app is unaffected either way.
The one thing we do keep, and why. For 30 days we keep a shortened (64-bit), keyed form of each distinct code your account has asked about. It cannot be turned back into an email address — not by us, and not by anyone who obtained a copy — and it is used for exactly one thing: counting how many distinct addresses a single account has asked about, so that a friend-finder cannot be used as a bulk address-checking tool. Nothing else reads it, and it expires on its own.
Lawful basis. Legitimate interests (GDPR Article 6(1)(f)): people join a social product in order to find the people they already know, and a search that only works if you know someone's exact username does not serve that. The balancing test turns on the limits that are actually built in — the switch above, exact-only email matching, the four-character floor on name search, a cap of ten results per search, and the 30-day ceiling. To object, turn the switch off, which takes effect immediately, or write to support@aimset.app.
If you are in someone's address book but do not use Aimset: we do not learn your address, we create no profile or record for you, and we have no way to contact you — which is also why we cannot notify you individually that a lookup happened (GDPR Article 14(5)(b)). This section is that notice.
Who else processes your data
Four service providers help us run Aimset. They process data on our instructions, for the feature named, and nothing else:
- Supabase — hosting, database, storage, and sign-in. Everything we hold on the server lives here: your account, profile, sessions, friends and clubs, moderation records, and the encrypted target images if you turned that tier on.
- OpenAI — moderation AI. Gets reported or screening-flagged text only: a profile, session note, comment, or club description. See Moderation and safety data below.
- Anthropic — the AI coach. If you use it, Anthropic receives the session summary the coach works from (scores, groupings, timings, discipline, firearm and caliber) and whatever you typed in a session note or in the coach chat.
- OneSignal — push notifications. If you turn notifications on, OneSignal receives your device's push token, your account id, and the text of each notification we send you.
Two details worth stating plainly. We send content to OpenAI and Anthropic, not your identity — no name, username, email, or account id goes with it, so anything identifying is only what you typed yourself. And we do not keep your coach conversation on our servers: it is relayed from your device, and all we store is how many calls you made.
Moderation and safety data
Aimset has social features — profiles, a friends feed, clubs, and leaderboards — so we run a moderation system to keep them safe. To do that, we store two kinds of moderation data:
- Content reports — when you report a post, profile, or club, we store who reported it, what was reported, the reason you chose, and any optional details you add. Reporting is confidential: the person you report is not told who reported them.
- Block lists — when you block another user, we store that block so the two of you stay invisible to each other across the app.
We collect this for safety and legal compliance: to act on reports of objectionable content, to enforce our Terms of use and Community guidelines, and to keep a record of what we acted on. We do not use moderation data for advertising, and we do not sell it.
Automated review. Reports are decided by automated systems. When content is reported, or when our screening flags a post as a possible policy violation (for example a suspected firearms sale), that text is sent to OpenAI (our moderation-AI processor) to be classified against our content policy. Normal content is never sent to a third-party AI — only reported or flagged items, a small fraction of activity. Every automated decision and its rationale is logged, the author is notified of removals, and removals can be appealed in-app (Settings → Safety → Moderation), where a fresh automated review with full context decides the outcome. You can always contest a decision by email as well (see Contact).
Retention and deletion
We don't delete shared data on a schedule. It stays as long as you want us to have it.
You're in control:
- Turn off Detection stats in Settings → Data sharing. We delete the detection stats we've received from you.
- Turn off Target images in Settings → Data sharing. We delete the images and the encryption keys we hold for them.
- Delete all my shared data in Settings → Data sharing. Same as above, both tiers, single action.
- Delete account at the foot of Settings, under Sign out. Removes everything, including your profile.
Each of these is final and immediate. We don't keep deleted data in cold storage; once you ask us to delete it, it's gone.
The one exception is moderation and safety records. To keep the community safe and to meet our legal obligations, we may retain content reports, block records, and records of moderation actions for as long as needed to enforce our Terms of use — even after the related content or account is deleted. We keep these to the minimum needed for safety, audit, and legal compliance, and for nothing else.
Your rights
- Access: Settings → Account → Export my data.
- Correction: edit your profile or any session note in-app.
- Deletion: see above.
- Withdraw consent: the Data sharing switches, anytime.
Launch notifications
If you enter your email address on aimset.app to be told when the app launches, we store that address, the time you entered it, your browser's user-agent string and a one-way hash of your network address (to stop automated sign-ups). We use it to send you one email when Aimset is available, and nothing else. Reply to that email — or write to support@aimset.app — and we delete the address.
Contact form
If you write to us through the contact form on aimset.app, we receive your email address, your name if you give one, the topic you pick and your message, along with the time, your browser's user-agent string and a one-way hash of your network address (to stop automated messages). It reaches us as an email in our own mailbox on aimset.app and is not stored anywhere else. We use it only to answer you, and we delete the conversation when you ask us to at support@aimset.app.
Contact
For privacy questions, data requests, or to contest a moderation decision: support@aimset.app