▶ 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

Share this project:

Updates

Submission history