Skip to content
brorn
No. 012 · Personal life

health.me

A personal health coach: keeps history, reads lab results from PDF or photo with AI and talks about the results.

Live
Period
2026-08 → now
Platforms
Web
Role
Solo: design, build, ship
Tech
Fig. 1 · Dashboard
Fig. 2 · Files and analyses
Fig. 3 · Coach chat

§1The problem

Test results, symptoms and advice were scattered across paper, photos and different apps, with no single view and no action plan.

§2What I built

  • Five areasDashboard, history, files and analyses, coach (chat) and profile.
  • Lab uploadPDF or photo, with values extracted automatically by AI.
  • Coach chatA continuous thread, with an option to search guidelines on the web and show the sources.
  • HistoryCombines data from my other apps (activities, tasks, habits, calendar) through a data broker.
  • Action planThe coach suggests items and I approve them one by one before they become tasks.
  • Visit summaryPDF generated on the server.
  • Honest empty statesNo fake data where there is no source.

§3The hard parts

5 entries
  1. 01

    Extracting structured values from lab results

    Varied formats (PDF and photo) read by AI, through a command-line tool signed in with OAuth instead of a paid API.

  2. 02

    Composing history from several apps

    Without duplicating data or creating rigid dependencies between them.

  3. 03

    Human approval flow

    The AI proposes, the user decides, and dismissed suggestions never come back.

  4. 04

    Large uploads and PDF generation

    Files up to 15 MB, and PDFs rendered with a headless browser.

  5. 05

    A rewrite without migrating old data

    Starting from scratch.

§4Result

Live and in use.

§5Stack

  • Next.js 16
  • React 19
  • TypeScript 7
  • Tailwind 4
  • SQLite (better-sqlite3)
  • Puppeteer (PDF)
  • LLM via command-line agent (OAuth)
  • Own design system
  • pm2
  • Tailscale