← Projects

ScalePlate

Status: in progress

ScalePlate pairs with a Bluetooth kitchen scale and turns raw grams into a complete food-logging companion. Weigh ingredients in real time on a large, easy-to-read display, tare or calibrate with a single tap, then log what you cook to a food diary, build reusable recipes, and look up packaged products to see their nutrition.

ScalePlate scale screen showing a large 508 g weight readout, a Connected status and Tare and Calibrate buttons
Live weighing
ScalePlate food diary for the day with a calories total and meal sections for breakfast, lunch, dinner and snack
Food diary
ScalePlate recipes tab with an empty state ready to hold saved recipes
Reusable recipes

What it is

A companion app for a compatible foodrec-scale device (an ESP32-C3 + HX711 kitchen scale). The phone stays a thin client: it receives settled grams over Bluetooth LE and sends tare and calibration commands back. Around that live readout it adds the parts a bare scale can’t — a diary of what you weigh and eat, recipes you can scale and reuse, and nutrition for packaged products.

I built that scale from scratch — the load cell, firmware and BLE protocol are covered in Building a BLE kitchen scale from a load cell.

How it works

  • Live weight arrives over Bluetooth LE Notify from the scale; tare and calibration are BLE Write commands. A physical scale is required for weighing — during development a mock service stands in for the hardware.
  • Food diary records entries per meal and totals calories and macros for the day, stored locally with SwiftData.
  • Recipes let you compose ingredients once, then scale and reuse them.
  • Product lookup is powered by Open Food Facts: scan a barcode or enter it by hand, and the product’s nutrition is fetched and cached on device for offline reuse.

Tech

Native SwiftUI with the Observation framework, SwiftData for local persistence, Core Bluetooth for the scale link, and a small Swift package (OFFKit) wrapping the Open Food Facts API. Requires iOS 17+. Available in English and Russian.