Why it exists
openGym tracks training. But what you lift depends a lot on what you eat, and the apps that track food tend to show ads, lock the barcode scanner behind a subscription and keep your diary on their servers.
openNutrition is the kitchen side of openGym. Same look, separate app, your data on your server. No ads, no tracking, and no paid API key needed for anything.
Where it stands
- Version 0.1, private beta. In daily use by its author. Not released.
- The repository is private for now. There is no date for opening it.
- No store apps. It installs from the browser to the home screen. An iPhone app is in preparation.
- The name is not final. An unrelated open dataset project is also called OpenNutrition, so the name still has to be checked.
That is why this site is not indexed by search engines. You are early.
Who makes it
Duarte Santos, who also makes openGym. openGym comes first when time is short, so openNutrition moves when there is room for it.
How it is built
- One web app. Next.js with a versioned JSON API under
/api/v1, PostgreSQL underneath. - One Docker Compose file to run it. The image runs as a non-root user and migrates the database on start.
- 600 automated tests for the parts that must not be wrong: the energy maths on simulated people, totals with missing values, the supplement chemistry, sign-in with passkeys, and the wall between one user's data and the next.
- End-to-end tests in a real browser too, including a real barcode scanned through a fake camera.
- Six languages: English, German, French, Italian, Spanish and Portuguese.
A few rules it keeps
- Unknown is not zero. A missing value stays missing, and a total with a gap is shown as "at least".
- History does not change. Every entry keeps a snapshot of the food data it was logged with.
- The model suggests, the database counts. AI may guess what is on a plate. It never supplies the nutrients.
- No dosing advice, no medical advice. It shows labels and does maths.
- Nobody is shamed for a missed day. Streaks survive an empty morning.
Licence and credits
The code is AGPL-3.0-or-later. The data keeps its own licences, and every record in the app says where it came from:
- Open Food Facts: data under ODbL, images under CC BY-SA.
- USDA FoodData Central: public domain (CC0).
- Swiss Food Composition Database (FSVO): free to use with acknowledgement of the source.
- NIH Dietary Supplement Label Database: public domain.
Thank you to the people who maintain these. A tracker is only as good as its food data.
Contact
Questions, corrections, or a cell in the comparison table that went out of date: [email protected].