# Product Vision: “Keep My Weight” Tracker
## Vision Statement
Empower health-conscious individuals to effortlessly monitor and understand their weight journey and daily nutrition through a minimalist, privacy-first web app—delivering clear insights, seamless data portability, and an intuitive, distraction-free experience.
---
## Target Audience
- **Health Enthusiasts** & people aiming for weight goals
- Users seeking a **lightweight**, self-hosted solution
- Privacy-minded individuals who prefer **local data storage** and full control
- Non-technical users who appreciate a **zero-setup** interface
---
## Key User Needs
1. **Quick Weight Logging**
- Log weight in kilograms with minimal friction
- Separate weight entries from meal logs
2. **Daily Meal Tracking**
- Record Breakfast, Lunch, Dinner, and “Other” items
- Flexible text fields, no calorie counting required
3. **Progress Reporting**
- Clean, exportable charts & tables of weight evolution
- Ability to filter by date ranges
4. **Data Portability & Backup**
- Import / Export complete data as JSON
- CSV export for spreadsheets or external analysis
5. **Simplicity & Reliability**
- Zero-backend static site
- Dockerized for easy deployment via Coolify or similar
---
## Product Pillars
### 1. **Usability & Clarity**
- **Single-page interface**: instant access to weight & meal logs
- **Clean layout**: large inputs, clear typography, mobile-friendly
- Save weight **independently** of meals
### 2. **Insightful Reporting**
- **Interactive weight chart**: line graph of weight over time
- **Tabular view**: sortable, filterable by date
- **Exportable**: CSV download or copy-paste
### 3. **Data Ownership**
- All entries stored in a single `data.json` file in root
- **Import / Export** buttons for manual backup & restore
- Encrypted if desired by advanced users
### 4. **Lightweight Tech Stack**
- **Static site** built with vanilla JS (or minimal framework) + HTML/CSS
- **Data layer**: read/write `data.json` via JavaScript filesystem APIs (or embedded file picker)
- **Dockerized**: simple `Dockerfile` wrapping a static file server (e.g., Caddy, NGINX)
- **Deploy**: Coolify recipe, GitHub → Docker → Cloud
---
## Minimum Viable Roadmap
| Phase | Deliverables |
|-----|-------------|
| **Phase 1** | • Weight log UI + persistence in `data.json`
| • Meal log UI (4 sections) + same JSON file
| • Save & Load from JSON via file picker
| **Phase 2** | • Weight evolution line chart
| • CSV export of all entries
| • Date-range filters
| **Phase 3** | • JSON import (merge vs overwrite)
| • Responsive mobile-first refinements
| • Docker & Coolify deployment docs
| **Phase 4** | • Theming (light/dark)
| • Localization support
| • Retirement migration guide (e.g., to new data formats)
---
## High-Level Architecture
```text
┌─────────────────────┐ ┌───────────────┐
│ Static Web Server │◀────▶│ data.json │
│ (NGINX/Caddy) │ │ (local FS) │
└─────────────────────┘ └───────────────┘
▲ ▲
│ │
│ │
Vanilla JS HTML/CSS
(UI & Data I/O)
Frontend:
ES6 modules, no build step (or minimal bundler)
Fetch & download JSON via /
Server:
Containerized static file server
Serves index.html, static assets, and data.json