ADHD.lk is a set of tools — a visual focus timer, a daily planner, a routine builder, habit streaks, a journal and breathing exercises — for people whose brains do not cooperate with ordinary productivity apps. It is free, and it works instantly without creating an account. This post is about the engineering and design decisions behind it, because most of them apply to any product.
The core constraint: friction is the enemy
The audience has executive dysfunction. Every extra step between opening the page and doing the thing is a step where they leave. So the rule was simple: everything works instantly, in the browser, with nothing to sign up for. Accounts exist only as an optional layer for people who want to sync across devices.
Local-first architecture
State lives in the browser first — localStorage and IndexedDB — and syncs to the server only when a user opts in. This has three effects: the app is fast because nothing waits for the network, it works offline, and privacy is the default because most data never leaves the device. The hard part is conflict handling when the same user edits on two devices; I settled on last-write-wins with a visible history rather than clever merging, because predictability beats cleverness for this audience.
Designing the focus timer
Time-blindness is real: people with ADHD often cannot feel time passing. A numeric countdown does not help. The timer is a large visual shape that visibly shrinks, with optional ambient sound layers, and it stays visible even when the tab is in the background through the Page Visibility API and notifications.
Performance decisions
- No heavy framework for the core tools; small, purpose-written JavaScript keeps first load under a second on Sri Lankan mobile connections
- Aggressive caching and a service worker so repeat visits are instant
- Server-side rendering for the informational pages so they are indexable and readable on slow connections
Content and SEO
The tools attract users; the articles and the self-assessment screener attract search traffic. Writing evidence-based content about ADHD responsibly was as much work as the code, and it is what makes the site discoverable. The same pattern — a useful free tool plus genuinely helpful content — is why I built the developer tools page on this site.
What I would tell any product team
- Identify the single moment where your user is most likely to give up, and remove every step before it.
- Make the account optional if you possibly can. You will get more users, and the ones who sign up will be the ones who value it.
- Design for the worst connection your users have, not the best one in your office.
- Ship the small version. ADHD.lk started with one timer.
ADHD.lk is one of several products I built and run myself; the others are in the portfolio. If you want a web app built with this kind of care, let us talk.
Need help with this?
I do this for a living — for businesses in Sri Lanka and clients worldwide. Tell me what you are dealing with.
Comments (0)
// no comments yet — start the conversation
Leave a comment
Comments appear after moderation.