I started building a new app yesterday to better understand how agents work. The app is for climbing training, which I’ve kicked around for years. Previously, I always got blocked due to a mismatch between what I wanted and what I could build. The issue was the complexity of the data model. I felt I needed to model all the content very explicitly, which had the side effect of making the UI very heavy and inflexible. My vision was to have an experience that feels more like a text journal or flexible spreadsheet than a locked-down CRUD app.
This time I took a different approach and kept the content modeling very basic and loose. For example, a set is stored as a string: 2x 15# rather than individual columns in a table. The benefit here is that I can accommodate lots of different protocols with no extra effort. This is great since climbing training is quite nuanced.
Instead of deterministic functions to manage this information, I’m using inference — creating tools and directives that can perform analysis and transformations. While I’m ceding some predictability to the model, honestly, it seems to work pretty damn well. The other tradeoffs are speed and cost, which aren’t a concern for me with this project.