Log your pain scores, vitals, and trail status to get today's optimized workout call.
Food Log
Joint Status
Elbow
—
Shoulder
—
Knee
—
Last Entry
Resting HR
—bpm
—
Weight
—lbs
—
Cal Balance
—
—
Flexibility
—/5
—
Hydration
—L
—
Body Fat
—%
—
Sleep
—hrs
—
Steps
—
—
Stress (avg)
—/100
—
Strava Form
—
—
12-Week Program
Phase 1 — FoundationWeek 1 of 12
🟦 Now🟩 Done🟨 Ireland
Morning Check-In
📅
Logging for
✏️ Editing existing entry — values are pre-filled below
Joint Pain (1=none · 5=severe)
Elbow
1
Shoulder
1
Knee
1
Vitals
Nutrition
Recovery
Hydration & Alcohol
≈ 8 glasses = 2L
0
1 drink = 12oz beer / 5oz wine / 1.5oz spirits
Food Log
Activities
Add Activity
Weekly Benchmark (test once a week)
Body Composition (cm)
Evo Ops Engine
Today's Optimized Workout
⚙️
Log 3+ days to activate the optimizer
Today's Nutrition Targets
🍽️
Log check-ins to calibrate
Correlations (n=0)
Key Relationships
Log 5+ days to see correlations
Pattern Insights
Insights appear after 7 days of data
Variable Sensitivity
What Drives Your Best Days
Needs 7+ days of data
● Local · No internet required
Phase 1 · Weeks 1–4
Foundation
Build aerobic base, restore joint integrity, establish movement patterns. Volume over intensity.
This Week
Phase Notes
Biometric Trends
Resting Heart Rate
Yearly Average · bpm
Recent · 21 days
Weight (lbs)
Yearly Average · lbs
Recent · 21 days
Joint Pain Trends
Pain Scores (1=none · 5=severe)
Recovery & Performance
Sleep · Flexibility
Calorie Balance
Yearly Average · kcal
Recent · 21 days
Hydration & Alcohol
Water Intake (L)
Yearly Average · L
Recent · 21 days
Alcohol (drinks/day)
Yearly Average · drinks/day
Recent · 21 days
Body Composition
Body Fat % (weekly)
Yearly Average · %
Recent
Measurements (cm) (weekly)
Sleep Hours (Garmin)
Yearly Average · hrs
Recent · 21 days
Daily Steps (Garmin)
Yearly Average · steps/day
Recent · 21 days
Stress (avg) (Garmin)
Yearly Average · /100
Recent · 21 days
VO2 Max (Garmin)
Yearly Average · ml/kg/min
Recent measurements
Strava Fitness · Fatigue · Form (30 days)
History
📋
No entries yet
Tap any cell to edit · Scroll right for more columns
Display
Text Size
Bumps everything app-wide. Try Large if Normal feels small. Saved to this device.
Data & Sync
Profile
👤
My Profile
Solo · Stable Core build
Backup & Import
Export all entries as JSON for backup. Restore accepts both full backups and partial imports from the Garmin / Strava export scripts (field-level merge — won't overwrite manual entries).
Last backup: Never
Import History
Last 10 imports — tap to roll back
Install as App
iPhone
Safari → Share → "Add to Home Screen"
Android
Chrome → menu (⋮) → "Add to Home Screen"
Works offline · Data stays on device
Data Summary
Total entries0
Days tracked0
First entry—
Storage used—
Build Notes — v2.9.2
v2.9.2 — Critical fixes:
1. Timezone bug fixed. Previously the app used UTC dates internally, causing entries logged after 8pm Eastern to be saved under tomorrow's date. Now uses local timezone consistently. ~30 call sites updated.
2. IndexedDB durable storage. Storage migrated from localStorage to IndexedDB. localStorage is treated as "cache" by browsers and gets evicted under storage pressure (especially iOS Safari). IndexedDB is treated as durable app storage. We write to both for now; on next load if IndexedDB has more data than localStorage, it auto-restores. This protects against the data loss seen earlier in development.
3. Skip indicator on day buttons. Previously, marking a day as Skip showed no visual change on the day-of-week buttons (only Done showed ✓). Now Skip displays an amber × so the data state is unambiguous.
4. Empty chart placeholder. Previously, charts with no data rendered as a blank graph with 0–1.0 axis (looked broken). Now they show "No data yet · Log entries or import data to populate."
Plus: Test harness adopted (validate.sh + GitHub Action). All builds now auto-validated for JS syntax, handler coverage, fetch count, structural integrity, migration cleanliness.
v2.9.1: Cross-week logging. Compliance strip cells now jump to that week.
v2.9: Program tab is the workout logger. Per-exercise state, per-set logging, compliance strip.
v2.8c: Yearly-average bars above Trends charts.
v2.8b: Schema aligned with actual Vivoactive 3 export.
v2.7: Program tab mirrors Trail & Iron Google Calendar exactly.
v2.6: Smart carry-over on Check-In numeric fields.
v2.5: Food log with 250+ food lexicon.
v2.4: Hydration & alcohol. Body composition.
v2.3: Multi-activity per day. Felt 1–5 scale.
Stable Core: Zero external API calls. All data stays on this device.