Privacy policy
Effective date: August 8, 2026
Shahmaran is a free learning app. It runs on the web at shahmaran.app and as an app on iOS and Android. It is built and run by one person. This page explains what data the app handles, in plain language — everything below describes what the app actually does today.
The short version
- You can read everything without an account. No learning activity is stored for signed-out readers; the website and the mobile app both record anonymous usage analytics (on the web, not if your browser sends Do Not Track).
- If you sign up, we collect your email address and your birth month and year. That's everything we ask for.
- We use analytics on both the website and the mobile app to improve them. We record a rough region — your device's time zone, never your IP address or GPS.
- No ads. We never sell your data. We don't track you across other apps or websites.
- To delete your account, email us. We erase everything.
What we collect
Your email address. This is the only identifier we ask for at sign-up. There is no password — we email you a one-time code or sign-in link instead. We don't ask for your name or phone number.
Your birth month and year. Asked once, right after sign-up — month and year only, never the day. We use it for two things: to confirm you're 13 or older, and, in the future, to keep content age-appropriate. It's private by default and never shown to other users; your birth year is never exposed anywhere. If you enter a birth date under 13, it is rejected and not stored.
An account record. When you sign up, the app creates a profile with an auto-generated username (like user_a1b2c3d4e5) and default settings such as language and theme. Our database has room for other optional fields like a display name or bio, but the app currently has no way to fill those in — so we don't collect them. If we add profile editing later, those fields will always be optional.
Learning progress and points. When you're signed in and finish a section of a module, we record it: which module, which section, the points earned, and when. This is what powers your progress bars and points balance. Nothing is recorded when you read signed out.
Bookmarks. If you save a module, we store which module you saved and when.
Usage analytics (website and mobile app). We use PostHog to record product events — things like “app loaded”, “module opened”, “section completed”, and which route you were on. Before you sign in, these events sit under a random anonymous ID; when you sign in, that anonymous ID is linked to your account's internal ID (a random UUID), so your earlier browsing on that device becomes part of your account's usage history. Your email and profile details are never sent to analytics. We don't record your screen, and on the website we honor your browser's Do Not Track setting — if it's on, we collect no analytics from you at all.
What an event can contain is fixed in advance. Every event and every field it may carry is declared in a list in our code, and anything not on that list is dropped before it is sent. There is no field type for free text, so a typed answer, a search, or a note cannot be sent even by mistake. Fields are IDs we wrote ourselves, fixed choices, counts, yes/no flags, and durations — nothing else.
Rough region, from your clock — not your IP or GPS. When the app loads we record your device's time zone, such as “America/Toronto”. We do this to decide where to put our writing: some modules are specific to Canada, and we have no other way to know whether the people reading them are in Canada. A time zone covers millions of people and cannot be narrowed to a city or an address. We have turned off IP-address collection in PostHog precisely so that no address is ever sent, and we never ask for or use location services.
Error reports (web only). If the website hits a bug, error details (like a stack trace) go to Sentry so we can fix it. We've configured it not to collect IP addresses, cookies, or personal details by default, and we strip authentication data from the reports. Error messages can occasionally contain incidental data, but we minimize this.
The mobile app records the same product events as the website (added August 2026 — before that it recorded nothing), under the same fixed list and the same random anonymous ID. It has no crash-reporting software, no advertising ID, and no access to your location. It talks to our database (Supabase) for sign-in, content, progress, points, and bookmarks — plus fetching any images that appear inside lessons.
How we use your data
- Your email — to sign you in (we email you a code or link) and, in the future, to send occasional account emails like a welcome message. Nothing like that is sent today.
- Your birth month and year — to confirm the 13+ account minimum and, later, to tailor content by age. Never for ads (there are none) and never shared.
- Progress, points, and bookmarks — to show you your own progress and saved modules.
- Analytics — to understand which features get used and improve the app.
- Error reports — to find and fix bugs.
That's it. We don't use your data for anything else.
Who handles your data (third-party processors)
We're a small operation, so we rely on a few services to run the app. Each one processes data only on our behalf:
- Supabase — our database and sign-in system. Holds your email, account record, progress, points, and bookmarks. All personal tables are access-controlled so only you (and us, as the operator) can read your data, apart from the public profile fields described below.
- PostHog (website and mobile app) — product analytics, hosted in the United States. Receives usage events and your account's random internal ID. Never receives your email.
- Sentry (web only) — error reporting. Receives error details from the website, with personal data collection turned off by default.
- Resend — email delivery. Your sign-in codes and links travel through Resend to reach your inbox.
- Vercel — hosts the website. Like any host, its server logs receive standard request data, and in rare error cases a log line may include an account ID or email address.
We don't share your data with anyone else.
What we do NOT do
- No ads. There is no advertising in Shahmaran, and no ad networks.
- We never sell your data. Not to anyone, not in any form.
- No tracking across other apps or websites. We don't use third-party trackers, advertising IDs, or cross-site profiles.
- No session recording. We don't record your screen or replay your sessions.
- No hidden collection on mobile. The mobile app talks only to our backend.
Public profile information
Profiles are set to “public” by default. Right now that means your auto-generated username, join date, and lifetime points could be read through our public data interface — along with a display name, avatar, or bio if you ever add them. Sensitive fields are locked down harder: your postal code is never exposed publicly, and your birth year is never exposed at all. The app doesn't yet have any screen that shows other people's profiles, but we're telling you how the data is set up. Per-field privacy settings (for things like location and streaks) exist and default to private or coarse.
Data stored on your device
- Web: cookies that keep you signed in (strictly functional — no advertising cookies, which is why there's no cookie banner), your light/dark theme choice, a random analytics ID, and two temporary flags used to measure the sign-up flow.
- Mobile: your sign-in session tokens, stored on your device so you stay logged in. Nothing else.
Retention and deletion
We keep your data for as long as you have an account.
There is no self-serve “delete account” button yet. We're honest about that. To delete your account, email us at ecuriouspaisley@gmail.com from the address you signed up with. We will delete your account, and the database is built so that this erases everything tied to it — your profile, points history, progress, and bookmarks — permanently. We aim to complete deletions within 30 days, usually much faster.
Your points history is append-only by design (it's a ledger), so individual entries can't be edited — but deleting your account erases the whole ledger.
Minimum age
Reading is open to everyone, at any age — no account is needed, and nothing is collected from signed-out readers. Accounts are for ages 13 and up. We check this with the birth month and year asked at sign-up: an under-13 birth date is rejected and not stored. If we learn that someone under 13 has an account anyway, we'll delete it.
Changes to this policy
If we change how we handle data — for example, adding mobile crash reporting, social features, or new sign-in options — we'll update this page and change the effective date at the top. For meaningful changes, we'll note what changed.
August 8, 2026: two changes, and both add data, so they are spelled out. The mobile app now records the same anonymous product events the website already did — before this it recorded nothing. And both now record your device's time zone, as a rough region, to help us decide which countries our writing should cover. We still do not collect IP addresses and still never ask for location access. At the same time, the list of what an event may contain became fixed in code: anything not on the list is dropped, and there is no field for free text.
August 6, 2026: the app moved to its own address, shahmaran.app. Nothing about what is collected changed.
July 19, 2026: accounts now ask for birth month and year at sign-up (13+ check and, later, age-appropriate content), and the account minimum changed from 16 to 13. Reading without an account is unchanged — open to all, nothing collected.
Contact
Questions, deletion requests, or anything else about your data: ecuriouspaisley@gmail.com. We're a one-person team, so replies come from a human — usually within a few days.