What we use
The stack and the models
The site
| Component | What it is |
|---|---|
| Next.js ^15.5.28, React ^19.1.0 | Web framework, written in TypeScript |
| Vercel | Hosting |
| PostgreSQL through Prisma, on Neon | Database of synthetic data |
| CodeMirror 6 | Code editor in the tools |
| cql-execution, cql-exec-fhir | CQL engine |
| gray-matter, marked | Markdown and page content |
| Inter, JetBrains Mono (next/font/google) | Fonts, fetched at build time and served from this site |
| @noble/hashes | Hashing |
| GitHub Actions | Source and CI (13 workflows) |
| Vercel Analytics, Google Analytics 4 | Analytics, described on the privacy page |
Who builds it is on the about page.
The validator
Payloads are checked by a sidecar that runs the HL7 FHIR Validator (Inferno community image) and HAPI FHIR. It sits on a VPS behind a Cloudflare Tunnel and Cloudflare Access. The host provider is named on the security page.
The standards feed (HORIZON)
| Component | What it is |
|---|---|
| Cloudflare Worker, D1 database | The HORIZON app at horizon.imonfhir.com |
| Supabase: Postgres, Edge Functions, pg_cron | The feed back end and its scheduled jobs |
| Resend inbound | Receives HL7 list mail by email |
| Anthropic API | The model provider for summaries |
Models and spend
The summariser's default model is claude-haiku-5-5, used when HORIZON's DIGEST_MODEL setting is not set. The deployed setting is not stated in the repository. The model reads Zulip threads and list traffic and writes summaries that stay unreviewed until the owner reviews them; see machine summary. It runs on 7 * * * * (cron).
The cap is US$10 per calendar month, and runs stop at US$9.5. The Anthropic workspace's own spend limit, US$10 a month, is the hard stop.
The cap covers summarising. Reading Zulip is limited by time and channel count per run, not by money.
Read from the repositories on 6 November 2026.