Assistive Tooling Live — local-first

ADHD Study Pack

A Focus Tool Built Around How a Study Session Actually Falls Apart

Aydin Ayanzadeh
Runs entirely in the browser
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, and then staying started.

The Study Pack is built around the three specific ways a session tends to come apart. A full task list on screen produces the freeze, so only one task is ever in the foreground. A task phrased as “write the chapter” has no first move, so tasks break into steps and the next unfinished step is surfaced automatically. And an unrelated thought arriving mid-paragraph becomes a new tab and then the end of the session, so there is one keystroke that parks it and returns you to the task.

The timer is deliberately adjustable rather than fixed at twenty-five minutes. A block length that is someone else’s attention span is a block you abandon; one you set to what is survivable today is one you finish. Partial sessions are logged rather than discarded for the same reason — erasing a twelve-minute effort because it was not twenty-five teaches exactly the wrong lesson.

What It Does

One task in the foreground. A single card shows the current task and its next unfinished step. Everything else stays in the list below, and the active task is pinned to the top so the two views never disagree.

Step breakdown. Any task expands into small steps. Completing every step completes the task, which makes the closure visible rather than something you have to decide about.

An adjustable focus block. One to ninety minutes, with a quiet progress line along the card edge rather than anything that flashes. The countdown tracks the wall clock, not interval ticks, so a backgrounded tab does not silently run the timer slow.

Thought parking. Alt + P from anywhere drops an intrusive thought into a list and returns focus. Anything parked that turns out to be real work converts to a task in one click.

Today, not forever. Blocks completed, minutes focused and a day streak. Enough to notice a good run; not so much that the statistics become the activity.

Where the Data Lives

Everything stays in your browser. There is no account, no password and no server.

A “profile” is a local label for one set of data in localStorage — it separates two people sharing a laptop, and that is all it claims to do. It is not authentication, and the page says so rather than presenting a login box that implies protection it does not provide. Nothing typed into the Study Pack leaves the device, which also means it does not follow you to another one.

Storage sits behind a single adapter in js/adhd-study-pack.js, and every method on it is already async. Adding Firebase later means replacing that one object — no call site changes shape, because none of them know where the data lives. The “Continue with Google” button on the sign-in screen is present but disabled until that is configured; a control that silently does nothing is worse than one that says it is not ready.

To enable accounts and sync: create a Firebase project, add the web config and swap the adapter’s read/write to Firestore, then extend the connect-src directive in the app’s Content Security Policy to the Firebase origins. The CSP is intentionally strict (script-src 'self', no inline scripts), so that last step is required — requests will be blocked until it is done.

Design & Accessibility

The interface is deliberately quiet: one accent colour, no animation that starts on its own, and no notification the reader did not ask for. Under prefers-reduced-motion the remaining transitions drop out entirely.

Every control is reachable and operable from the keyboard, state changes are announced through a polite live region, checkboxes carry labels naming the task they belong to rather than a bare “done”, and the layout holds up in forced-colours mode. Light and dark both follow the system setting.

Technologies Used

Vanilla JavaScript ES Modules Web Storage API CSS Custom Properties ARIA Live Regions Progressive Enhancement

No framework, no bundler and no build step — the browser runs the source exactly as committed. The app shares js/lib/dom.js with the rest of the site, so node building and debouncing have one implementation here too.

Try the Study Pack

Opens instantly, keeps everything on your device, and needs no account.

Open the Study Pack