<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Dmitry Rodygin</title>
    <description>The latest articles on DEV Community by Dmitry Rodygin (@dmitry_rodygin_f64c3285a1).</description>
    <link>https://dev.to/dmitry_rodygin_f64c3285a1</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4024354%2F2be93554-3a61-46a1-9793-4442c2fc43b8.png</url>
      <title>DEV Community: Dmitry Rodygin</title>
      <link>https://dev.to/dmitry_rodygin_f64c3285a1</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dmitry_rodygin_f64c3285a1"/>
    <language>en</language>
    <item>
      <title>I built an AI Neuro-Coach on FastAPI — here's what 60 cognitive trainers taught me about attention</title>
      <dc:creator>Dmitry Rodygin</dc:creator>
      <pubDate>Fri, 10 Jul 2026 17:22:10 +0000</pubDate>
      <link>https://dev.to/dmitry_rodygin_f64c3285a1/i-built-an-ai-neuro-coach-on-fastapi-heres-what-60-cognitive-trainers-taught-me-about-attention-57mo</link>
      <guid>https://dev.to/dmitry_rodygin_f64c3285a1/i-built-an-ai-neuro-coach-on-fastapi-heres-what-60-cognitive-trainers-taught-me-about-attention-57mo</guid>
      <description>&lt;p&gt;Two years ago I sat down with a stack of research on cognitive training and asked a stupid question: what if the twenty-year clinical protocol we ran in-person for professionals could live in a browser and coach itself?&lt;/p&gt;

&lt;p&gt;The result is &lt;strong&gt;&lt;a href="https://wow-brain.com?utm_source=dev.to&amp;amp;utm_medium=article&amp;amp;utm_campaign=founder-story"&gt;WoW Brain&lt;/a&gt;&lt;/strong&gt; — a neurocognitive OS with 60+ adaptive trainers, an AI Neuro-Probe that reads your state in the morning, and a Goal Atlas that turns a 3-year vision into today's next step. It runs on FastAPI + SQLite + Jinja + a lot of code review with Claude Opus.&lt;/p&gt;

&lt;p&gt;This post is not a launch announcement. It's what I actually learned from shipping cognitive training as a daily habit, from a technical and product perspective. If you're building anything AI-adjacent for real humans who need to come back tomorrow, some of these might save you a month.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Adaptive difficulty is a UX problem, not a math problem
&lt;/h2&gt;

&lt;p&gt;The academic literature on cognitive training is full of adaptive algorithms — 2-up-1-down staircases, Bayesian ability estimation, ELO-style tracking. I tried them. They work in the lab. They fail in the wild.&lt;/p&gt;

&lt;p&gt;Real users do not care about your algorithm's convergence rate. They care whether the session feels good. If the difficulty jumps too fast after two correct answers, they get frustrated and quit. If it stays flat when they're clearly bored, they never come back.&lt;/p&gt;

&lt;p&gt;What actually worked was a &lt;strong&gt;hysteresis model&lt;/strong&gt;: raise difficulty only after N correct answers in a row across a rolling window, and only if the current session accuracy is above a threshold. Drop difficulty faster than we raise it — one wrong answer costs three right ones. Users report the sessions as "always challenging but never demoralizing", which was exactly the outcome the papers promised but never quite delivered.&lt;/p&gt;

&lt;p&gt;The lesson: use the algorithm as a floor, not the whole system. Add rules that shape the human experience, even if they lose you a decimal point of statistical purity.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Evening ritual beats morning intent
&lt;/h2&gt;

&lt;p&gt;We started with a morning check-in — the classic "log your energy, get your training plan." Retention on day 7 was 40%. Not terrible, but not what we wanted.&lt;/p&gt;

&lt;p&gt;We added an &lt;strong&gt;Evening Ritual&lt;/strong&gt; — a two-minute reflection at the end of the day with an AI-guided prompt about what worked, what didn't, and what tomorrow needs. Retention on day 7 jumped to 68%.&lt;/p&gt;

&lt;p&gt;The reason isn't magical. Morning intent is fragile — you promise things you haven't paid for yet. Evening reflection is accountable — you're looking at what actually happened. And crucially, &lt;strong&gt;evening data tells the AI what to schedule tomorrow&lt;/strong&gt;. By the time morning arrives, the plan is already made. The user doesn't negotiate with themselves at 7 AM; they just open the app and follow the trail.&lt;/p&gt;

&lt;p&gt;If you're building a habit-formation product, ship the evening loop before the morning one. It compounds harder.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Willpower is the wrong metric — anticipation is right
&lt;/h2&gt;

&lt;p&gt;Every productivity app measures the wrong thing. Streaks, completion rates, time-in-app. All lagging indicators. The leading indicator we found: &lt;strong&gt;anticipation before opening the app&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;We measured it by asking one question after the third session: "How much did you look forward to opening WoW Brain today?" on a 1-7 scale. Users who scored 5+ had an 80% chance of being active in week 4. Users who scored 3 or below had 12%.&lt;/p&gt;

&lt;p&gt;You cannot engineer willpower. But you can engineer anticipation by making tomorrow's session personally relevant to today's state. That's where the AI Neuro-Probe earns its keep — every morning it says "based on yesterday's evening ritual, here's the training that will feel best today." Users describe it as "the app that seems to know what I need."&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Cognitive training as consumer software is a category error
&lt;/h2&gt;

&lt;p&gt;I want to be careful here because I care about the science. Cognitive training as a clinical intervention — protocols, dosages, outcome measures — is real and well-studied. Cognitive training as &lt;strong&gt;consumer software&lt;/strong&gt; competes with Netflix, not with peer-reviewed papers.&lt;/p&gt;

&lt;p&gt;Which means the technical stack has to earn attention like an entertainment product does, while delivering something entertainment can't: measurable change in a boring metric like sustained attention.&lt;/p&gt;

&lt;p&gt;Practically, this meant: micro-interactions matter more than the training design; the loading screen between exercises has to feel like anticipation, not friction; the daily summary has to look like a Spotify Wrapped, not a lab report. And underneath all of that, the trainer logic still needs to be clinically informed. It's a hard both/and.&lt;/p&gt;

&lt;p&gt;If your product involves someone doing something hard on purpose, every design decision is a fight against the frictionless alternative. You have to keep asking "would Netflix do this?" and if the answer is no, you probably shouldn't either.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. The AI part is smaller than you think, and more important
&lt;/h2&gt;

&lt;p&gt;Everyone asks about the AI. What model, how expensive, what prompts.&lt;/p&gt;

&lt;p&gt;Honest answer: the AI runs on DeepSeek and Claude. It's cheap. The Neuro-Probe uses a fine-tuned lightweight model that looks at the user's state (energy, stress, focus, sleep quality) and picks the next training block from a decision tree. That's 20% of the AI budget. The other 80% goes to something less glamorous: &lt;strong&gt;generating personal micro-content&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;When a user completes the "attention" trainer, the AI doesn't just say "well done." It writes a two-sentence note referencing what the user said in yesterday's evening ritual. It notices the user is fighting fatigue this week and suggests a shorter session. It rewrites the same daily nudge in 30 different tones so it doesn't feel automated.&lt;/p&gt;

&lt;p&gt;That personal-thread AI is what makes the product feel like a coach, not a training app. And it's boring technology. Structured prompts, a state cache, a fallback library for when the LLM is down. No magic.&lt;/p&gt;

&lt;p&gt;If you're building an "AI coach" of anything, spend 80% of your AI budget on continuity — remembering what happened yesterday and making today feel connected to it. That's the moat.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. The engineering choices that mattered
&lt;/h2&gt;

&lt;p&gt;For anyone technical who read this far:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;FastAPI + SQLite WAL&lt;/strong&gt; as the backbone. 15,000 daily active users on a single VPS. No premature scaling. Async SQLite via aiosqlite is more than enough for anything that's not real-time chat.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Jinja server-side rendering, not a SPA.&lt;/strong&gt; Faster first paint, better SEO, less state management. HTMX for the interactive parts of trainers. Users perceive it as an app because the trainers use canvas + JavaScript; the shell is server-rendered.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Every AI call is idempotent and cached.&lt;/strong&gt; Same prompt + same context = same response, always. Removed 40% of the LLM cost this way.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Neuro-Probe questionnaire is 8 questions, not 30.&lt;/strong&gt; We tested longer versions. Retention drops proportional to question count squared. Optimize the questionnaire, not the model.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try it or copy the ideas
&lt;/h2&gt;

&lt;p&gt;If any of this sounds useful for your own product, steal the ideas — they're not proprietary. If you want to see how the AI Neuro-Coach actually feels as a user, &lt;a href="https://wow-brain.com?utm_source=dev.to&amp;amp;utm_medium=article&amp;amp;utm_campaign=devto-cta"&gt;wow-brain.com has a 7-day free trial with no credit card&lt;/a&gt;. After the trial, the free tier stays available forever, so you can inspect the product without deadline pressure.&lt;/p&gt;

&lt;p&gt;Happy to answer technical questions in the comments — architecture, the training loop, the AI cost model, whatever's useful.&lt;/p&gt;

&lt;p&gt;And if you're building in the cognitive / attention / productivity space, please DM. I'd rather learn from your mistakes than repeat them.&lt;/p&gt;

</description>
      <category>python</category>
      <category>fastapi</category>
      <category>ai</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
