Assistive Tooling Live — Google sync or local

ADHD Study Pack

A Pomodoro Workspace Built Around How a Study Session Actually Falls Apart

Aydin Ayanzadeh
Runs in the browser · optional Google sync
2026

Overview

Most study tools assume the hard part is knowing what to do. For an ADHD working session it usually is not — the hard part is starting, staying started, and telling what is loud apart from what matters.

The Study Pack is a Pomodoro workspace built for that. The focus dial runs whatever interval is survivable today, down to a two-minute start, and asks one sentence about what “done” looks like before it begins. An Eisenhower matrix makes the urgent-versus-important call once, in advance, instead of forty times a day under pressure. The planner turns “I should study” into blocks with a start time, and a distracting thought is one keystroke from parked rather than a new tab.

Nothing is pre-filled. Every chart, streak and suggestion is computed from what you actually do, so the statistics are evidence about when you focus well and what pulls you off — not a scoreboard.

What It Does

Focus dial. Adjustable focus, short-break and long-break lengths with presets from “Two-minute start” to 90/20 ultradian blocks. The countdown tracks the wall clock, so a backgrounded tab cannot run it slow. A session intent, an activation rating, a one-tap distraction tally and a quiet body-double mode ride alongside.

Priority matrix. Tasks sit in Q1–Q4 by urgency and importance, placed by drag-and-drop or two taps, with a one-at-a-time sorter for the unsorted pile. A balance card shows how much focus time really went to Q2, and the focus view nudges toward a Q2 task when the week is running on urgency.

Tasks and planner. Every task carries a pomodoro estimate and an activation cost — how hard it is to start. Any task or calendar block can also be timed with a stopwatch: press start, work for as long as it runs, and the minutes land in your study time. A week calendar holds classes and study blocks; courses get weekly targets, and the auto-scheduler packs sessions into free hours, weighted by the hours you historically focus best. Connect Google Calendar and the sync runs both ways: your Google events appear in the planner as busy time, and the blocks you plan are added to Google, with edits and deletions following them. Calendars also come in and go out as .ics.

Notes, sound and calm. A sticky-note wall where parked thoughts land; rain, brown and pink noise, café hum, fireplace and more, all synthesised live with the Web Audio API; breathing pacers, a 5-4-3-2-1 grounding run, check-ins and movement prompts for the break.

Mood, energy and stress. Three numbers and a couple of tags, logged in about five seconds from a two-dimensional pad — mood up the side, energy across — or from the sliders beside it. What makes it worth doing is the second half: the charts draw your focus minutes behind the mood line, so the view can say things like mood runs 1.2 higher on days with at least 25 minutes of focus, name your best and worst weekday, and surface which tags keep turning up on the rough days. A day-by-day grid shows a month at a glance and is built as a real table, so it reads as data to a screen reader rather than as colour.

Statistics. Focus minutes per day, best hours, a consistency heatmap, what pulls you away, time by course, a session log with CSV export, and plain-language insights drawn from all of it.

Where the Data Lives

Two ways in: sign in with Google and the workspace syncs, or use a local profile and nothing leaves the browser.

Google sign-in keeps the workspace in Cloud Firestore at users/{uid}/workspace/state. Firestore security rules let only the signed-in owner read or write it. Open tabs and devices update live, and the page keeps working offline, queueing writes until the connection is back. If the synced workspace cannot be loaded, the app signs back out rather than opening an empty one that could overwrite it.

A local profile lives in this browser only. Its password is hashed before it is stored, but the page says plainly what that is: a courtesy lock on a shared laptop, not security. Either way, the whole workspace exports as JSON and imports back in one step.

Two stores, because they grow differently. The working set — tasks, blocks, notes, settings — is small and bounded, so it travels as one document. History is not: focus sessions, check-ins and mood entries only ever accumulate, and a Firestore document stops at one mebibyte. So every time-stamped record is written on its own into a real database — an IndexedDB store signed out, a Firestore collection (users/{uid}/journal) signed in — indexed by kind and time. A record written on a phone and one written on a laptop now merge instead of overwriting each other, and the history can grow for years. Upgrading moves any inline history across before anything is dropped, and entries logged before you signed in are only folded into an account when you say so — on a shared computer they would otherwise land in whoever signed in first.

Design & Accessibility

Every view and every timer action has a single-key shortcut, and a command palette (Ctrl/⌘ + K) reaches the rest, so the mouse is never the thing standing between you and starting. B parks a thought and D logs a distraction without stopping the timer.

Light and dark follow the system or can be pinned, with four accent colours. Under prefers-reduced-motion the breathing and pulse animations stop. On a phone the navigation becomes a scrolling strip and every view stacks to a single column.

Settings that start simple. Every Setup section opens with the two or three things most people change and folds the rest behind one button that says how many are inside. Nothing is removed — a disclosure, not a second class of setting — and the choice of what is open stays put while you work.

Comfort profiles. ADHD and autism often want opposite things from the same screen — quick rewards, streaks and nudges against muted colour, no surprises and a warning before every change. The defaults are ADHD-first; Setup offers five starting profiles (ADHD, Calm and predictable, Low vision, Easier reading, Screen reader) and then lets you change any single setting, at which point the profile is marked as customised and tells you exactly what differs. Text scales to 175% without a horizontal scrollbar, line and letter spacing loosen, the typeface can switch to Atkinson Hyperlegible, contrast can go high, colour can go muted or grey, and pop-up messages can be limited to the important ones or turned off entirely — they still reach screen readers either way.

Screen readers and speech. Built and audited against WCAG 2.2 AA: every view is a landmark with a heading, changing view moves focus to that heading, dialogs make the page behind inert and return focus when they close, the matrix and calendar blocks are keyboard buttons with names that say what and when, and two live regions carry news politely and interruptions assertively. Single-key shortcuts can be switched off (WCAG 2.1.4) so they never clash with a reader’s own keys, and the timer can announce the time left every few minutes. That works with NVDA, JAWS and Narrator on Windows, VoiceOver on macOS and iOS, and TalkBack on Android. For anyone who wants things read aloud without running a screen reader, there is a built-in voice using the speech synthesis already on the device — it reads the current task, the timer, or any text you select, and nothing is sent anywhere to do it.

Technologies Used

Vanilla JavaScript ES Modules Web Audio API SVG Charts Firebase Authentication Cloud Firestore CSS Custom Properties

No framework, no bundler and no build step — the browser runs the source exactly as committed. The Firebase SDK is loaded only when the page is configured for it, from a pinned version, and the page’s Content Security Policy allows no inline script.

Try the Study Pack

Opens instantly. Use a local profile, or sign in with Google to keep it on every device.

Open the Study Pack