Why reinvent the backend when you can ship in weeks?
The era of coding copilots is here
The bottleneck has shifted. Writing code is no longer the hard part. Making it compliant, secure, and production-ready is.
Building fast is easy. Building right is hard.
A healthcare app with a security breach doesn't just lose users — it faces lawsuits and regulatory action.
┌─────────────────────────────────────────────────────────────┐ │ TIMELINE: Healthcare Backend From Scratch │ │ │ │ Month 1-2 Authentication, RBAC, user management │ │ Month 2-4 Data model design, API development │ │ Month 3-5 Encryption implementation & key management │ │ Month 4-6 FHIR/HL7 interoperability mapping │ │ Month 5-7 Security audit & penetration testing │ │ Month 6-9 GDPR/HIPAA compliance certification │ │ Month 7-10 Performance testing & hardening │ │ Month 9-12 Bug fixes, edge cases, key recovery │ │ │ │ Total: 9–12 months before you can even start on UX │ └─────────────────────────────────────────────────────────────┘
A production-ready backend for health data applications
api.icure.cloud
Compliant, pen-tested, and E2E encrypted out of the box
Cardinal encrypts before data leaves the device
Your App (Client) Cardinal (Server) ┌─────────────────┐ ┌─────────────────┐ │ │ │ │ │ Patient data │ Already │ ████████████ │ │ "John Doe" │ ──────────────> │ ████████████ │ │ BP: 140/90 │ Encrypted │ ████████████ │ │ │ │ │ │ SDK encrypts │ │ Server CANNOT │ │ automatically │ │ read the data │ └─────────────────┘ └─────────────────┘
Zero-knowledge architecture: Neither Cardinal's team, nor your ops team, nor any attacker who compromises the server can read patient data.
Military-grade encryption without the PhD
┌─────────────────────────────────────────────────────────┐ │ Layer 1: PERSONAL KEYS (RSA) │ │ One per user — stored on device only │ │ Used to decrypt exchange keys │ ├─────────────────────────────────────────────────────────┤ │ Layer 2: EXCHANGE KEYS (AES) │ │ One per data-sharing relationship │ │ Enables secure collaboration between users │ ├─────────────────────────────────────────────────────────┤ │ Layer 3: ENTITY KEYS (AES) │ │ One per medical record │ │ Encrypts the actual patient data │ └─────────────────────────────────────────────────────────┘
HMAC-SHA256 signatures ensure key authenticity — even a compromised database can't forge access.
It's not just about checking a box
GDPR Article 32 & HIPAA Security Rule both recommend encryption. Cardinal makes it the default, not an afterthought.
Developers never touch keys, ciphers, or delegations directly
// Create a patient — SDK encrypts automatically const patient = await sdk.patient.createOrModifyPatient( new Patient({ firstName: "Jane", lastName: "Doe" }) ) // Create medical data — encrypted before leaving the device const contact = new DecryptedContact({ descr: "Annual checkup" }) const created = await sdk.contact.createContactWithPatient(patient, contact) // Share with another doctor — key exchange happens behind the scenes await sdk.contact.shareWith(otherDoctorId, created) // Retrieve — SDK decrypts transparently const retrieved = await sdk.contact.getContact(created.id) console.log(retrieved.descr) // "Annual checkup" ← decrypted
created
modified
author
Pre-built, battle-tested, and ready to go
No schema design needed — Cardinal models the real world
┌─────────────────────────────────────────────────────────┐ │ PATIENT │ │ ┌───────────────────────────────────────────────────┐ │ │ │ CONTACT (visit / lab result / phone call) │ │ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ │ │ SERVICE │ │ SERVICE │ │ SERVICE │ │ │ │ │ │ Blood │ │ Diagnosis │ │ Prescr. │ │ │ │ │ │ pressure │ │ │ │ │ │ │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │ │ └───────────────────────────────────────────────────┘ │ │ ┌───────────────────────────────────────────────────┐ │ │ │ HEALTH ELEMENT (chronic condition, allergy...) │ │ │ └───────────────────────────────────────────────────┘ │ │ ┌───────────────────────────────────────────────────┐ │ │ │ DOCUMENT (PDF, imaging, scans — encrypted) │ │ │ └───────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────┘
Everything you need for a health application
Medical codification built in: SNOMED-CT, LOINC, ICD-10, ATC — all supported through the Code/CodeStub system.
The Service entity supports 10+ content types out of the box
numberValue
stringValue
measureValue
medicationValue
timeSeries
documentId
compoundValue
booleanValue
fuzzyDateValue
binaryValue
Speak the language of healthcare systems
Connect to the existing healthcare ecosystem
Every entity supports FHIR-compliant identifiers
{ system: "http://hospital.org/mrn", value: "MRN-12345", type: { type: "MR" }, assigner: "St. Mary's Hospital" }
Out-of-the-box FHIR mapping
Built-in support for standard vocabularies
Why it matters: Health apps don't exist in isolation. Hospitals, insurers, labs, and pharmacies all speak FHIR/HL7. Cardinal speaks it natively.
┌──────────────────────────────────────────────────────────┐ │ Building interoperability from scratch │ │ │ │ 1. Study FHIR R4 spec (600+ pages) │ │ 2. Map your data model to FHIR resources │ │ 3. Implement identifier system │ │ 4. Build code system integration (SNOMED, LOINC, ...) │ │ 5. Handle versioning and migrations │ │ 6. Test against conformance suites │ │ 7. Maintain as specs evolve │ │ │ │ 3-6 months of specialized work │ └──────────────────────────────────────────────────────────┘ ┌──────────────────────────────────────────────────────────┐ │ With Cardinal │ │ │ │ ✓ FHIR identifiers on every entity │ │ ✓ Code/CodeStub system maps to any standard │ │ ✓ Searchable by system + value │ │ ✓ Already designed for healthcare workflows │ │ │ │ Ready on day one │ └──────────────────────────────────────────────────────────┘
Five SDKs. Real-time events. Ship fast.
One backend, every platform
Same API, every language. Learn it once, use it everywhere. The cryptographic complexity is hidden behind clean, idiomatic interfaces.
React to medical data changes instantly
// Subscribe to new contacts for the current user const events = await sdk.contact.subscribeToEvents( ["CREATE"], await sdk.contact.filterContactsBy(/* your filter */) ) for await (const event of events) { // ML analysis, notifications, integration workflows... console.log("New contact created:", event.contact.id) }
Complex access control, simple API
Dr. Alice creates a record │ ├── Shares with Dr. Bob (READ_WRITE) │ └── Dr. Bob can read AND modify │ ├── Shares with Patient Jane (READ) │ └── Jane sees her own data │ └── Server CANNOT see Jane's identity (anonymous delegation) │ └── Shares with Lab (READ) └── Lab reads results only
Authentication, registration, and roles out of the box
Key recovery is built in: password-protected backups, file export/import, notary system for sharing recovery keys with trusted parties.
AI writes code. Cardinal makes it safe.
┌──────────────────────────────────────────────────────────┐ │ YOUR APPLICATION │ │ │ │ ┌────────────────────────────────────────────────────┐ │ │ │ Frontend / UX ←── Built fast with AI copilots │ │ │ │ Business Logic ←── Claude Code / Copilot / Codex │ │ │ └────────────────────────┬───────────────────────────┘ │ │ │ Cardinal SDK │ │ ┌────────────────────────▼───────────────────────────┐ │ │ │ Cardinal Backend │ │ │ │ ✓ E2E Encryption ✓ FHIR/HL7 Ready │ │ │ │ ✓ GDPR/HIPAA ✓ Pen-Tested │ │ │ │ ✓ Data Model ✓ Real-Time Events │ │ │ │ ✓ Key Management ✓ User Auth │ │ │ └────────────────────────────────────────────────────┘ │ └──────────────────────────────────────────────────────────┘
Ship in weeks, not years. Use AI copilots for your frontend and business logic. Let Cardinal handle the hard, regulated backend.
Focus on what differentiates your product. Don't rebuild what's already been built, tested, and certified.
Cardinal powers applications across the health spectrum
AI copilots changed the game — you can build UIs and business logic faster than ever, but backends still need compliance, security, and pen-testing
E2E encryption by design — zero-knowledge architecture means even a full server breach exposes nothing. Compliance is built into the architecture, not bolted on with policies
Healthcare data model included — Patient, Contact, Service, HealthElement, Document and more — all pre-built with 10+ content types
Interoperability out of the box — FHIR identifiers, SNOMED-CT, LOINC, ICD-10 on every entity. Speak the language of hospitals and labs from day one
Ship in weeks, not months — Five SDKs, real-time events, user management, key recovery. Focus on what makes your app unique
docs.icure.com — Documentation cardinalsdk.com — Overview
Kotlin TypeScript Python Dart Swift