Skip to content

Latest commit

 

History

409 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dietinator

CI Android APK TypeScript Expo SDK 56 License: MIT

Dietinator is a local-first calorie tracker. Diary entries live in SQLite on your device. Food search and optional sync use the YAZIO database. No account needed. Works offline.

Live Demo — Try in browser

No install, no account. Or tap Explore the demo on the login screen.

Download

Android. Install the latest signed APK:

Download Dietinator for Android

Every v* tag builds a signed APK via .github/workflows/release.yml. On first install, allow Install unknown apps for your browser. Updates keep your local SQLite data. The app checks GitHub releases on start and shows an update prompt in Settings.

Preview

Daily dashboard, Stats and trends, AI assistant

Daily dashboard with calorie ring, macro progress, meal breakdown and water tracking    Consistency streaks, weight trends with BMI and goal progress, calorie history, and macro split    AI assistant with on-device tools and one-tap presets

Food search and favorites, Food and portion details, Meal builder

Food search with dynamic icons, recents, and one-tap favorites    Serving sizes, amount steppers and live daily budget impact    Compose reusable meals with amount steppers and nutrition facts

Meal slot tracking and Goals and settings

Meal slot budget overview and logged entries with quick edit    Daily goals and nutrition settings with quick-adjust steppers

Features

  • Local-first diary. Writes to diary_entries in expo-sqlite with WAL. Works fully offline. Food cache keeps past searches.
  • Dashboard. Calorie ring, macro bars, meal sections, water and weight quick-add, copy previous day, pull to refresh from YAZIO when online.
  • Food search. Debounced YAZIO lookup, category icons, favorites and recents, serving sizes with remembered amounts, amount steppers with hold repeat, live budget impact before you save.
  • Meals. Builder for reusable combos with auto nutrition math, plus Quick Add for direct kcal and macros. Per-meal budgets and inline entry edit.
  • Barcode. Camera scan for EAN and UPC on device with cache lookup. Limited on web.
  • Weight and water. Log water with presets, track weight with BMI and trend charts.
  • Micronutrients. Fiber, sugar, saturated fat, sodium, potassium, calcium, iron on the dashboard and food detail.
  • AI assistant. Optional, in Settings. Supports OpenAI, OpenRouter, Ollama and any OpenAI-compatible endpoint. Streams answers, runs tools against your local SQLite, asks before destructive writes, keeps history in SQLite. See ARCHITECTURE.md for the MCP endpoint at /mcp.
  • Backup and export. JSON or CSV export, full SQLite backup and restore. All user initiated.
  • Demo mode. /?demo=1 loads sample data, no account. Light and dark themes, system or manual.

Tech stack

Area Choice
Runtime Node 22, see .nvmrc, packageManager is pnpm@11.22.0
Framework Expo SDK 56, React 19.2, React Native 0.85, expo-router in app/
DB expo-sqlite WAL, migrations in src/db/database.ts
UI gluestack-ui v3 and NativeWind v4, global.css
Sync yazio npm client, withRetry on 5xx and 429, offline-first
Tests Jest and jest-expo, Playwright on the web build

Get started

nvm use            # 22, see .nvmrc
pnpm install
pnpm start         # Metro on port 9082, scan QR with Expo Go
pnpm run web       # or run in the browser

Port 9082 avoids Windows Hyper-V collisions on 8081. To use another port, run pnpm start -- --port 9090.

Other commands:

pnpm run typecheck
pnpm run lint
pnpm run format:check
pnpm test
pnpm run test:e2e  # builds dist/ and runs Playwright at phone size
pnpm run build:web # writes dist/

More

Note. Dietinator uses an unofficial, reverse-engineered YAZIO API. Use it for yourself only. The API can change without notice. The local-first design keeps the diary and cache working when it does.

About

Local-first calorie tracker for Android, iOS, and web. SQLite diary, YAZIO food search, barcode scanning, meal builder, and on-device AI assistant. Built with Expo and React Native.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages