bonfireDB vs the alternatives

An honest, side-by-side comparison of clinical backends on the axis that matters for AI-native health apps: can an agent read — and safely aggregate — the record? Plus the table-stakes for app builders. We map each option across the dimensions that decide whether you ship in a weekend or assemble a clinical platform for months — typed app primitives, fresh reads, reactive caching, semantic search, agent layers, write-enforced authorization, audit, and FHIR conformance.

New to this? Start with why build on FHIR and FHIR explained for app developers.

The master matrix

Pick up to three alternatives to put head-to-head with bonfireDB — it’s always in the final column. Each cell reflects bonfireDB’s design and positioning, not shipped traction. Vendor pricing and capabilities change; treat figures as a point-in-time snapshot and verify current pricing/capabilities (2026) before deciding.

MedplumAWS HealthLakeHAPI FHIRAidboxFirely ServerSmile CDRGoogle Healthcare APIAzure Health DataPlain PostgresSupabase / ConvexbonfireDB
TypeOpen-source FHIR-native developer platform ("headless EHR")Managed FHIR R4 datastore (interop/analytics-first)Open-source FHIR server + toolkit (data store, not an app framework)Commercial production-grade FHIR server + data platformCommercial, certified turn-key native FHIR server (formerly Vonk)Enterprise FHIR clinical data repository / health-data fabricManaged FHIR/HL7v2/DICOM data plane (not an app)Managed enterprise FHIR R4 server (PaaS); MIT OSS engine to self-hostGeneral-purpose relational DB — not a healthcare/FHIR productGeneral-purpose app backend (BaaS); not healthcare- or FHIR-awareAgent-native clinical backend; FHIR generated underneath
Language / stackTypeScript end-to-end; Node + Postgres + RedisClosed managed AWS service; internal storage/index engine not publicly documentedJava / JPA-Hibernate, Spring Boot, Lucene or ElasticsearchClojure/JVM core; PostgreSQL JSONB storage.NET / C# on Firely .NET SDK; SQLite / SQL Server / MongoDBJava / JVM on HAPI FHIR; Linux-only; Postgres/Oracle/MSSQL + ES + KafkaClosed-source Google-managed; REST/gRPC + client libsManaged PaaS over microsoft/fhir-server (C#/.NET, Azure SQL or Cosmos DB)PostgreSQL (C) + pgvector; app tier in any languageSupabase: Postgres + PostgREST/GoTrue/Realtime. Convex: Rust + TypeScript reactive backendTypeScript + Postgres + pgvector
License / costApache-2.0 core (free self-host); managed cloud is paid — see vendor pricingProprietary; ~$197/mo per datastore always-on (Advanced tier) + request costsApache-2.0, $0 license; you run infra/ops, or pay Smile CDRProprietary; Dev free (no PHI), Base from ~$19K/yr (verify current pricing, 2026)Closed-source; flat-fee annual license, contact-sales (no public pricing)Commercial, closed-source, contact-sales; per-module premium license keysProprietary pay-as-you-go; free tier, no license fee — see vendor pricingManaged: proprietary, consumption-priced (free request tier); OSS engine MIT — see vendor pricingFree (PostgreSQL + pgvector BSD-style); pay infra + engineeringSupabase core Apache-2.0; Convex core FSL-1.1 (auto-converts to Apache-2.0 two years after each release), not Apache-2.0 today. HIPAA/BAA paid: Supabase Team + HIPAA add-on; Convex BAA from a paid tier — see vendor pricingApache-2.0 core (free) + managed tier
HostingManaged cloud or self-host on your AWS (~0.5 FTE ops)Managed-only (AWS cloud); no self-host or local devSelf-host (Docker/Tomcat) by default; managed only via commercial Smile CDRBoth — self-hosted (Docker/K8s) or managed cloudSelf-hosted only (anywhere); no production managed SaaSSelf-host (Docker/K8s, Linux) or managed; no free sandboxGoogle-managed only; no self-host or VPCManaged in Azure (no DB access) or self-host OSS in your subscription; Azure-onlySelf-managed or managed (RDS/Aurora/Cloud SQL/Azure), HIPAA-eligible under BAABoth managed (primary) or self-host; HIPAA controls only on hosted + BAAYour AWS (OSS) or managed
App-native typed APIFHIR-native + generated types; no custom resource types (use Basic/extensions)No — standard FHIR R4 REST, no typed clinical SDKNo — FHIR data store; build your typed app layer yourselfFHIR-first; custom resources, but not typed app primitivesNo — FHIR server, not an app platform; BYO app/business logicNo — FHIR REST surface; custom logic via Java interceptorsNo — raw FHIR resources, no typed app primitivesNo — you code against the FHIR REST API; no custom resource typesNo — JSONB + SQL; you build every clinical primitiveYes (generic): Supabase auto REST/GraphQL; Convex end-to-end typed TS — no clinical modelYes — typed clinical primitives
Fresh-on-commit app readsYes — strongly consistent; writes immediately searchableEventual by default; strong is opt-in, doubles write costYes for structured search (ACID relational); full-text index is async unless forcedYes — Postgres ACID gives strong read-after-writeFHIR-search-backed; no guaranteed read-your-write app contractParameter search is transactional; full-text (ES) is async by defaultNo — search indexed async; only identifier synchronousWrites strongly consistent; search index decoupled, lenient, needs reindex for custom paramsYes — native ACID/MVCC strong read-after-write consistencyYes — Postgres MVCC / Convex OCC; strongly consistent (but no clinical read model)Yes — committed operational read models
Reactive realtime cacheSubscriptions + useSubscription hook; no auto-reactive query cacheServer-push Subscriptions (Oct 2025); not a reactive cacheSubscriptions (REST-hook/WebSocket/topic), but no app-native reactive cache hookServer-push subscriptions + $watch API; no frontend live-query cacheDated: STU3/R4 rest-hook subscriptions only; no WebSocket pushServer-side FHIR Subscriptions (Kafka/WebSocket); no client reactive cacheNo — Pub/Sub change events, not client pushNo native Subscription; Event Grid only, unordered, at-least-once, bulk lag up to daysPrimitives only (LISTEN/NOTIFY, logical decoding); no reactive layerYes — Convex live queries; Supabase Postgres-Changes/Broadcast/Presence (single-thread WAL limits)Yes — useClinicalQuery
Built-in semantic searchNo built-in vector/semantic search; DIY on PostgresNone native — bolt on Bedrock/OpenSearch vectors yourselfNo native vector/embeddings; full-text keyword only (_content/_text :contains)None built in — you add pgvector/embeddings yourselfNone — no vector/embeddings/RAG (verified)No native vector/semantic search; parameter + full-text onlyYes — Agent Search for healthcare ships FHIR-native semantic search today, but sunsets 2027-05-15None in-store; no _text/_content; $export to Fabric/Azure AI for embeddingspgvector primitive only; pipeline + result authz are DIYGeneric only — pgvector (Supabase) / native vector search + RAG (Convex); not PHI/ABAC-awareBuilt in — pgvector, ABAC-enforced
Agent / MCP layerMCP server shipped (June 2025); at launch flagged experimental + PHI-prohibited — docs have since softened, re-verifyOfficial AWS Labs OSS HealthLake MCP server (Jan 2026): 11 FHIR tools (CRUD, search, $patient-everything, import/export), read-only mode — self-hosted companion, not an in-service runtime; raw-FHIR agents still cap ~50% (FHIR-AgentBench)None native — no MCP or LLM/agent layer; entirely DIYNo native MCP/agent layer; SQL-on-FHIR/GraphQL building blocks onlyNone built in; raw-FHIR agents cap ~50% (FHIR-AgentBench)No product MCP or agent layer; build over raw FHIR RESTNone built in — roll your own over FHIRNone built in; build your own RAG/agent downstream after $exportNone — no MCP/agent layer; you build it allGeneric AI/RAG/agent components; build your own — no clinical/consent-aware retrievalBuild-your-own-MCP over clean projections
Clinical authorization (write-enforced)Yes — Access Policies, ABAC criteria, compartments, write constraintsSMART scopes + fixed GP-relationship rule; no custom write ABACYes — AuthorizationInterceptor enforces request and response; no built-in authenticationStrong — AccessPolicy RBAC/ABAC + element-level Security LabelsOAuth2 resource server; SMART scopes + compartments, BYO IdPMature SMART/OAuth2 + compartment & partition permissions (write-enforced)IAM (store-level) + read-only Consent; writes not enforcedCoarse service-level Entra RBAC; patient-scoped needs SMART Enhanced sample + APIMRLS + roles only; clinical ABAC/SMART/consent are your codeNo clinical authz: Supabase RLS hand-written SQL; Convex has no RLS, all checks in codeRead + write enforced ABAC, auto-audit
Automatic audit / provenanceFull FHIR AuditEvents, but REST capture needs logAuditEvents enabledCloudTrail API logs; no auto FHIR AuditEvent/ProvenanceOptional automatic AuditEvents via BALP interceptor once registeredAutomatic BALP AuditEvents (opt-in setting; $import/GraphQL gaps)Tamper-resistant BALP AuditEvents, but plugin-enabled + paid Scale tierAutomatic — all actions audited to admin-schema audit DB by defaultCloud Audit Logs (platform), not auto FHIR AuditEventsNo FHIR AuditEvent written; Azure Monitor AuditLogs (caller, IP, URI) you route yourselfWAL/triggers only; FHIR AuditEvent/Provenance hand-builtNo clinical audit — generic DB logging only; no AuditEvent/ProvenanceAutomatic
FHIR conformance / exportFHIR R4 native, US Core, ONC (g)(10) certified; $everything/Bulk exportMature FHIR R4 (no R4B/R5); US Core v7, Bulk Data v2, Da VinciNative FHIR-first: DSTU2-R5, full REST, $export; certs only via commercial Smile CDRBroad — STU3–R6, 500+ IGs, ONC (g)(10) certified, Bulk exportBest-in-class: native STU3/R4/R5, ONC g(10), US Core, SMART certifiedFull DSTU2-R5, ONC (g)(10) + Drummond certified, Bulk Data $exportMature DSTU2/STU3/R4; validation, history, Bulk $exportStrong, spec-faithful R4 (+STU3); transaction bundles, chained search, $export; no R4B/R5/terminologyNone out of the box; full FHIR API, search, export, g10 from scratchNone — no FHIR model, endpoints, validation, $-ops, _history, or bulk exportFHIR R4 generated underneath; scoped conformance (honest: not a full enterprise FHIR server)
Best forTeams wanting a mature, certified FHIR platform to build onEnterprise interoperability, payer exchange, analytics at scaleTeams needing proven, broad FHIR conformance with Java/DevOps capacityTeams needing certified, broad, scalable FHIR todayEnterprises/regulated orgs needing certified, validation-grade FHIRPayers, providers, government interoperability programs at scaleEnterprise interop, data harmonization, analytics pipelinesManaged interoperability, ingestion, and data platforms at enterprise/Epic scaleTeams/vendors with depth and time to build + certify the clinical layer themselvesSmall teams shipping a general app fast and willing to build the entire healthcare layer themselvesBuilders of AI-native health apps (scribes, copilots, agents)

Head-to-head comparisons

Read the full, honest breakdown for any alternative.

bonfireDB vs Medplum

Medplum is the mature, ONC-certified FHIR-native backend you build a clinical app on; bonfireDB is an earlier-stage, app-first clinical layer that generates FHIR underneath instead of asking you to model everything as FHIR.

Compare →

bonfireDB vs AWS HealthLake

A managed FHIR R4 datastore built for enterprise interoperability and analytics, compared with a TypeScript clinical backend designed for one team building an app fast.

Compare →

bonfireDB vs HAPI FHIR

HAPI FHIR is the mature, conformant open-source FHIR engine; bonfireDB is an early-stage app-native clinical backend that generates FHIR underneath — this compares a data store you build on against a framework you build with.

Compare →

bonfireDB vs Aidbox (Health Samurai)

Aidbox is a mature, certified, proprietary FHIR-on-Postgres platform you license; bonfire is an early-stage, open-source, app-and-agent-native clinical backend that generates FHIR underneath.

Compare →

bonfireDB vs Firely Server (Vonk)

Firely Server (Vonk) is the certified, conformance-first FHIR data layer you buy to prove interoperability; bonfire is the OSS clinical app backend you build on when one team needs fresh reads, ABAC, and AI over their own data.

Compare →

bonfireDB vs Smile CDR

Smile CDR is the enterprise FHIR data fabric for payers, providers, and government interoperability programs; bonfireDB is an early-stage app-building backend for teams shipping outpatient and AI healthcare products fast.

Compare →

bonfireDB vs Google Cloud Healthcare API

Google Cloud Healthcare API is a mature, fully-managed FHIR/HL7v2/DICOM data plane for enterprise interoperability and analytics; bonfireDB is an early-stage app-native clinical backend that generates FHIR underneath so a small team can ship an outpatient or AI healthcare product fast.

Compare →

bonfireDB vs Azure Health Data Services

Azure Health Data Services is a mature, fully-managed enterprise FHIR server for interoperability and data platforms; bonfireDB is an early-stage, app-native clinical backend that generates FHIR underneath so a single product team can ship fast.

Compare →

bonfireDB vs Plain Postgres (roll-your-own)

Plain PostgreSQL is the maximum-control, maximum-work foundation — a world-class database with zero healthcare functionality — while bonfire is an opinionated clinical backend built on that same Postgres so you don't hand-build the FHIR, authz, audit, and agent layers yourself.

Compare →

bonfireDB vs Supabase / Convex (general backend)

Supabase and Convex are excellent general-purpose backends — but they hand you a database and realtime plumbing, not a healthcare data layer; with them you build the FHIR server, the terminology, and the clinical access control yourself, whereas bonfire ships those as the product.

Compare →
bonfireDB is early-stage / pre-launch — its column reflects design and positioning, not shipped traction, vs each competitor as it ships in 2026. Vendor pricing and capabilities move fast; the figures and feature notes here are a point-in-time snapshot — verify current pricing/capabilities (2026) with each vendor before deciding. FHIR® is a registered trademark of Health Level Seven International (HL7®), registered with the U.S. Patent and Trademark Office; its use here does not constitute endorsement by HL7. SMART™ and SMART on FHIR® are trademarks of The Children’s Medical Center Corporation. All other trademarks are the property of their respective owners.

You build the app. Bonfire is the clinical data layer underneath.

Open source. Runs in your AWS. The clinical layer is handled.

FAQ

Frequently asked questions

What is the best FHIR backend for building a healthcare app?

It depends on your goal. Mature FHIR servers fit teams that need broad conformance and have ops capacity — Medplum and Aidbox are ONC (g)(10) certified, while HAPI FHIR is a free open-source engine you certify yourself. bonfireDB is designed for founders shipping outpatient or AI apps fast: typed clinical primitives, fresh reads, and ABAC-enforced search, with FHIR R4 generated underneath rather than modeled by hand. It's early access and pre-launch.

What is a good AWS HealthLake alternative?

HealthLake is a managed FHIR R4 datastore built for enterprise interoperability and analytics, priced around $197/mo per always-on datastore plus request costs, managed-only, with eventual-consistency search by default. If you're a small team building an app rather than an interop pipeline, an app-native backend like bonfireDB, Medplum, or Aidbox is usually a closer fit. bonfireDB is designed to run in your own AWS (OSS) or managed, with committed operational read models.

How do I choose between a FHIR server and plain Postgres for clinical data?

Plain Postgres gives you maximum control and zero healthcare functionality — you build the FHIR API, terminology, authorization, audit, and export from scratch. A FHIR server or clinical backend ships those for you. bonfireDB is built on Postgres + pgvector and is designed to add typed clinical primitives, write-enforced ABAC, automatic audit, and generated FHIR R4, so you don't hand-build the clinical layer.

Is Supabase or Convex enough for a HIPAA healthcare app?

Supabase and Convex are excellent general backends, but neither is healthcare- or FHIR-aware. You'd build the FHIR model, terminology, clinical access control, and audit yourself, and HIPAA controls require their paid hosted tiers with a BAA. bonfireDB is designed as the clinical data layer above that gap, shipping FHIR generation, ABAC, audit, and clinical primitives as the product.

Which FHIR backend has built-in semantic search and an agent layer?

As of 2026, most FHIR servers (HAPI, Aidbox, Firely, Smile CDR, Azure) have no native vector search and leave embeddings DIY. Google's Agent Search for healthcare offers FHIR-native semantic search today but is slated to sunset 2027-05-15 (verify current). bonfireDB is designed with built-in pgvector semantic search that's ABAC-enforced, plus build-your-own-MCP over clean projections so agents work over consent-aware data. Verify each vendor's current capabilities before deciding.