A stateless proxy that adds SMART on FHIR authorization to any FHIR server. Pair with BabelFHIR-TS for type-safe, profile-aware TypeScript — and go from zero to production-ready SMART app in minutes.
Register, manage, and launch SMART on FHIR apps through a single admin interface. Every app gets OAuth 2.0 + PKCE, scope-based access control, and FHIR server routing out of the box.
🏪 Browse the App Store →The hardest part of building a healthcare app isn't the clinical logic — it's the authentication, authorization, and interoperability. We handle that.
Keycloak handles OAuth · Your FHIR server keeps all clinical data
| Layer | Technology |
|---|---|
| Backend | Bun, Elysia, TypeScript |
| Frontend | React 19, Vite, Tailwind CSS |
| Identity | Keycloak + PostgreSQL |
| FHIR Types | BabelFHIR-TS, @babelfhir-ts/client-r4 |
| Testing | Vitest, Bun Test |
| Infra | Docker, AWS CDK |
Install any FHIR Implementation Guide as a node module. Get type-safe interfaces, runtime validation, and a generated FHIR client — all from a single command.
// Install US Core profiles into your project $ npx babelfhir-ts install hl7.fhir.us.core@8.0.0 // Use the generated type-safe FHIR client import { FhirClient } from "./output/fhir-client"; const client = new FhirClient("https://proxy-smart.example.com/fhir"); // Profile-specific methods — fully typed const patient = await client.read().usCorePatient().read("123"); const bundle = await client.read().usCoreCondition().search({ patient: "123" }); // Validate against profile constraints at runtime const { errors, warnings } = await patient.validate();