Skip to main content
Aletheia is a personal health record built around one idea: show people not just what their numbers say, but what they have never measured. On the body map, measured systems light up from inside. Everything you have never tested stays dark.

Live demo

aletheia.marcobuhlmann.com

Source

3cubed-Ventures/aletheia-health
Nothing enters your record on its own. Every importer, whether it reads a CSV, a lab PDF, a connected medical record or Apple Health, only proposes values. A value is saved when a person confirms it.

What it does

Components

Web app

Static pages on Cloudflare Pages: the home page, sign-in, dashboard, upload, account and admin.

Supabase

Postgres schema, grading functions, RLS policies, the biomarker catalogue and six edge functions.

Mac & iPhone

Native SwiftUI apps that read Apple Health and propose what they find into the same record.

Repository layout

Run it locally

The web app is static. Serve dist/ and point app.js at your Supabase project:
Apply the schema to your project:
supabase db push only picks up files named <14-digit timestamp>_name.sql. A file called 0001_… is silently skipped. Generate the prefix with date -u +%Y%m%d%H%M%S.

Deploy

The site is hosted on Cloudflare Pages:
Serve it from a custom domain rather than the *.pages.dev host. A branded login form on a free pages.dev subdomain looks like credential phishing to reputation filters, and visitors were getting an unsafe-site warning. For the same reason, the Google and X sign-in buttons stay hidden behind OAUTH_ENABLED in login.html until those providers are configured.

Secrets

Edge function secrets live under Edge Functions → Secrets in the Supabase dashboard, not under Project Settings. They take effect immediately, without a redeploy.

Known gaps

  • Deleting a user from the Supabase dashboard removes their rows but leaves their files in the storage bucket, where nobody can reach them. The in-app delete handles this correctly. The dashboard path still needs an edge function that clears storage first.
  • Google and X sign-in need provider credentials before those buttons work.
  • In light mode, the --ok and --watch colours fall below WCAG AA contrast when they tint small chip text.

Next steps

Architecture

Grading, security, and how each importer turns a file into proposals.

Access control

Invite-only sign-up, access codes, and approving from the inbox.

Mac & iPhone apps

Importing Apple Health, and the code both apps share.

Biomarker reference

All 41 biomarkers, their units, systems and bands.