Salsedine, own product, live in private alpha
Small enough to repeat.
Routina holds training, sleep, food, body composition and medical screening in one structure, so a person does not have to hold it themselves. You bring the repetition. It handles the rest.
The problem
Most health apps are built for the week you feel motivated.
Routina is built for the other fifty one. The strength of an action is never in its size, it is in its return, and a system that only works while you are enthusiastic is a system that works about a month a year. The daily ask is four things, not forty.
The data is scattered too. One app holds the scale, another holds training, gym sets live somewhere else, lab results sit in email, medications live in your head. Six tools that each answer one question, and none that answer the one a doctor asks. Routina is the connective layer, built to be repeatable rather than impressive.
The governing constraint
An instrument that judges you stops being one you use honestly.
Every health app I looked at had the same failure mode. The moment a number becomes a verdict, tracking turns into surveillance of the self, and the person starts gaming the number or hiding from it.
Keep the elicitation, kill the quantification.
Borrow each method's question, delete its scaleThe nuance that makes it workable: physiological facts legitimately have reference ranges. Blood pressure, glucose and lab markers keep theirs. The ban was never on medicine having normal values. It is on judging the person.
Sleep score
Below your average
Took a while to settle
Woke once or twice. 7h 10m in bed.
restedtook a whilebrokenheavyMaking it stick
A design principle nobody enforces is a preference.
Charters rot. Six months in, someone well meaning writes "great job, you hit your target" and nobody catches it.
So the rule runs in the build. A copy linter scans every user facing reflective string against six banned families: controlling language, praise from above, causal claims about the person, scores, reification, and hollow empathy. A violation fails the build rather than opening a ticket.
Great job, you hit your target!
blocked · praise from aboveMarked on 22 of the last 30 days.
The signature mechanic
The app you use in year two is quieter than the one you started with.
Most products grow. Every new feature earns a place in the navigation and the interface accumulates until the person stops seeing any of it. Routina reduces instead, and the person decides how far.
- Nothing is deleted. Reducing is a display preference, and every reading stays one tap away.
- The objective drives it. Pick swimming and the pool work leads. Pick blood pressure and vitals do, without anyone re-configuring a thing.
- The spine always stays. Care events, steps and water are quiet instruments that never leave, whatever else you turn down.
1 hidden, manage
Designing around the model
Vision models are excellent at grams. So grams is what this one is asked for.
A meal photo needs to become nutrition data. Rather than guess at what the model could handle, I built an evaluation harness against two public food datasets and measured it. Gram estimation came back strong and usable. Calories per gram did not.
So the contract asks for the thing the model is genuinely good at. The model estimates grams, a composition table of 8,262 foods prices those grams, and the person confirms the match. Each part does what it is best at, and the harness stays committed alongside the code so the numbers remain checkable as the models improve.
Onboarding
Three things the first run deliberately does not do.
- No required fields. Skipping writes nothing rather than writing a blank.
- No numbering on the optional step. Calling it "step 3 of 3" would make an offer look like a requirement.
- No inference. A skipped field stays unknown and the features that wanted it say so. The screening schedule sits behind an explicit "we do not know your age" rather than an estimate.
Consent comes before objective selection, so nobody commits to a system before seeing what it may hold. Declining a data type hides its module rather than degrading it.
What shipped
Not a prototype.
Live in private alpha, running daily, with a signed Android build and a scheduled job syncing wearable data into production every morning.