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
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.