/* Loops — "Train for Something With ADHD" use-case page Wellbeing guardrails: no performance/finish-time promises, no injury or medication advice, Loops positioned alongside a training plan, overtraining acknowledged not glorified. */ /* ---------------- Page nav (links back to the homepage) ---------------- */ const TRN_NAV_LINKS = [ { label: "Why it happens", href: "#why" }, { label: "How it works", href: "#how" }, { label: "Questions", href: "#faq" }, { label: "For ADHD", href: "/adhd/#directory" }, { label: "Knowledge Hub", href: "/adhd/knowledge-hub/" }, { label: "Blog", href: "/blog/" }, ]; const TrnNav = () => { const [open, setOpen] = React.useState(false); const [scrolled, setScrolled] = React.useState(false); React.useEffect(() => { const onScroll = () => setScrolled(window.scrollY > 8); onScroll(); window.addEventListener("scroll", onScroll, { passive: true }); return () => window.removeEventListener("scroll", onScroll); }, []); React.useEffect(() => { if (!open) return; const onKey = (e) => e.key === "Escape" && setOpen(false); document.body.style.overflow = "hidden"; document.addEventListener("keydown", onKey); return () => { document.body.style.overflow = ""; document.removeEventListener("keydown", onKey); }; }, [open]); return (
Loops
); }; /* ---------------- Hero ---------------- */ const TRN_HERO_BLOCKS = [ { title: "Keep the next session visible", body: "One clear prompt so today's training doesn't get swallowed by the day.", icon: (), }, { title: "Restart without shame", body: "Missed session is data point. Loops gives you next step, not a slate to rebuild.", icon: (), }, { title: "Make the start line real", body: "A system built for imperfect training blocks, not perfect ones.", icon: (), }, ]; const TrnHero = () => (
Designed for ADHD. Works for everyone.

You signed up. You meant it. So why does the training keep falling apart?

It's not a motivation problem. For people with ADHD, training plans fail for structural reasons that willpower was going to fix.

Loops is a daily coaching app for people with ADHD. It keeps the next session visible, takes the shame out of a missed one, and, if you want it, gives you one person who's in it with you all the way to the start line.

Free for 7 days. No complicated setup. On iOS for now.
{/* Three icon blocks */}

Three things Loops does for you

{TRN_HERO_BLOCKS.map((b) => (
{b.icon}

{b.title}

{b.body}

))}

Loops is a daily coaching app for people with ADHD.

); /* ---------------- What Loops does ---------------- */ const TrnWhatLoopsDoes = () => (
How Loops helps

A daily system that survives the weeks you didn't.

Most training plans are built for someone with reliable self-regulation, consistent energy, and a linear relationship with motivation. That's not most people with ADHD.

Loops gives you specific, low-friction actions each day. It keeps the goal visible when it feels abstract, helps you restart after a bad week, and coaches you through the moments when the plan usually breaks down.

Then it adds the part most apps leave out. One person who sees you doing it. More on that just below.

); /* ---------------- Recognition (6 cards) ---------------- */ const TRN_RECOGNITION = [ "You spent hours building the perfect training plan. Then you missed Tuesday, and somehow that was the end of it.", "You know the goal matters to you. But by Wednesday, race day feels too far away to feel real.", "The easy sessions are the hardest. A recovery run at conversational pace feels almost impossible to complete without surging.", "One missed session becomes two. Two becomes a shame spiral. Before you know it, you're wondering whether to pull out.", "You had a brilliant first three weeks. Then something came up, the plan broke, and starting again from scratch felt unbearable.", "You know training helps your ADHD. You know you feel better when you do it. That doesn't make it any easier to stay consistent.", ]; const TrnRecognition = () => (
Does any of this sound familiar?

You're not alone in this.

These are the patterns people with ADHD describe most often when it comes to training for an event.

{TRN_RECOGNITION.map((t, i) => (

{t}

))}

None of this means you're not a runner, a cyclist, or an athlete. It means you need a system built for how your brain actually handles long goals.

); /* ---------------- Why it keeps happening (6 breakdown points) ---------------- */ const TRN_PATTERNS = [ { title: "Goal-to-plan collapse", body: "Race day is compelling. Tuesday's tempo run is not. ADHD brains discount future rewards steeply, which means the emotional pull of the finish line fades fast once daily training starts." }, { title: "Session initiation", body: "Knowing you have a run at 6pm and actually starting it are two different problems. Without a prompt that reaches you at the exact moment of action, good intentions get negotiated away on the sofa." }, { title: "Boredom in low-stimulation work", body: "Easy runs are hard. Not physically. Mentally. Long, steady efforts at a controlled pace ask the brain to stay engaged with low reward for a sustained period, which is exactly what ADHD makes unreliable." }, { title: "All-or-nothing relapse", body: "One missed session shouldn't end the block. For many people with ADHD, it does. Emotional dysregulation turns a skipped run into evidence of failure, and shame makes the next session harder to start, not easier." }, { title: "Impulsive overreach", body: "The training problem isn't always avoidance. Sometimes it's going too hard, too often. Boredom on easy days, compensatory surges after missed sessions, and obsessive plan-building can all destabilise a training block just as reliably as avoidance." }, { title: "Energy and timing mismatch", body: "A training plan designed for 6am doesn't work for a brain that isn't ready until noon. Sleep disturbance and delayed body clocks are common in ADHD and can quietly undermine morning session consistency throughout an entire training block." }, ]; const TrnWhyItHappens = () => (
Understanding the pattern

It's not a commitment problem. It's a structure problem.

Training blocks are hard for ADHD brains for specific, well-documented reasons. None of them are about how much you want it.

    {TRN_PATTERNS.map((p, i) => (
  1. {String(i + 1).padStart(2, "0")}

    {p.title}

    {p.body}

  2. ))}

Loops is built around all six of these failure points, not just the most obvious one.

); /* ---------------- Overreach reframe (unique to this page) ---------------- */ const TrnOverreach = () => (
Something worth knowing before you try again

Not every ADHD training failure looks like giving up.

Most advice for ADHD and exercise assumes the problem is avoidance: not starting, not showing up, not trying. But a significant number of people with ADHD fail their training blocks in the opposite direction.

They turn easy runs into efforts. They build elaborate plans and then can't sustain the ordinary version. They compensate for a missed session with something so ambitious it breaks the next week too. If you recognise that pattern, it's worth naming: the problem wasn't a lack of commitment. It was a system that couldn't protect you from your own enthusiasm on the wrong days.

); /* ---------------- The part most apps miss (being seen) ---------------- */ const TRN_WITNESS_CARDS = [ { t: "All they have to do is see it", b: "When you close a loop, they see it. When you get back to it after a missed week, they see that too, and it's no big deal. They just get to watch you keep showing up, all the way to the start line." }, { t: "They don't manage you", b: "They don't nag or remind you. They don't check your splits or tell you what to do. And they don't even need to pay. Their side is light on purpose." }, { t: "You're always in control", b: "You choose who it is. You decide what they can see, and you can change it any time." }, { t: "They keep the finish real", b: "When race day still feels far away, one person who's in it with you is what keeps it feeling real." }, ]; const TrnWhyLoopsWorks = () => (
The part most apps miss

Brains finish for people, not for apps.

A training block is weeks of ordinary sessions for a day that still feels unreal. When race day is abstract and Tuesday's run is not, it's easy to let a session slide, and easy to let one slide become the end of the block.

So Loops adds the one thing that reliably keeps ADHD brains going. Another person.

You choose one person you trust. Your partner, a friend, someone you're training alongside, whoever it is. When you close a loop, they see it. When you get back to it after a missed week, they see that too, and it's no big deal. You decide what they can see, and you can change it any time.

This is the step most people skip with other apps. It's also the one that makes Loops work.

{TRN_WITNESS_CARDS.map((c) => (

{c.t}

{c.b}

))}

You can start on your own if you'd rather. It still works. It just works better when someone can see you.

); /* ---------------- How it works (5 steps) ---------------- */ const TRN_STEPS = [ { t: "Tell Loops what you're training for", b: "Name your event and your timeline in plain language. No complicated onboarding. No rebuilding a plan you've already got." }, { t: "Choose your person", b: "Pick one person you trust to see your progress. You decide what they can see, and you can change it any time. This is the step most people skip with other apps, and the one that makes Loops work. On a Crew plan you can choose more than one, which suits a group training for the same event." }, { t: "Get small daily actions", b: "Each day, Loops gives you specific, low-friction prompts. It fits around your training plan and shows up when initiation is hardest. Close the loop, and your person sees it." }, { t: "Get coaching through the hard moments", b: "Missed a session? Hit a wall mid-block? Loops gives you a clear, practical next step, not a reset that makes you feel further behind." }, { t: "Arrive at the start line", b: "A training block with Loops isn't about a perfect log. It's about staying in it long enough to get there." }, ]; const TrnHowItWorks = () => (
Getting started

Simple from race sign-up to start line.

You don't need to rebuild your training from scratch. Loops works alongside whatever you're training for.

    {TRN_STEPS.map((s, i) => (
  1. {i + 1} Step {i + 1}

    {s.t}

    {s.b}

  2. ))}

You don't need a clean week to start. You just need the next session.

); /* ---------------- What's inside Loops (5 parts) ---------------- */ const TRN_WHATS_INSIDE = [ { t: "One goal, with a finish line", b: "Your event and your date, in your own words. Here the finish line is literal: it's real, and it's on the calendar. Loops keeps it visible for the weeks when race day still feels too far away to feel real." }, { t: "Loops that fit your life", b: "A loop is one small, repeating action, at a pace you choose. Some run every day, some a few times a week: start today's session, keep the easy run easy, lay your kit out the night before. A few connect to your training. Others are just life, like taking your meds before breakfast. A missed session is just a data point. Loops gives you the next step, not a clean slate to rebuild." }, { t: "Your person", b: "The one you choose to see your progress: the loops you close and the times you get back on after a missed week. Support, without the nagging. On a Crew plan it can be more than one: your people, which suits a group training together." }, { t: "Rewards you can feel", b: "Promise yourself something for the moments that matter: the first week you got back on after a bad one, the longest session done, the start line reached. Loops holds the promise and calls it in when you've earned it, and your person gets to see it too." }, { t: "A coach who knows your whole story", b: "An AI coach built for ADHD. It already knows your event and where your blocks tend to break, so there's no re-explaining yourself from the start. No booking, no waiting room. It's there at 6pm, when the run is negotiable and the sofa is winning." }, ]; const TrnWhatsInside = () => (
What's inside Loops

Five simple things, working together.

{TRN_WHATS_INSIDE.map((p, i) => (
{String(i + 1).padStart(2, "0")}

{p.t}

{p.b}

))}
); /* ---------------- Social proof ---------------- */ const TRN_TESTIMONIALS = [ { quote: "I'd abandoned four training plans before I finished a race. The difference with Loops wasn't the training itself. It was having something that still knew what the next step was after I'd had a terrible week.", who: "Amateur triathlete", meta: "Diagnosed with ADHD at 31" }, { quote: "I kept turning my easy runs into hard efforts and then wondering why I was exhausted. Loops helped me actually do the boring sessions. That sounds small but it completely changed how the block went.", who: "Recreational cyclist", meta: "Using Loops for 8 weeks" }, { quote: "I'd always assumed I just wasn't the type of person who finishes things. I've now done two half marathons. The training wasn't perfect either time. But I got to the start line.", who: "Teacher and runner, London", meta: null }, ]; const TrnSocialProof = () => (
What people say

From people who recognise themselves in this.

{TRN_TESTIMONIALS.map((t, i) => (
{t.quote}
{t.who}
{t.meta ?
{t.meta}
: null}
))}
); /* ---------------- Pricing ---------------- */ const TRN_PRICING = [ { name: "Solo", price: "\u00A39.99", per: "/mo", tag: null, blurb: "Everything: your goal, loops, progress, rewards and coach. Just you and the training.", featured: false }, { name: "Duo", price: "\u00A312.99", per: "/mo", tag: "The one we'd pick", blurb: "Everything, for two. You and your person, both with the full app, on one bill. Three pounds more than going alone, for the thing that makes it work.", featured: true }, ]; const TrnPricing = () => (
Pricing

Better with your person. Built for it.

{TRN_PRICING.map((p) => (
{p.tag ? {p.tag} : null}

{p.name}

{p.price} {p.per}

{p.blurb}

))}

Prefer to pay yearly? A year of it, together, with two months free. Every plan starts with a 7-day free trial. On iOS for now.

); /* ---------------- Objections (5) ---------------- */ const TRN_OBJECTIONS = [ { q: "\u201CI've tried training plans before and always quit.\u201D", a: "That's the most common thing people say before they try Loops. Standard training plans don't account for the specific ways ADHD disrupts consistency. Loops is built for the pattern you're describing, not against it." }, { q: "\u201CDo I have to share my progress with anyone?\u201D", a: "No. Solo works perfectly well on its own. But most people find it works better when one person can see them. You decide what your person sees, and you can change it any time. You can add them whenever you're ready." }, { q: "\u201CWhat if I'm not diagnosed?\u201D", a: "You don't need a diagnosis. Many people using Loops are on waiting lists, self-identifying, or simply recognise that the patterns here feel familiar. If that's you, Loops is built for you." }, { q: "\u201CI don't want another app telling me what to do.\u201D", a: "Loops gives you one thing. Not a dashboard. Not a streak to protect. One daily action, delivered when you need it. You decide whether to act." }, { q: "\u201CWhat if my event is only a few weeks away?\u201D", a: "Start now, not when conditions are perfect. Loops works with whatever block you have left. Even four weeks of better-supported training is more than four weeks of managing it alone." }, ]; const TrnObjections = () => (
A few things worth knowing

Common questions before you start

{TRN_OBJECTIONS.map((o) => (

{o.q}

{o.a}

))}
); /* ---------------- FAQ accordion ---------------- */ const TRN_FAQS = [ { q: "What is Loops?", a: "Loops is a daily coaching app for people with ADHD and anyone building better habits. It combines personalised coaching, daily micro-actions, one person who sees your progress, and accountability in one system. For training specifically, it helps with session initiation, consistency through a block, and recovery after missed sessions." }, { q: "Who is 'your person', and do I need one?", a: "Your person is the one you choose to see your progress. When you close a loop or get back on after a missed week, they see it. They don't manage you or nag you. They just get to watch you keep showing up, all the way to the start line. You don't have to add one to start, but it's the part that makes Loops work, so we'll gently encourage it when you're ready. On a Crew plan it can be more than one: your people." }, { q: "How does Loops help with training if you have ADHD?", a: "It gives you one low-friction prompt each day rather than leaving you to manage the plan alone. It also coaches you through the moments when training usually breaks down: the missed session, the bored easy run, the week where everything fell apart." }, { q: "Why do people with ADHD struggle to follow training plans?", a: "The barriers are structural. Distant race-day rewards are hard for ADHD brains to use as day-to-day motivation. Session initiation is an executive function challenge. Boredom in low-stimulation training is a real problem. And one missed session can trigger shame that ends the whole block. None of this is about how much someone wants it." }, { q: "Do I need an ADHD diagnosis to use Loops?", a: "No. Loops is designed first for people with ADHD but doesn't require a formal diagnosis. If the experiences described here feel familiar, Loops is built for you." }, { q: "Can Loops replace a training plan or coach?", a: "No. Loops works alongside your training plan, not instead of it. It helps with the consistency and coaching layer, not the physiological design of your programme. A coach or structured plan is still a good idea if you have access to one." }, { q: "What if I miss several sessions in a row?", a: "That's built into the design. Loops doesn't treat a missed week as a failure state. The next daily action is still there, and it's still designed to be the smallest useful step." }, { q: "Is Loops available in the UK?", a: "Yes. Loops is available across the UK and is designed around UK contexts and guidance." }, { q: "What kind of events can I use Loops to train for?", a: "Loops is designed around any goal with a timeline: running, cycling, swimming, triathlon, team events, gym-based targets. If you've signed up for something and need help staying in the training block, Loops is built for that." }, ]; const TrnFAQItem = ({ q, a, defaultOpen }) => (
{q}

{a}

); const TrnFAQ = () => (
FAQ

Questions people often ask

Still wondering if Loops fits how your brain works? Contact us. A real person will reply.

{TRN_FAQS.map((f, i) => )}
); /* ---------------- Final CTA ---------------- */ const TrnFinalCTA = () => (
Get to the start line

The start line is worth getting to.

You don't need a perfect training block. You need one that doesn't fall apart when things go wrong, and it helps to have one person who's in it with you.

Free for 7 days. No complicated setup. On iOS for now.
); /* ---------------- Sources ---------------- */ const TRN_SOURCES = [ { t: "Attention deficit hyperactivity disorder: diagnosis and management — NICE", u: "https://www.nice.org.uk/guidance/ng87/chapter/recommendations" }, { t: "Physical exercise as add-on treatment in adults with ADHD, the START study: a randomised controlled trial — Frontiers in Psychiatry", u: "https://www.frontiersin.org/journals/psychiatry/articles/10.3389/fpsyt.2025.1690216/full" }, { t: "A Systematic Review and Meta-Analysis — PubMed", u: "https://pubmed.ncbi.nlm.nih.gov/38145491/" }, { t: "Marathon and ADHD — r/Marathon_Training", u: "https://www.reddit.com/r/Marathon_Training/comments/194rhq5/marathon_and_adhd/" }, { t: "Evidence of emotion dysregulation as a core symptom of adult ADHD — PubMed", u: "https://pubmed.ncbi.nlm.nih.gov/36608036/" }, { t: "Association of symptoms of attention-deficit/hyperactivity disorder — PubMed", u: "https://pubmed.ncbi.nlm.nih.gov/25214027/" }, { t: "Sleep disorders in patients with ADHD: impact and management — PubMed", u: "https://pubmed.ncbi.nlm.nih.gov/30588139/" }, { t: "How Do You Stay Consistent at the Gym with ADHD? — r/ADHD", u: "https://www.reddit.com/r/ADHD/comments/1j5ca6y/how_do_you_stay_consistent_at_the_gym_with_adhd/" }, { t: "Those of you who workout regularly, how do you manage to stay consistent? — r/ADHD", u: "https://www.reddit.com/r/ADHD/comments/1f32ckp/those_of_you_who_workout_regularly_how_do_you/" }, { t: "Attitudes and preferences toward exercise interventions in adults with ADHD — King's College London", u: "https://kclpure.kcl.ac.uk/portal/en/publications/attitudes-and-preferences-toward-exercise-interventions-in-adults/" }, { t: "ADHD, Executive Functioning and Self-Regulation — Russell Barkley", u: "https://www.russellbarkley.org/factsheets/ADHD_EF_and_SR.pdf" }, { t: "7 Tips for Staying Consistent at the Gym with ADHD, According to an ADHD Psychologist — Verywell Mind", u: "https://www.verywellmind.com/working-out-with-adhd-11700238" }, { t: "Tips for a newbie with ADHD? — r/XXRunning", u: "https://www.reddit.com/r/XXRunning/comments/1jhexqm/tips_for_a_newbie_with_adhd/" }, { t: "People with ADHD, how do you remain consistent? — r/bodyweightfitness", u: "https://www.reddit.com/r/bodyweightfitness/comments/1puli17/people_with_adhd_how_do_you_remain_consistent/" }, { t: "Behavior Change Techniques Improve Adherence to Physical Activity — PMC", u: "https://pmc.ncbi.nlm.nih.gov/articles/PMC10024875/" }, { t: "Exercise Dependency and Overuse Injuries in Attention-Deficit/Hyperactivity Disorder — PubMed", u: "https://pubmed.ncbi.nlm.nih.gov/38412245/" }, { t: "Effects of Physical Activity, Exercise and Sport on Executive Function in Adults Diagnosed with ADHD: A Systematic Review — MDPI", u: "https://www.mdpi.com/2673-5318/6/4/120" }, { t: "Time Perception in Adult ADHD: Findings from a Decade — PubMed", u: "https://pubmed.ncbi.nlm.nih.gov/36833791/" }, ]; const TrnSources = () => (
Our sources

Where this comes from

This page draws on research into ADHD, exercise adherence, executive function, and real accounts from people training for races and events. Here's where it comes from.

    {TRN_SOURCES.map((s, i) => (
  1. {s.t}
  2. ))}

Loops is a daily coaching app, not a medical or clinical service. These sources inform how we think about ADHD and training; they are not an endorsement of Loops by their authors.

); /* ---------------- App ---------------- */ function TrnApp() { return (
); } const trnRoot = ReactDOM.createRoot(document.getElementById("root")); trnRoot.render();