01 / iOS app2026In TestFlight

CoachAI

A calorie target that revises its own math.

RoleEverything. Model, schema, client, TestFlight release.
Built withExpo, Supabase, Postgres, Deno, Groq
Where it isIn TestFlight

Why I built it

A calorie target is a guess that goes stale. You answer a few questions on day one, a formula returns a number, and that number follows you for months while your sleep, your training and your appetite all move underneath it.

The apps that do adapt tend to hand the whole job to a language model, which means the number changes for reasons nobody can audit. I wanted a target that moves with real life without giving up the ability to say exactly where a figure came from.

What I built

A deterministic core

Targets, recovery bands and correlations live in plain TypeScript with tests. Given the same log, they return the same answer every time, which means a change in your target always has a traceable cause.

The model only speaks

Computed values go to the model as facts it is not allowed to change. It picks the wording and the order, not the maths, so a coaching note can never contradict the number on the dashboard.

A nightly recompute

An edge function rolls up the day, updates trailing averages and writes tomorrow's target before you wake up, so the app opens on an answer instead of a spinner.

The hard part

Saying nothing when there is nothing to say

When there is not enough logged data to justify moving a target, the app has to admit that instead of inventing confidence. Getting that copy honest took longer than the model integration did.

What I would do next

Cycle phase is in the schema but only lightly used. It deserves its own recompute path rather than a modifier bolted onto the daily one.

NextTournify