What we use

The stack and the models

What runs imonfhir.com and the standards feed, which model writes summaries, and what it may spend. Where a fact is not in the repositories, this page says not stated.

The site

ComponentWhat it is
Next.js ^15.5.28, React ^19.1.0Web framework, written in TypeScript
VercelHosting
PostgreSQL through Prisma, on NeonDatabase of synthetic data
CodeMirror 6Code editor in the tools
cql-execution, cql-exec-fhirCQL engine
gray-matter, markedMarkdown and page content
Inter, JetBrains Mono (next/font/google)Fonts, fetched at build time and served from this site
@noble/hashesHashing
GitHub ActionsSource and CI (13 workflows)
Vercel Analytics, Google Analytics 4Analytics, 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)

ComponentWhat it is
Cloudflare Worker, D1 databaseThe HORIZON app at horizon.imonfhir.com
Supabase: Postgres, Edge Functions, pg_cronThe feed back end and its scheduled jobs
Resend inboundReceives HL7 list mail by email
Anthropic APIThe 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.