Anjin's Exercise Designer

Week 16 •

Well, Anjin's not out (or really even ready to go out) yet. I've been playing with some ideas for it, though, and wanted to share an update on the exercise designer.

Previously, you created exercises in Anjin by filling out a form, with the option to press a button and have the LLM generate content for all the fields. This was a good start, but I realised that, since this is the main "planning" stage of the app, it should be a little more fleshed-out.

The Updated Exercise Designer

The new exercise designer focuses on giving the user more control over the generation, while still allowing them to edit the content manually. When you want to create a new exercise, a popup appears with a few fields:

ImageGenerating a new exercise

Next, the user is given a preview of the exercise, so they can review it. They're also given a chat on the side, which they can use to ask for changes to the exercise (though this isn't functional yet).

ImageA preview of the exercise, with a chat on the side

This style of "use a chat to ask for changes" is something I've been seeing in a lot of apps lately, and, while I don't think it's the best solution for every workflow, I wanted to explore how it might fit into this one. Like I said, it's not functional yet, but I have a good idea of how it could work, allowing the LLM to generate changes alongside a message to send back to the user in a single call.

The user can also switch over to a manual editor, where they can edit the content of the exercise directly. I think it's important to keep this option, as the LLM isn't perfect and the user might want to make some changes themselves, or add in resources that they have on-hand that the LLM doesn't know about.

ImageManually editing the exercise

I think there's still a lot that could be done to improve this, but it's a major upgrade from the previous version.

Other Stuff

I've also been spending some time thinking about the data model for the app.

There are two major issues with how the LLM generates exercises:

  1. It's slow. Generating exercises can take quite a while and may even timeout when hosted
  2. There's a lot of repetition in the generated exercises, which feels wasteful

I'd like to find ways of either creating templates or pre-generating exercises into a pool which is pulled from by the system. This might take the form of a "deck" of exercise cards or something similar. Ideally, the user should get an exercise back near-instantly, which implies that the exercise should be mostly generated before the user even asks for it.

Another area of focus for me has been how exercises might be grouped. They could be grouped into a single "workout"-type object or split at the goal level, by what the exercise is trying to achieve. This might allow more complex goals to be broken down into smaller, more manageable exercise "channels".

Wrapping Up

I'll be continuing this work over the next week, trying to solidify the model a bit more, so that I can be more confident releasing a first version of the app.

Research for this application has also flooded my social media feeds with ads for self-improvement and time management tools, which has actually helped me both realize how many of these tools are out there and gain a bit of visibility into how other developers approach similar problems. Seeing so many can be a little discouraging, but I haven't seen anything that does what I want Anjin to do, so I'll still be moving forward with this project.

A common thread through these apps is the idea of setting up routines and habits, which is not exactly the focus for my own app, but I think there could be some overlap, so I'll be doing a bit more research in that direction.

See you next week!