It’s a short list. We only ask for what actually makes the app work.
- Your email address: to create and secure your account (via Supabase Auth).
- What Sign in with Apple or Google hands us: if you choose one of those buttons instead of an email code, the provider returns a unique account identifier, your email address (Apple’s may be a private relay address), and your name if you let it through. That is the whole of it. We ask for no other permission, we never read your Gmail, contacts, calendar, files or photos, and we never post anything anywhere on your behalf. What comes back is stored in Supabase Auth purely to be your login, is used for nothing else, is never sold, shared, or used for advertising, and is deleted with the rest of your account.
- Your display name: the name your friends see, and the name that appears on anything you post to the public community board.
- Your daily log: whatever you say, and whatever you type alongside it. A log now takes a voice note, so almost every day you log carries a recording, and that recording is kept as well as transcribed. The demand lifts in exactly two situations, both of them a door that is shut rather than a preference: a microphone your phone will not ask you about again, and a transcription service that will not answer. It never lifts because you would rather not, and there is no setting for it. The audio goes to OpenAI to become the text your score is generated from (see section 03), and the file itself is stored in a private bucket where the friends you have accepted can press play on it for 14 days. The file is then deleted outright once it is 30 days old, whether or not you ask. Section 04 has the detail on who can hear it.
- Your device’s time zone: a zone name like “Asia/Kuala Lumpur”, stored on your profile so a “day” ends at your midnight and not ours, and so an evening reminder fires at the hour you picked. It is a zone name, never a coordinate.
- Your health score: the number your log generates, plus the average of your last 14 logged days.
- Anything you post to the community board: the feature requests, comments, and votes you choose to submit. These are public by design, carry your display name, and are handled by Canny (see section 03). Nothing on the board is private; your daily logs never appear there.
- Photos you attach to a day: at least one, and up to six. A photo is no longer something you add if you feel like it, it is part of what a log is. The demand lifts only if the picker on your phone will not open at all, which is the photo half of the same rule: compulsory for anyone who can, never impossible for anyone who cannot. The files live in a private bucket, and adding one grants your accepted friends’ accounts read access to it for the next 14 days. There is no per-photo private setting, so treat anything you attach as shared with your circle. Remove one and it comes off your day for everyone. Section 04 has the detail.
- Your spoken promise: the one line you read out loud when you set up. The audio goes to OpenAI to be turned into text, and that text goes to Anthropic to check you actually said the line (see section 03). The clip itself is then kept, in a private folder that only your own account can read. That is the difference between it and a spoken daily log: a daily log is audible to your accepted friends for 14 days, and your promise is audible to nobody but you. It goes when your account goes.
- Product analytics: Mr. Chud ships PostHog, and it is the only analytics SDK in the app. It records what you did, never what you wrote: named product events (opened the app, finished onboarding, logged a day, saw the paywall), the screen you’re on, your Supabase user id, your app version, and your platform. The PostHog SDK also attaches ordinary technical context to each event by itself: your device model, OS and OS version, app build, screen size, timezone and the SDK version. We tell PostHog to skip its IP-based location lookup, so no city, region, postcode or coordinate is derived from or stored against your events. Here is the part we will not round off: that switch has not always been there. Every event from a version of the app that carries it arrives with no location on it at all. Events sent by older versions, before the switch existed, did carry a coarse city, a postcode and an approximate latitude and longitude, every one of them worked out from the IP address the request arrived from and never from your device, and those older events are still in our analytics under your user id. None of it comes from GPS, we never ask your device where it is, and we do not use any of it for anything. Section 04 has what happens to that record when you delete your account. The code enforces a hard no-content rule: every property that goes out is an enum, a boolean, a count, or a coarse band, so entry text, reflections, your Chud’s name, your username, your email and any token are structurally incapable of ending up in an event. Even your score goes in as a band (“60-79”), never the words behind it. It runs on our own PostHog project, it is used only to see which parts of the app work, and it is never used for advertising or joined with your activity in any other app or website.
- Crash diagnostics: Mr. Chud ships Sentry, and it is the only crash-reporting SDK in the app. When the app crashes or hits an error it sends Sentry the error and its stack trace, your app version and build, your device model, OS and OS version, and your Supabase user id, so a crash can be tied to a session rather than guessed at. Sentry is never sent a screenshot, a view hierarchy, or a session recording: a picture of this app is a journal entry, so all three are switched off in the code and are meant to stay off. It never receives the text of a log, your reflection, your Chud’s name, your username or your email. One thing we will not round off: the report travels over the internet to Sentry’s servers, so Sentry’s own systems see the IP address the request arrives from, and an IP address can be resolved to an approximate country and region. We never ask your device for its location, no coordinate is stored on a crash report, and we do not use that region for anything. Separately, Apple and Google may hand us their own crash reports through App Store Connect and Play Console, and only if your device is set to share diagnostics with them.
That’s it. No GPS or precise location, no contacts access, no browsing history, no advertising identifiers, and no microphone access outside of two moments: the voice note a daily log requires, and the promise you read out loud at setup. Both of those are asked for where they happen. The microphone dialog is raised inside the log itself, the first time you press record, and never before it, on either platform. Your photo library is never opened: the picker that appears belongs to iOS or to Android, it runs outside this app, and what comes back is the pictures you tapped and nothing else, so Mr. Chud has no reading of your library and never asks for one.
Mr. Chud