Where I Started
My original definition statement described a mobile app for ADHD task management. The idea was to help people like me break overwhelming goals into bite-sized tasks, show one thing at a time in a focus view, and use AI to suggest concrete next steps. I planned to build it in React Native, test with 3-5 students, and have a working prototype by May.
I built it. But not in React Native, and the project went somewhere I didn’t expect.
What I Actually Built
The app is called LevelUp. I built it as a fully native iOS app in Swift and SwiftUI, which was a significant departure from the original plan. React Native felt like the safe choice when I wrote the definition statement, but once I started learning Swift, I realized native development gave me access to iOS-specific APIs (HealthKit, WidgetKit, the Screen Time framework) that would be impossible or painful to use through a cross-platform layer. That decision turned out to matter a lot.
LevelUp does what my definition statement described, as I imagined it. First, it pulls real assignments from Canvas LMS through their REST API, and uses Gemini AI to break vague tasks into concrete steps. Then, it shows one task at a time so your brain doesn’t shut down looking at a giant list. I built a custom design system with Satoshi typography, SwiftData persistence, WidgetKit widgets for the home and lock screen, and Keychain-based authentication. It’s functional and going on TestFlight.
The build plan from my definition statement was five phases over about eight weeks. I followed that structure loosely, but the actual process was messier. Learning Swift from scratch took longer than expected, and some phases collapsed into each other because I’d solve two problems at once while debugging a third. Phase 3 (AI task breakdown) and Phase 4 (reward loop and polish) ended up happening in parallel rather than sequentially.
What I Learned That Changed the Project
Using my own app taught me something the definition statement didn’t anticipate. On days when my executive function was working, LevelUp was great. I’d open it, see the next task, get moving. But on the days it mattered most, the days where I slept badly or my stress was high or a deadline was looming, I didn’t open it. I didn’t open anything. I’d reach for TikTok or YouTube or just sit there cycling between apps. The cognitive crash happened before any tool could help, because by the time I needed the tool, I’d already lost the ability to reach for it.
This is the core problem with every ADHD app on the market, including the one I just built. They all assume you can manage yourself well enough to open a management tool. For the people who need help the most, that assumption is broken.
The Pivot
That realization changed what I’m building for the rest of Fusion. The project is now called Vigil, and it’s a predictive cognitive prosthetic for ADHD that runs on your iPhone.
Vigil sits in the background and collects passive data from three sources. Your body, through Apple HealthKit: sleep quality, heart rate variability, physical activity. Your behavior, through Apple’s Screen Time API: app-switching frequency and usage patterns. And your obligations, through Canvas LMS: upcoming deadlines and assignment weights. It combines those signals into a cognitive risk score from 0 to 100.
When the score is low, Vigil stays quiet. A green widget on your lock screen. When the score crosses into dangerous territory, Vigil intervenes. It pulls your most urgent assignment from Canvas, uses AI to break it into a 15-minute sprint, and surfaces it through Dynamic Island so it’s visible without being intrusive. The goal is to give your brain something small enough to start, timed to the window where you still have enough capacity to engage.
I didn’t come up with this out of nowhere. I read the digital phenotyping research. A 2023 study used passive smartphone data (screen unlocks, app usage, movement) to predict ADHD inattention severity with an F1 score of 0.75. Physiological signals hit 81.6% accuracy on ADHD state detection using a random forest classifier. The data is there. The prediction works. Nobody has turned it into a consumer product.
I also ran my own research to validate part of this. I designed a benchmark study testing whether LLM task decomposition improves when you condition it on ADHD cognitive profiles. 288 decompositions, 6 judge models from 6 families, 5 scoring metrics, 3 seeds. The finding: ADHD conditioning changes where quality lands across metrics, but it’s not a free win. High-support profiles improve initiation friction at a completeness cost. That tradeoff is exactly the kind of thing Vigil’s sprint system needs to handle well, and now I have data on how to do it.
Updated Build Plan (Through May 1)
The original five-phase plan is replaced with a tighter four-week sprint:
Week 1 (April 7-13): HealthKit background delivery for sleep, HRV, and activity data. Screen Time monitoring through DeviceActivityMonitor. Build the rules-based prediction engine that combines signals into a composite risk score.
Week 2 (April 14-20): Canvas LMS integration (reusing the code from LevelUp). Dynamic Island and Live Activities for intervention delivery. Connect the prediction engine to the intervention surface so a high risk score triggers a sprint suggestion.
Week 3 (April 21-27): WidgetKit ambient state display (lock screen and home screen showing current risk level). Background task scheduling through BGTaskScheduler so prediction checks run every 15-30 minutes. Polish the full loop: data collection, prediction, intervention, sprint.
Week 4 (April 28-May 1): End-to-end testing on a real device. Record demo. Prepare Fusion presentation materials.
What’s Different From the Definition Statement
The original plan was a task manager that helped you break things down and focus. That’s what LevelUp is, and it works. But the real problem turned out to be upstream of task management entirely. Vigil is an attempt to solve that upstream problem: predicting when your executive function is about to fail and stepping in before you lose the ability to help yourself.
The technical stack changed (React Native to native Swift). The scope got more ambitious (task management to cognitive prediction). And the core insight shifted from “ADHD users need better task tools” to “ADHD users need a system that doesn’t require them to initiate the help.” That last part is what I’m most interested in proving by May 1.
Key Takeaways
Building LevelUp was the right first step, because I wouldn’t have understood the real problem without using my own product. The pivot feels risky since I’m starting a harder project with less time. But the research supports the approach, the iOS APIs I need are accessible, and the LevelUp codebase gives me a head start on Canvas integration and AI task decomposition. This change in project has let me refocus on solving the bigger issue that nobody’s been looking at.
Leave a Reply