2
8 Comments

I ruled out an LLM for my health app, and it turned into the positioning

I posted here a while back about Vitra, a desktop app that reads your Oura Ring data locally. Since then the most useful thing I did was a decision I expected to be purely technical. It ended up being the whole pitch.

The obvious build in 2026 is: pull the wearable data, hand it to a model, get a nice paragraph back. I did not do that.

The reason is stability. Push back on a model's recommendation and it tends to fold and tell you the opposite. Same data, opposite advice, because you argued. For most products that is a shrug. For this one it is fatal, because the entire value of the app saying "take a rest day" is that it holds that line when you do not want to hear it.

So it is transparent rules and statistics over your own history instead. Personal baseline established over the first couple of weeks, thresholds committed to before the app sees today's numbers, multi-day agreement required before it says anything confident.

What surprised me was the commercial side of that choice.

  1. No inference API calls meant no server doing the analysis, which meant no account, which meant health data never leaves the machine. To be precise, because someone asked: licence activation does hit a server, and that call carries no health data. The privacy story came out of the architecture rather than being a feature I set out to build, and it is the line people repeat back to me most.

  2. No inference cost made a one-time price viable. 19 EUR, no subscription. The complaint I was solving is people resenting a monthly fee for a number they can already predict, so stacking a second monthly fee on top would have been absurd.

  3. It gave me a real answer to "why not just use ChatGPT for this". Determinism is a claim a wrapper cannot make.

A CTO commented on the LinkedIn version of this today and put it better than I did: ruling out the LLM is a harder sell than privacy, but a much stronger one the first time someone catches the app being wrong twice. That is the actual trade. Determinism means when it is wrong, the rule is sitting in the open and it is unambiguously my fault. No blaming sampling.

The half of this I left out when I first wrote it: the rules are not frozen. You can correct it and the correction sticks, so if it blames your late workout for a bad night and that is wrong for you, you say so and it adjusts to you. Determinism is what makes teaching it possible at all. Something that rerolls its own reasoning every morning has nothing stable to correct. Same inputs give the same output, and your own corrections are part of the inputs.

Cost I am still paying: the app stays deliberately quiet for the first two weeks while it learns your baseline. Every competitor tries to impress you on day one. I do not yet know what that does to trial conversion and it is the number I am watching hardest.

https://vitrahealth.app

Curious whether anyone else has deliberately taken the model out of the loop and found it became the marketing rather than a limitation.

on August 16, 2026
  1. 1

    Update for anyone landing here later: "one plain sentence" is hard to picture from a description, so I recorded what the app actually puts on screen in the morning.

    https://youtu.be/LvPAw6Tmn0k

  2. 1

    Pricing it at €19 one-time because you removed the inference cost is a tidy piece of reasoning. Since the app stays quiet for two weeks before it proves itself, are you selling before that window or after — and does the checkout handle refunds and VAT for buyers outside the EU? I've been comparing one-time-purchase setups for indie desktop apps and can share what holds up.

    1. 1

      Before the window, and that is the honest tension in the whole thing. Trial is 7 days, the baseline needs about 14, so you are buying on the raw data views and on the reasoning being visible, not on the app having said anything clever yet. I keep going back and forth on stretching the trial to 21 days. The argument against is that a three week trial on a 19 EUR product is most of the way to giving it away.

      Checkout is Stripe so VAT and the non EU side sit there rather than with me. Refunds I just do manually, no questions asked, because at this price arguing costs more than refunding. Would like to hear what you found actually holds up.

  3. 1

    The two-week quiet period is an interesting constraint. Curious what early users actually say about that experience.

    1. 1

      Mixed, and almost all of the complaints land in the first few days. People open it, there is nothing to say yet, and a couple told me straight out that it felt broken. So now it shows the raw data and a day counter from day one, just so something is visibly happening while it waits.

      The ones who get past week two basically never mention it again. The bit I did not expect is that some of them liked the wait. When it finally said something about their sleep it did not feel like the app was guessing, because they had watched it refuse to guess for two weeks.

      1. 1

        That’s an interesting reversal — the waiting seems to become part of the trust signal for users who stick around.

        What’s the best email to reach you on?

        1. 1

          pt@amplifiedcreations.com is the best one. And yes, that reversal caught me out too. Refusing to guess for two weeks turned out to be a stronger signal than anything the app could have said on day one, but only because the refusal is visible. The day counter and the raw data are what make the waiting legible. Back when it was silently doing nothing, people just assumed it was broken.

          1. 1

            Thanks! I’ve just sent it over.

            Looking forward to hearing your thoughts whenever you have a chance.