Status Private · daily log

Sheet 01 of 04/General arrangement

Personal tracking appDrawing 27 of 28Role Sole author

Weight
Tracker

A weigh-in a day gets noisy fast, so I built a small gated app to log it and read the trend instead of the number: one entry per day, a chart against a goal line, and a unit toggle that never rewrites what I actually entered.

Specification / as recorded

Status
Private, in active use
Role
Sole author
Stack
Vanilla JS, no framework or build step
Sync
LocalStorage first, then a small server endpoint
Visibility
Gated behind login, not public
The trend chart, five entries logged and the delta stats above it
PlatePL-01
TitleTrend chart
ViewDetail
Five entries logged and the delta stats above it.

Sheet 02 of 04/Unit

A value stored exactly as typed

Weight fluctuates enough day to day that a single reading is closer to noise than signal, which is the whole reason the app leads with a trend chart over four ranges (30 days, 90 days, a year, all of it) instead of the day's raw number.

The one rule that took the most thought: a logged value is stored exactly as entered, in whichever unit was on screen at the time, and converted only at render time. Flipping the lb/kg toggle recomputes the display, never the record. Round-tripping a value through unit conversion on every save is how small rounding errors compound into a chart that drifts, and this app has been logged into daily for long enough that the difference would have shown up.

Sheet 03 of 04/Entry

Built for the moment right after the scale

The entry control is a docked strip pinned to the bottom of the screen, sized for a thumb, open by default to today. Weighing in is usually the first thing that happens in a day, often half-asleep, so the fewer decisions between opening the app and the number being saved, the more consistently it actually gets used.

Local-calendar dates apply here too, same as the rest of my private tools: an entry made late in the evening files under that day, not under UTC's tomorrow.

Sheet 04 of 04/Backup

A log that survives losing the phone

Every entry writes to local storage immediately, then syncs to a small server endpoint in the background, so the log survives a lost or wiped phone. Settings expose a manual export and import as well, for a copy that lives outside either.