Back to home page

build

Fuel

Scan a barcode or photograph the meal, get your macros. The parts of MyFitnessPal people use daily, with nothing behind a paywall.

the problem

Food tracking gets abandoned because logging is slow.

why it hurts

Every extra tap is a reason to stop, and a tracker you stop using tells you nothing.

what i built

Fuel, a phone tracker for food, weight and training: scan a barcode or photograph the meal and get your macros. Vanilla JavaScript that works fully offline, with multi-user cloud sync and row-level security added later. I built it for my own daily use, with no engineering background, through conversational development with AI.

how it works

Four ways in, because friction is why food tracking gets abandoned. Photo, barcode, search, or a saved meal, with the day still empty underneath.

01 / 04

Four ways in, because friction is why food tracking gets abandoned. Photo, barcode, search, or a saved meal, with the day still empty underneath.

The training half of the same app: the session plan for the day, and sets logged weight by reps as they happen.

02 / 04

The training half of the same app: the session plan for the day, and sets logged weight by reps as they happen.

Search runs against the Open Food Facts corpus, so real supermarket products come back with real per-100g numbers.

03 / 04

Search runs against the Open Food Facts corpus, so real supermarket products come back with real per-100g numbers.

The day once a meal has landed: calories left against target, the four macros underneath, weight and steps below that.

04 / 04

The day once a meal has landed: calories left against target, the four macros underneath, weight and steps below that.

why it's useful

Four ways to log (photo, barcode, search or a saved meal), and every target shows its formula and source. Multi-user, and in daily use.

what i learnt

  • Daily return is the real test of a product.
  • A photo estimate is a starting point: it lands as an editable entry to confirm before it saves.
  • Every calorie and macro target shows its formula and source, so nothing is a black box.

technical specs

Vanilla JavaScriptSupabase (Postgres, row-level security)Open Food FactsA vision model for photo estimatesWeb manifest and service worker
  • A single index.html of vanilla JavaScript: no framework and no build step.
  • Offline first. Everything is logged on the phone and works with no signal; Supabase was added later as a purely additive backend, so sync is a bonus, never a dependency.
  • Multi-user, with row-level security so each person sees only their own food, weight and training.
  • Four ways to log: a photo, a barcode, a search, or a saved meal. Barcodes and search resolve against Open Food Facts, so real products come back with real per-100g numbers.
  • A vision model estimates a photographed meal, and the estimate lands as an editable entry to confirm before it saves.
  • Every calorie and macro target shows its formula and its source.
  • A training log, set by set, with weight and reps entered as they happen.
  • It installs to a phone through a web manifest and a service worker.
Back to home page