ADHD Study Pack
A Pomodoro Workspace Built Around How a Study Session Actually Falls Apart
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
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