← all systems
01 · product · 2026

OnyxFit

food, workouts, blood pressure and habits in one app

One app instead of six: food, workouts, blood pressure, sugar, habits and breathing — for a person with a phone in hand. Eleven days from the first commit to a product in production.

11days since first commit785commits in those days289API routes
mobile webhealth dataworks offlineWebGLown platform
onyxfit.ru — see it live
OnyxFit, the day screen: calories and macros, a tip from the day review, food search
OnyxFit, workout summary: records, time, weight lifted
01 — how it went
01 The task

To build one app instead of six. Food, workouts, blood pressure, sugar, habits and breathing usually live in separate programs, and none of them knows about the others. OnyxFit keeps them together — for one person with a phone in hand: in the kitchen, at the gym, with a blood-pressure cuff on the arm.

The other half of the task was tone. There are enough apps that count calories and shame you for the extra ones. This one had to count honestly and speak gently: explain where every number comes from, and not scold when the day goes off plan.

02 The foundation

The product stands on the studio’s platform core: sign-in by emailed code, a role-based back office, the site builder, analytics, backups and deployment were already there — none of it had to be written again. All the time went into the product itself: it is written beside the core, in its own files and its own tables, and the core is updated without touching it.

The product’s first commit is dated October 1. Eleven days later it has 785 commits, 289 API routes, 57 tables of its own and 45 releases.

03 The day

The main screen is one day: what has been eaten, how much is left, and what to do about it. Blocks sit in the order the person chose; the ones they don’t need can be hidden.

OnyxFit, the day screen: calories and macros, a tip from the day review, food search
The day: calories, macros and the main tip
OnyxFit, the day screen: an open meal, entries with GI and GL, water
A meal: entries with GI and glycaemic load
OnyxFit, day review: calories and protein on target
Day review: what matched the goal

Behind a simple “logged some food” there is a rule for which meal it lands in: first the one in progress — from half an hour before its first entry to half an hour after its last; then an empty planned one, if it is no more than ninety minutes away; otherwise a new meal is created. Every such choice goes to analytics, so that cases where food landed in the wrong place can be examined.

04 Honest numbers

A dish is its raw ingredients plus the weight of what came out: the soup reduced, and calories per hundred grams are counted from what left the pot. A meal keeps its own copy of the ingredients, so editing a recipe does not rewrite the past.

“On target” means plus or minus ten percent, and the same boundary is used in four places at once: the day’s tips, the evening summary, the plan check and the statistics. A separate check catches any drift between them.

OnyxFit, a month of nutrition: calories per day and averages vs goals
A month: calories per day and averages vs goals
OnyxFit, day review: the day against the plan and the week by days
Day and plan: the step towards the weight goal, and the week
OnyxFit, day review: water — drunk, from drinks and from food, by hour
Water: drunk, from drinks, and what came with food

The app judges fibre only when it is known for at least seventy percent of the day’s carbohydrates: manufacturers rarely list it, and a daily “too little fibre” would really mean “it is missing from the labels”. And today is left out of the statistics until it is over — a hundred calories at breakfast should not drag the weekly average down.

05 Plan, menu and weight

The nutrition plan computes its phases from weight and goal; every number in it is explained in a rules document that changes together with the code. Weight is shown as a trend inside the plan’s corridor — it swings by a kilogram a day with water and salt, and one morning’s number means nothing.

OnyxFit, nutrition plan: weight planned vs actual, weekly check-in
Weight: the plan corridor, the trend and readings
OnyxFit, weekly menu: dishes of the day with grams and calories
A weekly menu built for the phase’s targets
OnyxFit, shopping list for the weekly menu
The shopping list for that menu
06 Workouts

A workout is a feed of sets and rests. It lives on the phone and goes to the server as a whole document: the signal drops at the gym, and no set should be lost with it. Timers are computed from timestamps, so a locked screen does not break the rest.

OnyxFit, a workout: set timer and the set / rest feed
A set in progress: timer and feed
OnyxFit, workout summary: records, time, weight lifted
Summary: records and weight lifted
OnyxFit, an exercise: muscles worked and weight progress
An exercise: which muscles work
07 Blood pressure, sugar and a personal GI

Blood pressure is a diary of home readings plus a guided measurement: five minutes of rest, two readings a minute apart. What gets assessed is the weekly average, not a single number.

OnyxFit, blood pressure: weekly average, zone and chart
Blood pressure: weekly average and zone
OnyxFit, guided blood-pressure measurement: step-by-step preparation
Guided measurement: step-by-step preparation
OnyxFit, blood sugar: latest reading, target range and history
Blood sugar: the range depends on when it was measured

The glycaemic index from tables is an average across people. Here it can be measured on yourself: a glucose reference, then the food, a glucometer — and the app computes a personal index that replaces the table value in every calculation from then on.

OnyxFit, personal glycaemic index: foods measured with a glucometer
A personal GI, measured with a glucometer
OnyxFit, body measurements: a figure with tapes and changes
Measurements: the tape sees what the scale does not
OnyxFit, weight: trend and measurements
Weight: the trend matters more than the day’s number
08 Vows and breathing

A vow is a counter for something a person has decided to give up. A lapse here is not red and does not erase the past: the record and the total of clean days stay. Next to it is a minute of breathing: in for four counts, out for six. The pace cannot be set faster than nine breaths a minute — beyond that it is hyperventilation. The picture is deliberately free of flicker.

OnyxFit, vows: a no-sweets streak counter and milestones
Vows: streak, milestones and record
OnyxFit, the breathing pause
The breathing pause
OnyxFit, knowledge base: an article on glycaemic index
Knowledge base: 37 articles in plain words
09 One stone

On the public site the product speaks in a single image: “One life — one stone”. The onyx is drawn in WebGL; its six layers are the app’s six areas, in the same colours the sections use inside. Every public page is assembled in the same builder as the sites on the platform.

The OnyxFit website: “One life — one stone”, an onyx of six layers
The site: an onyx of six layers
10 Behind the scenes

The product has its own back-office screens: who uses the app and whether they come back, the food base, and automatic checks of what gets added to it.

OnyxFit back office, “Foods”: the base, moderation and what is eaten most
Foods: the base and what is eaten most
OnyxFit back office, “Auto-check”: what the rules passed and what they left to a person
Auto-check: what the rules decided on their own

Deployment has no downtime: a new container comes up alongside, nginx is switched to it, and the old one finishes the requests it had started.

11 The result

Eleven days from the first commit to a product in production with six areas — food, workouts, blood pressure, sugar, vows, breathing — and 45 releases along the way. It was this fast because the foundation was already standing: the time went into the product, not into sign-in, a back office and deployment.

screens are the real interface, in Russian as shipped · the data in them is demo data
02 — how it looks
OnyxFit, the day screen: calories and macros, a tip from the day review, food search
01The day: calories, macros and the main tip
OnyxFit, workout summary: records, time, weight lifted
02Workout summary: records and weight lifted
OnyxFit, body measurements: a figure with tapes and changes
03Measurements: the tape sees what the scale does not
OnyxFit, training stats: volume and muscle groups
04A month of training: volume and muscle groups
05Back office: who uses the app and what exactly
OnyxFit back office, “App”: daily actives and what people use
screens are the real interface, in Russian as shipped · the data in them is demo data