Product design · Built with Claude Code

Beacon

Duration
July 2026 – present (personal project)
My role
Product strategy, research synthesis, and product design; solo
Context
A mobile app that helps adults with ADHD accomplish long-term goals. “Beacon” is the working name.
Tools
Claude (research synthesis and product strategy), Claude Code (working prototype), Claude API (the agentic layer’s live backend)

Productivity apps quietly assume a neurotypical brain: distant rewards motivate, streaks encourage, and a missed day is useful feedback. For an ADHD brain, every one of those assumptions is backwards. Beacon starts from the research instead: one long-term goal, converted into tiny daily habits, inside a loop designed to forgive. I synthesized the clinical and behavioral evidence, distilled it into five design laws, and built a working 12-screen prototype in which every screen has to obey them.

The real problem

The ADHD productivity category has a graveyard pattern: apps work for two weeks, then die around day 30. The mechanism is well documented in user post-mortems. A streak breaks, the app shows a wall of red Xs, shame does the rest, and the user never reopens the app. “My 64-day streak broke and I never opened it again” is a typical story, not an edge case.

Meanwhile the category splits the job in half: habit trackers give you a daily loop with no connection to anything long-term, and goal apps hold the long-term goal but give you no reason to open them today. Nobody holds both ends of the thread.

The research

Before any screens, I researched why these tools fail, using Claude to run and structure a synthesis across neuroscience, clinical trials, behavioral economics, and lived-experience accounts. The findings that shaped the product (figures as reported in the literature):

  • If-then plans work unusually well for ADHD. Implementation intentions (“after coffee, at my desk, I write one paragraph”) show an effect size of d≈0.65 on goal attainment in Gollwitzer’s research, strongest in people with impaired self-regulation.
  • Mental contrasting multiplies effort. WOOP (Wish, Outcome, Obstacle, Plan) roughly tripled goal-directed effort in a randomized trial.
  • Distant rewards barely register. ADHD shows steeper delay discounting (d≈0.43) and reduced reward anticipation in the ventral striatum. The payoff has to arrive now, not at the finish line.
  • Time blindness is real. Barkley’s “now vs. not now”: time that is not visible does not exist.
  • Rigid streaks backfire; repair mechanics retain. Forgiving mechanics measurably raise reactivation. Duolingo’s load-bearing retention feature is the streak freeze, not the streak.
  • Shame is the churn mechanism. Rejection-sensitive dysphoria turns one missed day into permanent abandonment; self-compassion framing is a retention mechanism, not soft copy.
  • Motivation follows interest, not importance. Dodson’s INCUP (interest, novelty, challenge, urgency); body doubling is the most-credited real-world ADHD strategy; future-self continuity is weak, which is why distant goals do not pull.

The synthesis is captured in an annotated flow document that maps every screen to the evidence it implements. Two frames from it are below; the full document is readable here.

A table from the Beacon flow document titled Every element, where it lives, the evidence: fourteen research-backed elements, each mapped to where it shows up in the product and the research grounding it
The audit table from the flow document: every research-backed element, where it lives in the product, and the evidence grounding it.

The synthesis collapsed into five design laws. Every screen, feature, and line of copy must obey them; if a feature breaks one, the feature gets cut.

  • 1. Externalize executive function. The app holds the goal, the time, the next step, and the memory. Never the user’s brain.
  • 2. Tether every day to the goal. The goal and the user’s own future-self line sit on the home screen every day, and every completed habit visibly moves a cumulative indicator toward the goal.
  • 3. Shrink the delay to reward. An immediate micro-reward on every completion; progress is visible and cumulative.
  • 4. Forgive by default. A missed day never resets progress to zero. Re-entry is one tap and an absurdly small restart.
  • 5. Run on interest, not importance. Feed novelty, urgency, challenge, and accountability. Never lecture the user about why the goal matters.
The header of the Beacon flow document, titled An ADHD app for actually finishing long-term goals, above five numbered design-law cards
The document’s spine: the five design laws, distilled from the research, that every screen must obey.
Beacon home screen: the goal and a future-self line at the top, a cumulative progress bar reading 16 days invested, and a single Today's One Thing card with one Start button
The laws on one screen: the goal and future self on top, cumulative progress that cannot reset, and exactly one next action.

Decision 1

One goal, not a goal manager

The obvious product is a flexible multi-goal system; that is what most competitors build, and a blank “what are your goals?” screen is exactly where ADHD users quit. Task-initiation paralysis is triggered hardest by open-ended decomposition work. I rejected multi-goal onboarding entirely: you pick one goal, WOOP it (wish, outcome, obstacle, if-then plan), attach one line about your future self, and the product proposes 1–3 tiny daily habits with if-then triggers that you only approve. The hardest executive-function work in the app is done by the app. Onboarding reaches a first completed micro-action in under two minutes, with no account wall.

Beacon onboarding step three: the goal shrunk to daily size, with two proposed habit cards, each showing an if-then trigger, a duration, and a make-it-smaller link
The breakdown step: the product proposes the habits with their if-then triggers; the user only approves, and anything can be made smaller.

Decision 2

Cumulative progress, not streaks

Streaks are the engagement engine of every competitor, and the research says they are also the documented abandonment trigger: an all-or-nothing chain plus one missed day equals a permanent quit. Beacon counts up instead. Progress is “16 days invested,” a number that cannot go backwards; a missed day consumes an automatic grace day; the copy says “welcome back,” never “you failed.” The trade is deliberate: less day-to-day pressure in exchange for surviving the day-30 cliff, because the pressure is the churn mechanism.

Beacon completion screen reading That's a brick laid, with a cumulative days-invested count and a progress bar toward the goal
Completion: an immediate micro-reward, a days-invested count that only goes up, and the goal bar visibly filling.

Decision 3

Time as a shape, not a number

A digital countdown assumes the number means something to you. With time blindness it does not. Every duration in Beacon is analog first: a focus session is a ring that visibly shrinks, remaining time reads in words (“about 8 min left”), and the home screen sells the session as “10 visible minutes.” Digits-only time displays were rejected outright; they are the design equivalent of explaining a color by its wavelength.

Beacon focus session: a large analog ring partially depleted around the words about 8 min left, above a single I'm done button
The focus session: time as a shrinking shape, described in words, with one way out and no penalty for taking it.

Decision 4

The missed day is a designed flow, not an error state

The screen that decides this category’s retention is the one most apps never design: the day after a missed day. Beacon treats the lapse as a first-class flow with three steps. A welcome-back state shows that a grace day was used automatically and nothing was lost. A tiny restart deliberately shrinks the day’s ask (“write one sentence, two minutes”) on the never-miss-twice principle. An optional 20-second check-in asks how you are arriving and answers with mood-matched self-compassion copy, because defusing shame is what keeps someone in the game long enough to reach a long-term goal.

Beacon missed-day screen: a grace-day-used badge, a Welcome back heading, copy confirming nothing was reset, and an Ease back in button
The day after: a grace day already spent on your behalf, your total intact, and no red anywhere.
Beacon tiny restart screen: a never-miss-twice kicker, a deliberately tiny two-minute action card, and one button to start it
The restart is sized to be almost too small to skip: one sentence, two minutes.
Beacon optional check-in: How are you arriving, with Heavy selected among four mood chips and a self-compassion response beneath it
The optional check-in answers a heavy day with a smaller ask, not a lecture.

Decision 5

The agent proposes, the user disposes

The AI layer could easily have become the app: auto-scheduling, silent plan rewrites, a stream of nudges. For this audience that is exactly backwards. Trust is the scarce resource, and an agent that acts invisibly reads as one more system telling you what to do. So Beacon’s agent works under four rules, and each one is visible in the interface.

Proposed, not prescribed. Every AI output is a draft. The habit breakdown enters the plan only through the approve button, and every proposal can be shrunk, swapped for different habits, or edited. Reasoning on demand. Each proposed habit carries a plain-language “why this?” tied to the user’s own words, their goal and their named obstacle, never model jargon; it is one tap away, not forced into the flow. Honest provenance. The screen says plainly whether a proposal came from the live model or from the offline sample set. The embed at the end of this page runs on samples and says so; the repo ships a working Claude API integration behind the same approval UX, and no API keys ship to the browser. Visible, reversible autonomy. Everything the agent does on its own, filing brain dumps, spending a grace day, shrinking a habit after a heavy check-in, appears in a “done quietly, shown plainly” log, and every reversible action carries its undo.

The agent is measured by user outcomes, days invested toward the goal, not by engagement with the agent itself. Its success state is that you stop noticing it.

Beacon's habit breakdown with reasoning open: a Proposed, not prescribed kicker, an offline-mode provenance line, and a why-this panel explaining a proposal using the user's own obstacle
The proposal screen with reasoning open: every habit explains itself in the user’s own words, provenance is labeled, and nothing enters the plan without the approve button.
Beacon's agent log sheet titled Done quietly, shown plainly: a filed note with undo, an automatic grace day marked always on, and a suggested habit shrink with undo
The agent’s log: a filed note, an automatic grace day, a suggested shrink after a heavy check-in, and an undo beside every reversible action.

Outcome

This is a working prototype, not a shipped product, and this page will not pretend otherwise: there are no users yet, so there are no usage metrics.

What exists today: a working v1 covering the full happy path (onboarding, daily loop, missed-day re-entry, weekly review), an in-app support chat in the same shame-free voice, and an agentic layer that proposes habits with visible reasoning, labels whether responses are live or sample, and logs every automatic action with an undo. The public build runs on sample responses; the repo ships a working Claude API integration behind the same approval UX.

Beacon weekly review: Your week in bricks, with five of seven day dots filled in teal, celebration stats, and a progress bar toward the goal
The weekly review shows the pattern, not the gaps: rest days stay neutral, never red.
Beacon's in-app support chat sheet titled We're here, no rush: a supportive greeting, a question about grace days, and a reassuring answer in chat bubbles above quick-question chips
The in-app support chat: a real inbox in the same shame-free voice as the rest of the app. Responses are mocked in the prototype; a hosted chat service fronts it at launch.

What I’d measure at launch: day-30 retention against the category’s cliff; reactivation rate after a missed day, the number the forgiveness engine exists to move; median time from install to first completed action, with the design target under two minutes; and brain-dump capture usage, the leading indicator that the app is trusted as an external memory.

Where it goes next

The motivation engine (body doubling, novelty rotation, future-self nudges), real AI decomposition behind the onboarding, and a React Native build. Each addition gets tested against the five laws before it ships.

Try the prototype

This is the full v1 prototype, exactly as built, running in the page. Start at the welcome screen and click through: onboarding takes about two minutes, the demo clock runs fast on purpose, and nothing you do is saved. For a bigger window with shortcuts into each stage, open the prototype full screen.