
Autonomic: A Native Long COVID & POTS App, Built With AI
A private, offline-first iOS and Android app for tracking Long COVID and POTS recovery, built entirely with Claude and shipped to both app stores in one week.
2026 / Founder / conceived, designed, engineered and shipped outside of work, with Claude as the engineering team
I have Long COVID and dysautonomia, so I built the app I needed. Autonomic captures HRV from a chest strap, phone camera or Apple Watch, runs the full signal-processing pipeline on-device, and scores every reading against medical thresholds. Solo and outside of work, one week from first commit to both app stores, with Claude writing the code. AI made the code fast; it did not make the decisions fast. Three years of living with this condition is what told the model what it was allowed to claim. 100 users in week one, no marketing.
01Context & StakesRead moreHide
Dysautonomia doesn't show up on your face, and it doesn't show up on most standard lab work either, which is why so many people spend years being told everything is normal while their body malfunctions daily. But there is a second layer to that invisibility that gets talked about less: you can't see the recovery either.
Recovery moves in months. You live it in days, and the days are noisy. A rough morning after three good weeks feels like proof that nothing is working, even when the underlying trend is still climbing.
One morning's reading can't answer that. The day-to-day noise is larger than the recovery signal, so every metric is charted against your own rolling baseline: the line underneath, not today's number.

"You can't see your nervous system. But it is measurable, and measured honestly, it becomes something you can watch."
I had already been answering that question for myself for three years, in a web app I built for my own use. It worked, and it is a large part of how I got to a much better place than I had been in for years. But it was mine alone: no live capture, no watch, nothing anyone else could install.
When I looked at what existed for everyone else, the gap was obvious. Visible owns pacing but requires a $160/yr proprietary armband. Bearable owns generalist symptom journaling with no HRV at all. Welltory is moving upmarket toward a general "AI health companion." The condition-specific apps are free hobby projects. Every serious competitor is cloud-first.
That leaves an empty cell: measurement-grade, condition-first, software-only, affordable and genuinely private. And privacy is not a nice-to-have for this audience. For people with real disability-insurance and employment anxieties, "no account, no cloud, and I can't lose or sell your data because I never have it" is a first-order feature. Nobody was saying it.
02Problem → InsightRead moreHide
Every architectural decision traces back to a specific failure of the tools I had been using on myself.
| Problem | Insight |
|---|---|
| A single morning HRV number tells you almost nothing, because the day-to-day noise is larger than the recovery signal. | Chart every metric against a personal rolling baseline, not a population average. The job is to show the line underneath the noise, not today's reading. |
| Consumer wearables give you a proprietary "readiness" score with no way to see the reasoning, and the thresholds move when the vendor updates their model. | Score against published medical thresholds and show the grade bands on the chart. If a user cannot see why a reading graded the way it did, the score is worthless to them and to their doctor. |
| Every competitor requires an account and syncs to a cloud, which is a real risk to an audience worried about insurance and employment. | No backend at all. One JSON document on-device, exportable as a single file. Privacy becomes structural rather than a policy promise. |
| "How do I show my doctor this is real?" is a weekly thread in every patient community, and no app answers it well. | The doctor report is the wedge, not a feature. Months of scored, trended data compiled into something a clinician will actually read in the eight minutes they have. |
| Chest straps are the accurate way to capture HRV, but requiring hardware puts a wall in front of the people who most need the tool. | Support the strap for accuracy, but also camera PPG and Apple Watch, so the app is useful on day one with nothing but the phone already in your hand. |
03Building It With AIRead moreHide
This is the part that matters most for how I work now. The native app went from an empty directory to a store-ready build in a week, and every commit is co-authored by Claude. I did not write it by hand. What I did instead was considerably harder, and considerably more valuable.
The method that made it work is the same one I have been pushing at Realtor.com: define the structure and the standards in code, then have the model mimic them. Nothing about this is "describe an app and accept what comes out." The leverage comes from being extremely opinionated about the skeleton and then letting the model fill it in at a speed no human team can match.
- A living architecture document. The repo carries a project brief describing the state shape, the invariants and the conventions in enough detail that any session starts fully oriented. When a rule got violated twice, the fix was to write the rule down better, not to correct the output again.
- Invariants encoded as guardrails, not instructions. Every mutation flows through a single
save(). Waveform arrays are physically forbidden from the journal blob, with a dev-build warning that fires if one ever leaks in. The constraint enforces itself, so neither I nor the model can quietly break it at 1am. - Tests as the specification. The scoring framework is the product, because the thresholds ARE the value. It was ported verbatim from my web app, with unit tests asserting that known inputs produce the exact same categories. That suite is what let me refactor aggressively without ever wondering whether the grades had drifted.
- Review at the level of intent. My job shifted almost entirely to "is this the right design, is this honest about uncertainty, does this correctly handle the case where the strap slips." I stopped reviewing syntax and started reviewing judgment.
- Match the model to the task. Heavier reasoning models for the DSP pipeline and the state architecture; faster ones for UI work and mechanical refactors.
The honest caveat: AI made the code fast, but it did not make the decisions fast. Three years of living with the condition is what told me that box breathing and 4/7/8 had to be retired because they flatten RSA and break day-to-day comparability, and that "physiological age" had to be deleted because it is a device-proprietary estimate not derivable from an RR series. None of that got faster. Domain judgment is still the bottleneck, and it is still entirely mine.
04Approach & ExecutionRead moreHide
The core bet was to build the hardest, least-fakeable thing first. If the HRV pipeline could not produce numbers I would trust about my own health, nothing else in the app was worth building.
- Port the scoring engine verbatim. Start from thresholds I had already validated on myself over three years, with tests locking them in place. No threshold was quietly "fixed" during the port, even where one looked odd.
- Prove the signal chain. Get real RR intervals off a Bluetooth strap, through artifact correction, into time-domain, frequency-domain and coherence metrics, all on-device, before building a single screen around them.
- Lower the hardware barrier. Add Apple Watch and camera PPG as capture sources once the pipeline was trustworthy, so the app works with nothing but a phone.
- Go wide only after the core was solid. The SwiftUI watch app, home-screen widgets, Health Connect parity on Android and the AI report builder all came after the measurement core was tested and stable.
- Ship to both stores. Real review processes, real entitlements, real IAP, real Android minification. The unglamorous work that separates a demo from a product.
05Design & Technical HighlightsRead moreHide
Every layer was chosen to keep the app trustworthy, private and fast on hardware I do not control.
| Layer | Choice | Why it mattered |
|---|---|---|
| Signal processing | Full HRV pipeline on-device: artifact correction, time-domain, Welch FFT frequency-domain, coherence, Poincaré SD1/SD2, PNS/SNS composites and the Baevsky stress index. | Measurement-grade output with zero data leaving the phone. Every RR interval deviating from a local moving median is flagged and interpolated; the reading reports an artifact percentage and refuses to grade above roughly 30% rather than produce fake numbers. |
| Capture | Bluetooth chest strap (raw 0x180D / 0x2A37 RR parsing), Apple Watch, and phone-camera PPG. | Accuracy when you have hardware, accessibility when you do not. Camera PPG required real work to be honest: beats found while the signal does not read as a pulse are discarded, and metrics never reason across dropouts. |
| Persistence | One JSON document in MMKV, with capture waveforms in a sidecar store keyed by entry id. | The journal blob stays small no matter how many sessions accumulate, and export stays a single portable file. |
| Platform | Expo / React Native for both platforms; HealthKit on iOS, Health Connect on Android behind one API. | One codebase, honest platform differences. Watch, ECG and mindfulness surfaces are iOS-only and hidden rather than faked on Android. |
| Native | SwiftUI watchOS companion (HR monitor, guided POTS stand test, real-time episode capture) plus home-screen widgets on both platforms. | The moments that matter in dysautonomia happen away from the phone: on the stairs, standing up, mid-flare. The watch catches them as they happen. |
| Scoring | Published medical thresholds with visible grade bands, unit-tested against known inputs. | A user and their clinician can both see why a reading graded the way it did. That transparency is the entire credibility argument. |
| Intelligence | On-device correlation analysis (Pearson over at least 14 days, |r| of 0.3 or greater) feeding an AI report builder. | Turns months of noise into "here is what actually correlates with your bad days", and into a document a doctor will read. |
06ImpactRead moreHide
Autonomic is live on the App Store and Google Play, now at version 1.18, with a free journal tier and a Pro subscription at $7.99/mo or $49.99/yr.
| Dimension | Detail |
|---|---|
| Timeline | First commit to both stores in one week |
| Platforms | iOS and Android, plus a watchOS companion and home-screen widgets |
| Week one | 100+ downloads with no marketing and no ad spend |
| Infrastructure | None. No backend, no account, no cloud storage |
It is early, and 100 downloads is a first week, not a business. What makes it worth reporting is that every one of them arrived with zero marketing, purely from store search in a category where the competing terms are contested only by hobby projects. That is the signal I was testing for, and it says the positioning is right even before any of the real distribution work has started.
The result I care about most is not commercial anyway. I use it every day, on my own recovery. That is a much harder quality bar than a launch metric, and it is the reason the app refuses to grade a noisy reading instead of guessing.
07What This Proved About AI-Native DeliveryRead moreHide
I lead AI adoption for a large front end organization, and I am wary of the genre of claim this project sits inside. So here is what I think Autonomic actually demonstrates, stated carefully.
- The constraint has moved. Implementation speed is no longer what limits a small team. Architectural clarity is. The week was spent deciding things, not typing them.
- Guardrails beat instructions. Every convention I encoded structurally, such as one
save()path, a forbidden data shape with a runtime warning, or tests pinning the scoring thresholds, held. Every convention I only described in prose eventually drifted. That is the single most transferable lesson. - Verification is the new bottleneck, and it is domain-specific. A model will happily produce an HRV pipeline that looks entirely correct and silently reasons across a dropout. Catching that took knowing the physiology, not reading the diff.
- Prior art is an enormous multiplier. A week was only possible because three years of my own use had already settled the hard product questions. The thresholds, the scoring weights and the daily loop were decided long before the first commit.
- Scope that was previously irrational is now reachable. A SwiftUI watch app, widgets, two health platforms and a DSP pipeline would each have been a quarter of work for a team. Being able to say yes to all of them changed what the product could be.
A guided POTS stand test, running entirely on the watch: lie still, stand on cue, hold position while it tracks the rise, and get a scored result written straight back into the journal. A SwiftUI companion doing real protocol work like this would once have been its own quarter for a team. It shipped inside the same week as the phone app.





This is the same operating model I brought to Oracle and the AI SDUI Studio, run without a safety net: define the structure and standards in code, then move at a speed that used to require a team. Autonomic is where I proved to myself it holds all the way to a shipped, paid, store-approved product.
08Risks & MitigationsRead moreHide
| Risk | How it showed up | Mitigation |
|---|---|---|
| Producing fake precision | A slipped strap or a bad camera signal can generate HRV numbers that look perfectly plausible and are meaningless, the most dangerous failure mode in a health tool. | Artifact detection on every RR interval, a reported artifact percentage, a hard refusal to grade above roughly 30%, and a live "adjust the strap" hint during capture. The app says "I don't know" instead of guessing. |
| Medical-claim exposure | Anything that scores health data can drift toward implying diagnosis or treatment. | Explicit "journal and insights, not diagnosis" framing throughout, disclaimers on every report surface, and no language that promises recovery anywhere in the product or its marketing. |
| AI-written code that looks right | Generated code passes review and type checks while being subtly wrong about the domain, such as reasoning across a dropout, or grading an unpaced reading with a paced reading's bands. | Unit tests as the specification for anything with a correct answer, plus a rule that I personally verify any output making a physiological claim. |
| No backend means no recovery | With all data on-device, clearing app data destroys a user's history permanently. | Single-file export and import as a first-class feature, prompted regularly, with old export formats still importable. |
| Android release minification | R8 shrinks and obfuscates every release build, so a missing keep rule fails at runtime rather than at build time. | Explicit keep rules for reflective and native-bridged code, and a hard rule that a green build proves nothing. The minified APK gets BLE, camera, Health Connect, IAP and widgets exercised by hand before shipping. |
| Solo maintenance burden | One person supporting a native app on two platforms plus a watch app is a real long-term risk. | Aggressively boring architecture, no backend to operate, pure and tested core logic, and a documented repo that lets an AI session get productive immediately. |
09Aftermath & LessonsRead moreHide
The biggest surprise was how much of the work turned out to be editorial rather than technical. Deciding to delete "physiological age" because it is not derivable from an RR series. Retiring two breathing patterns because they flatten RSA and break comparability. Choosing to refuse a grade rather than publish a soft one. Every one of those made the app smaller and better, and not one of them was an engineering problem.
The second lesson is that building for yourself is a brutal, excellent quality bar. I cannot ship a metric I do not trust, because I will open it tomorrow morning and try to make a decision about my own health with it. That constraint killed more features than any roadmap review I have ever sat in.
- Earn distribution the way this niche actually rewards. Community trust and search, not ad spend. The paid-social math in this category is underwater by an order of magnitude.
- Deepen the doctor report. It is the strongest wedge in the product and still the least developed part of it.
- Keep the free tier genuinely useful. Every growth loop here runs through "which app do you use?" threads, and those recommend what people use daily.
- Hold the privacy line. The moment there is a backend, the core promise is gone. That constraint stays even where it costs features.
10CreditsRead moreHide
Everything: Austin Spaeth: product, design, architecture, engineering and release
Engineering team: Claude (Opus, Fable and Sonnet), which wrote the code under my direction
Architecture, physiology and every judgment call: Austin Spaeth. The model wrote the pipeline; deciding what it was allowed to claim about a human nervous system was not delegable
Quality bar: My own nervous system, which uses the app every morning and is unimpressed by features it cannot trust
And to the POTS, dysautonomia and long COVID communities, whose public writing shaped what this app decided to measure.
You can't see your nervous system. But you can see it recover.
