Anagnori — a self-guided exposure therapy prototype
I designed and built the app in SwiftUI with Claude Code, prototyping eight visual directions in HTML first. I rebuilt it around patterns and experiments after I stopped opening the clinically faithful first version, and rewrote the clinical copy.
Designer & engineer | 2026 — present
Tools: SwiftUI, TypeScript, HTML prototyping, Claude Code Platform: iOS · anagnori.app
An app for the exposure work I was already doing
I went through Exposure and Response Prevention (ERP) in a clinical setting and kept using it afterwards, mostly out of a Google doc. The part that made things possible was writing down what I expected to happen and then comparing it with what actually did. I used to freeze trying to start anything; now I'll strike up a conversation with a stranger in a place I've never been, and the anxiety spike has gotten smaller over time. Those changes preceded the app. The doc filled up with cases like that — calling a bakery to ask for a specific pastry, going running in tights without shorts — until a conversation with a relative made me notice how much of it overlapped with building and breaking habits. Anagnori is the iOS app I designed and built in SwiftUI out of that doc, along with its marketing site.
I'm the only person who has used it. It isn't available yet, hasn't been through a user study, and hasn't been clinically evaluated.
From the clinical model to a flat list of experiments
The version that followed the clinical model most closely was the version I stopped using. That first build followed the model I knew from therapy: three levels of hierarchy, distress ratings, and a chart of those ratings — SUDS — over time. I wanted to see how it compared with copying a table into a doc for every experiment.
Using it on my own exposures turned up the things it couldn't do. I couldn't record an exposure I hadn't completed, or explain why I'd stopped, even though that was useful information for the next attempt. My doc was a flat list, while the app made me go through a hierarchy, then a routine, then an experiment. And it asked me to record what I was doing without first asking why I wanted to do it.
Acceptance and Commitment Therapy (ACT) helped me think about why I was doing an exercise: would it move me toward the life I wanted? I reorganized the app around the trigger, the urge and the direction of the action, keeping the information the first version captured but bringing the structure closer to the flat list I'd been using.
Values moved into onboarding, so someone can think about what they want to work on before their first experiment, and revisit those selections later as they get a better idea of what matters to them.
Keeping the prediction visible in the debrief
Choosing "completed" or "not completed" opened a form with little context about the exercise, so the prediction wasn't on screen while I was reviewing what happened. I moved the outcome into a segmented control at the top of the sheet and kept the pattern name, prediction and trigger underneath it.
Two smaller changes came out of the same pass. The app asked whether I was breaking or building a habit on every entry; that became a setting defaulting to breaking — the side I'm more familiar with, and closely related anyway, since breaking a habit often means replacing it with something else. And because these fields ask for some vulnerability from an app you don't know yet, onboarding now offers examples someone might recognize, like reaching for their phone the moment they're bored instead of sitting with the thought.
Picking the visual direction
Before writing any Swift, I built the visual directions as HTML pages with Claude Code, then picked out the parts I liked and changed them until I had one I was happy with.



I went with minimalist lavender: the lighter shade reads calm to me, and I prefer light mode for contrast in an app where people are writing about things that make them anxious.
Working with Claude Code
I used Claude Code for the HTML prototyping and the implementation. It let me try a direction quickly enough that replacing it — even when that meant changing the whole information architecture — still felt practical. I worked out what to keep from the clinical model by using the app on my own exposures.
Where it stands
I have a working iOS build that I use for my own exercises, and the marketing site is live at anagnori.app. The app isn't available, and it hasn't been clinically evaluated. Before anyone else tries it, I'd like to get a UX research study through an IRB and keep iterating. The therapeutic methods behind the idea have been studied; whether this app is useful to anyone other than me is still unanswered.