▶ Try it: candicewu0515.github.io/dosetrack · Code: github.com/candicewu0515/dosetrack
No login needed — open the demo link and click Load sample data to explore 20 weeks of a GLP-1 journey. Then log today's entry yourself. Click Clear & start fresh to reset. Then scroll to You vs. clinical trials and Side effects vs. FDA data, switch the medication between semaglutide and tirzepatide, and click Doctor summary for a printable one-page report. To try the Apple Health import without an iPhone: click "sample export" on the page to download a test file, then choose it under "Import from Apple Health".
Inspiration
I take semaglutide myself. Existing health apps upload my data to their servers, and I didn't want my medication and weight data sitting on someone else's cloud. I wanted a private, simple place to answer one question honestly: "Is this actually working?" — doses, weight trend, side effects, mood — without handing my medical data to a company.
What it does
- Logs each dose (drug, amount, date), body weight, side effects, and mood
- Compares you with the clinical trials: your % weight loss by week is plotted against the published Wegovy (STEP 1) and Zepbound (SURMOUNT-1) averages and placebo, with a plain-English "how am I doing" line
- Side effects vs. FDA data: what you logged, next to how often each side effect happened in the trials (drug vs placebo), plus a live ranking of real-world reports pulled from openFDA
- Doctor summary: one click makes a one-page report to print or save as PDF before an appointment
- Next-dose countdown with the standard step-up schedule, and a weekly reminder you can add to your calendar
- Imports your weight history from Apple Health: pick the iPhone's export file and a year of weigh-ins appears on the chart, including your "before" baseline. The file is parsed inside the browser, never uploaded
- Draws a weight trend chart (scaled by date) with every dose step-up marked, so progress is visible at a glance
- Check-in streak tracker to keep the habit going
- Side-effect frequency stats — e.g. how many times nausea actually happened
- kg / lb / 斤 units
- JSON export / import for backup and moving data between devices
- One-click sample data, so anyone can explore it in 10 seconds
- Everything stays in the browser's localStorage: no account, no server, no tracking
How I built it
One single HTML file. Vanilla JavaScript, hand-built SVG charts, zero dependencies — no CDN, no build step, no framework. It's hosted on GitHub Pages, and you can also download index.html and double-click it to run it offline. I chose zero libraries deliberately: the demo can never break for a judge, on any laptop.
Challenges I ran into
- Drawing a useful, readable chart without any charting library
- Designing the log form so a daily entry takes under 30 seconds — otherwise nobody keeps doing it
- Handling real, messy personal data: missed days, dose changes, mood swings
- Getting the medical numbers right: every trial figure comes straight from the FDA prescribing information (via openFDA), and the page says exactly which study each number is from
- Apple Health exports can be gigabytes. I wrote a tiny zip reader and a streaming XML scan, with no libraries, so it works on any size without freezing the browser or uploading anything. Then the details: lb vs kg, several weigh-ins a day (the morning one wins), and never overwriting what the user logged by hand
Accomplishments that I'm proud of
- I built it around my own GLP-1 journey since late May. The public demo uses realistic sample data instead (a standard 0.25 → 2.4 mg step-up over 20 weeks), so my personal data stays private — which is the whole point
- Privacy-first by design, not by promise: your health data never leaves the browser. There is no server to leak it from
- Fully offline, single file — the most reliable demo possible (the one live openFDA call falls back to a saved snapshot)
- Public health data with zero privacy cost: the only thing ever sent over the network is the drug name
- Apple Health integration with no server, no HealthKit app and no account. It reads the export file directly in the browser
What I learned
Building for a user I actually am made every feature choice obvious — no guessing. And the privacy constraint made the design simpler, not harder: no login screens, no servers, no sync bugs.
What's next for DoseTrack
- Also import dose logs from the Health app's Medications section
- Installable app (PWA) with dose-day push notifications
- More GLP-1 medications and their trial data (e.g. liraglutide, oral semaglutide)
- Optional encrypted cloud backup for people who want multi-device access
Built With
- apple-health
- css3
- github
- html5
- javascript
- localstorage
- openfda
- svg
Log in or sign up for Devpost to join the conversation.