Vibing fitness tracking

LLM assisted development, vibing, agentic coding – many names for the same thing. The technology has taken huge strides forward and it is interesting to see what it can do. In my mind, one-offs where a solved problem a while ago, and thin vertical applications without too much complexity is another one. To test the last hypothesis, I set out to create a fitness tracker app. Not a Strava competitor, but something that can track weight and other body measurements and correlate it to events (parties, dinners, etc), medication, and the cycle (if the user is a woman).

I decided to go with Claude from Anthropic and their smallest paid plan. The first prompt and some forth and back on the details of the grand plan rendered the first version after four hours spread out over two evenings. Then, after a weeks usage, another hour or so spent on polish.

This means that ~6h in total gave me a usable SPA that can be “installed” to a phone. The thing runs on a VPS under gunicorn and nginx. Frontend is React and backend in Django. Notice that I know nothing of React and some about Django.

So, what are the conclusions? This puts the fun back in development for me. Instead of spending hours fiddling with CSS and other things I’m not comfortable with, I can knock something out. At the same time, I still know enough to be opinionated on the output of the LLM. What it does is that I go and build my small ideas that sit at the back of my mind, instead of having them collecting dust.

In my experience, a framework such as Django does help, as it provides scaffolding and best practices for a lot of things. Also, enforcing a rich collection of tets is helpful (I have 151 frontend tests, 218 backend tests, and a whole bunch of end-to-end tests run using playwright).

What are the pros and cons, then?

Pros:

  • Productivity goes through the roof – when you know what you want.
  • You can discover new tools and technologies as you go along. I did not even know playwright existed before.
  • No more getting stuck on things that you don’t have time to learn to solve a very specific problem – just focus on what you want done and what you want to learn.

Cons:

  • The environmental, ownership and control aspects of the LLM technology.
  • The doom-promting style of development – you need to have big tasks, not sit and stare at a bouncing logo 30s, re-prompt and repeat. (I think this is what people mean when they differentiate agentic development from vibe coding).
  • No more getting stuck on things that you don’t have time to learn to solve a very specific problem – this limits you, as you don’t grow as a developer by learning new things.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.