Privacy
What is stored, who can read it, and what Google is asked for. Last updated 23 October 2026.
In one sentence
Your workspace stays yours. Signed out it never leaves this browser. Signed in it lives in a Firebase account only you can read. Google sign-in asks for your name and email — not your calendar.
Who runs this
Aydin Ayanzadeh. Contact: a.ayanzadeh@gmail.com. The working app is at ayanzadeh.com/adhd-study-pack.
If you do not sign in
Tasks, the timer, notes, habits, mood, and history stay in this browser (localStorage and IndexedDB). Nothing is sent to a server. You can start without an account; that guest workspace is a separate copy on this device and is not merged into an account unless you export it and import it yourself. Clearing site data deletes it.
If you sign in with Google
Continue with Google uses Firebase Authentication. It requests only:
- openid, email, profile — so the pack can know it is you, show your name, and open your workspace on another device.
It does not request Google Calendar, Gmail, Drive, contacts, or the ability to see or edit events. Those checkboxes should not appear on the sign-in screen.
Google then gives the pack an account id, display name, email, and (if you have one) a profile photo. The pack does not receive a calendar token from this step.
Where a signed-in workspace lives
Cloud Firestore, project adhdrelief-bdbea, under users/{your id}/. Security rules allow only that signed-in user to read or write those documents. Other users cannot list or open them. Nothing is sold. There is no advertising and no marketing analytics script.
Firebase (Google) processes this as the host of Authentication and Firestore. The pack’s operator does not get a copy of your password; Google verifies it. If Performance Monitoring loads, Google receives page-load timing, not your tasks, notes, or mood. App Check, when it is on, sends a reCAPTCHA Enterprise token so the request is from this app. Remote Config may fetch a feature flag. None of those three carry the workspace.
Google Calendar (optional)
Calendar is a separate button on Plan: Connect Google Calendar. That first press asks Google only to view:
calendar.events.readonly— times and titles so the planner can work around existing eventscalendar.calendarlist.readonly— list the calendars you can pick from
A later switch, Send my blocks to Google, asks for calendar.events so the pack can create, update, or delete only events it created. You can refuse write access and keep viewing. The pack never requests the broad calendar scope.
You can use the whole pack without ever pressing Connect. If you do connect, the access token stays in this tab (memory and sessionStorage) for about an hour. It is not written to Firestore. Disconnect revokes it. Events the pack already created in Google stay in Google until you remove them from the same card.
Because those calendar permissions are classed as sensitive by Google, the Calendar popup may still say the app is unverified until Google finishes a review. That warning is about calendar, not about signing in.
Todoist (optional)
Connecting Todoist stores the API token in this browser, under this account only. It is not written into an export and it is not sent to Firestore. Sync sends task titles, dates, and done state to Todoist. Disconnect deletes the token from this browser.
Coach (optional)
The on-device coach runs in the browser. What you type does not leave the machine, apart from the model file downloaded from Hugging Face the first time you choose that size.
An online coach (OpenAI, Anthropic, or OpenRouter) is off until you paste your own API key. The key stays in this browser under this account. It is not in an export and it is not in the workspace. When you send a message, that provider receives the message, the key as the login, and a short summary: up to twelve open task titles, counts of notes, habits, and sessions, and the current intention. It does not receive mood text, note bodies, or the key inside the summary. The provider’s own policy covers what they keep.
AI plan (optional)
The Plan page can draft steps for one assignment. When you press Make my plan, the assignment name, its deadline, and the hours you entered are sent to a small worker the pack runs on Cloudflare, which asks Google Gemini to draft the steps. Nothing else from your workspace is sent, no account id is attached, and the worker does not store what it receives.
Music (optional)
Desk sounds are generated on this page. Spotify and YouTube Music load only after you choose them. Those companies then see the usual player request from your browser. The pack does not send tasks, notes, or mood to them. A YouTube access token, if you connect one, stays in this tab under this account.
What is not collected
- No advertising identifiers, no marketing email list, no sale of data
- No third-party analytics scripts
- No Gmail, Drive, contacts, or location
- No calendar data unless you connect Calendar yourself
How long it is kept
Local data lasts until you clear this browser, or you delete the workspace, from Setup. Those are different buttons. Delete this account removes the sign-in as well, and only after the server accepts it. A failed deletion is not described as done. Calendar tokens expire in about an hour. You can also email the address above from the same Google account and the operator will delete users/{your id}.
Email and password
If email sign-in is enabled, Firebase stores the hashed password. The pack never sees the raw password. Local profiles (not Google) exist only in this browser; that password is a courtesy lock, not cloud security.
Children
The pack is not directed at children under 13. Do not create an account for a child that age.
Public study card
Your profile stays private until you turn on Show my card. Then a signed-in student who knows your @username can see your display name, username, the line you wrote, your photo if it is small enough, and three totals: level, focused minutes, and streak. They cannot see your email, tasks, notes, mood, or coach key. Turning the card off deletes that public copy.
Voice
Speaking a list is optional. The microphone is used only while Speak is on, and only after you tap it. This page does not record or upload the audio. Recognition is done by the browser, which may send the audio to its own speech service (Google in Chrome, Apple in Safari). The words that come back stay in this page until you add them as tasks or a note.
Spoken coach replies are separate, and also optional. If you turn them on, the reply text is sent to a small worker the pack runs on Cloudflare, which asks ElevenLabs to read it aloud. The worker checks you are signed in and does not save the text. ElevenLabs' own policy covers the reading.
Study together
Study together is optional. If you start or join a room, the browser asks for your camera and microphone. The picture and voice go directly from your browser to the other people in that room. This site does not upload, record, or store them. A public STUN service (Google or Cloudflare) is asked only for a network path so two phones on different networks can find each other. It does not receive the picture or the voice.
A short connection note, enough for the browsers to find each other, is written to Firestore under rooms/{code}, with your display name, whether the camera is on, and whether you are muted. Anyone signed in who has the code can read that note. If you list the table, other signed-in students can see it and sit down. Leave the table to turn the camera off. The note is removed when the table ends.
Chrome extension
The optional Chrome extension stores two settings in Chrome sync (the Study Pack URL and an optional reminder interval) and keeps a toolbar focus timer on this device only (time left and today’s focus minutes). It does not read other websites, does not show notifications, does not run analytics, and does not sell data. Full extension policy: Chrome extension privacy.
Changes
Material changes to this page will bump the date at the top. The live pack is the source of truth. Related: Terms of use.