Privacy policy
Last updated 13 August 2026
This page describes what ChallengesApp actually does with your data, written from the code that runs it rather than from a template. If something here stops matching the app, the page is wrong and should be fixed.
What your account holds
Your name, your email address, your password and your language preference. The password is stored only as a salted hash — nobody, including us, can read it back. Your name is what other members of your groups see.
What your activity holds
The groups you belong to and your role in each, the challenges you take part in, the nickname you use in a challenge, any personal goal you set, the evidence you send with its photo and note, your votes, the review decisions you make, and any feedback you send from inside the app — its message, category, the screen you sent it from, and a contact email if you type one.
What the app needs to work
A session record for each device you sign in from: a hashed token, when it expires, and a fixed device label the app sets itself. Short-lived counters that stop somebody guessing passwords, keyed by a one-way hash of your email address or your network address — the address itself is never stored. Your group's time zone, because a daily deadline needs one.
Country, counted
When an account is created, the two-letter country code our hosting platform has already derived from the network connection is added to a running total for that country — nothing else. No address is stored, the count is not attached to you or to your account, and there is no record of where any individual signed up. It exists so we can see which countries the app is reaching. Your device is never asked for its location, and the app requests no location permission.
What is never collected
No advertising identifier, no analytics or tracking SDK, no third-party cookies, no precise or device location, no contacts, no microphone, and nothing at all while the app is in the background. The only geographic thing that exists anywhere is the aggregated country count described above. The Android build blocks the audio, overlay and vibration permissions its framework would otherwise request. The camera and photo library are asked for at the moment you use them, and the app works without them if you decline.
Your photos
A photo you pick or take is resized and re-encoded on your own device before anything is sent. Only that smaller file leaves the phone; the original stays where it was. Nothing scans your library, and no photo is uploaded until you tap send.
Where it is kept
Records live in a PostgreSQL database hosted by Neon. Photos live in Vercel Blob storage, uploaded with private access so they have no public URL. The app itself runs on Vercel. Emails — password reset only — go out through Resend, which receives your address in order to deliver them. Those four providers are the only companies your data reaches.
Who can see your evidence
You, and whoever the challenge has actually put in a position to judge it: a group owner or admin when the challenge is decided by admin approval, or an active participant who accepted the rules when it is decided by members' votes — and then only while your evidence is still waiting for a decision. Simply being in the same group is not enough. Everyone else gets the same answer as a photo that does not exist. Every request is re-decided by the server; there is no shareable link and no public address for a private photo.
Explore and the public showcase
Two things can be public, and only these two. A challenge marked public shows its written setup on Explore — its name, description, rules and reward, never its members or their evidence. Separately, a group manager may publish up to two chosen pictures per public challenge, with an explicit consent field on the upload and alt text for people using a screen reader. Your submission evidence is never published there: it lives in different records and different storage, and no path exists between the two. Publishing is reversible — removing a picture deletes both the record and the stored file.
How long things are kept
Your account and activity are kept while your account exists. A password reset link is stored only as a hash, lasts one hour, works once, and is removed by a cleanup job once spent or expired. Rate-limit counters expire within the hour and are cleared the same way. Removed photos are deleted from storage, not merely unlinked.
Deactivating and deleting
Two different things, both in the app under Profile, and both asking for your password first. Deactivating switches your account off: you cannot sign in, you stop appearing in member lists, rankings and review queues, every session ends — and nothing is deleted. Reactivating turns it back on exactly as it was. Deleting switches it off in the same way and starts a 30-day countdown; reactivating within those 30 days cancels it. When the countdown ends, a job permanently removes your account, your submissions and their stored photos, any showcase pictures you published, your votes, memberships, participations, notifications, feedback and every token. After that, nothing can be recovered.
One case where deletion is refused
If you are the last owner or admin of a group other people are still using, deletion is refused and names the group. Removing you would leave those people with a group nobody can manage, add members to, or review evidence in. Make someone else an owner, or let the group empty out, and then delete your account. Groups where you were the only one left are deleted along with you. Evidence you reviewed keeps its decision and loses your name.
Security
Passwords are hashed, session tokens are stored as hashes, sign-in and sensitive actions are rate limited, and a successful password reset ends every session on every device. Tokens, cookies and private file addresses are never written to a log.
This is a beta
The product is small and changing, and this page describes what it does today rather than what it may do later. It is a plain description, not a claim of compliance with any particular jurisdiction's law. Questions go through the feedback form in the app.
ChallengesApp does not sell your data, does not share it for advertising, and shows no ads.