Encrypt anything, in any app

Not just chat.
Encrypt any data.

The same cryptographic primitives — one hook, one pattern — work for healthcare records, legal documents, support conversations, financial PII, and more.

Healthcare

HIPAA

HIPAA-compliant patient data

Encrypt before it leaves the browser.

Patient intake forms, lab results, and clinical notes are encrypted on the patient's device before reaching your server. Your database stores only ciphertext — a breach exposes nothing readable.

Without Encra

Storing PHI in plaintext creates HIPAA liability even if you encrypt the database volume.

useE2EForm()

Encrypt form fields client-side before submission

encryptField()

Per-column database encryption without a key server

useE2EFile()

Encrypt medical images and PDFs before upload

const { encryptFields } = useE2EForm({ apiKey, userId })

const payload = await encryptFields({
  name:      formData.get('name'),
  dob:       formData.get('dob'),
  diagnosis: formData.get('diagnosis'),
}, 'doctor-userId')

// payload values are ciphertext — safe to store or transmit
await fetch('/api/patient', { method: 'POST', body: JSON.stringify(payload) })

Only the doctor can read the diagnosis. Your database admin cannot.

Customer Support

SaaS

Private support chat, out of the box.

Your users deserve confidentiality.

Drop E2E encryption into your support channel with one hook. Customers share sensitive information — account numbers, personal details — knowing only the assigned support agent can read it.

Without Encra

Support conversations are stored in plaintext, readable by any employee or attacker who compromises your system.

useE2EChat()

One hook for encrypted real-time support messaging

const { messages, isReady, sendMessage } = useE2EChat({
  apiKey,
  userId: currentUser.id,
})

// Customers and agents chat — nobody else can read it
// not your DB admin, not your cloud provider
<button
  disabled={!isReady}
  onClick={() => sendMessage(agentId, inputText)}
>
  Send
</button>

Add it in an afternoon. Your support team gets normal UX — your users get Signal-level privacy.

Fintech

PCI / SOC 2

Encrypt PII at the field level.

Reduce your compliance scope dramatically.

Encrypt account numbers, SSNs, and financial records with a per-field symmetric key. Store ciphertext in your existing database schema. No schema changes, no new infrastructure — just smaller compliance scope.

Without Encra

Storing financial PII in plaintext columns means every database breach is a regulatory event.

encryptField()

Field-level encryption with no server or key exchange required

useE2EForm()

Encrypt financial form submissions before they hit your API

import { encryptField, decryptField, generateFieldKey } from '@encra/core'

// Run once, store the key in your secrets manager
const key = await generateFieldKey()

// Encrypt before INSERT
const encSsn = await encryptField(user.ssn, key)
await db.query(
  'INSERT INTO users (ssn_ct, ssn_nonce) VALUES ($1, $2)',
  [encSsn.ciphertext, encSsn.nonce]
)

// Decrypt at read time
const ssn = await decryptField({ ciphertext, nonce }, key)

No key server needed. No network calls. Just encrypt the column before INSERT.

HR & Payroll

GDPR

Employee data that only HR can read.

Enforce data minimisation by default.

Salary data, performance reviews, and disciplinary records are encrypted for the HR team. Engineering, finance, and other departments cannot access them — even with full database access.

Without Encra

Salary data and performance reviews sitting in plaintext violate GDPR data minimisation requirements.

useE2EForm()

Encrypt performance review submissions end-to-end

encryptField()

Encrypt salary columns — readable only by payroll

// Only HR's userId can decrypt these fields
const payload = await encryptFields(
  {
    salary:     '120000',
    review:     'Exceeds expectations. Promotion recommended.',
    equity:     '0.05%',
  },
  'hr-manager-userId'
)

await submitToHRSystem(payload)

Engineering can query the database. They still can't read salaries.

Enterprise

Zero Trust

Encrypt internal tools and audit trails.

Zero trust starts with zero plaintext.

Internal communications, audit logs, and sensitive configuration — encrypted between authenticated employees. No insider threat can read data they don't have the key for. Self-host the key server on your own infra for full control.

Without Encra

Insider threats are the leading cause of enterprise data breaches. Plaintext access controls are not enough.

useE2EChat()

Encrypted internal messaging between team members

useE2EFile()

Encrypt sensitive documents and configuration files

@encra/server

Self-host the key server on your own infrastructure

// Self-hosted key server — your infrastructure, your control
const { messages, sendMessage } = useE2EChat({
  apiKey,
  userId:    employee.id,
  serverUrl: 'https://keys.your-company.com',  // self-hosted
})

Run the key server on your infra. Your cloud provider never sees the keys.

Free during beta

Your use case. One SDK.

Healthcare, legal, finance, SaaS — the same hooks, the same primitives. Start with chat or field encryption and add more as you need them.

Encra AI

Ask me anything · docs, code, troubleshooting

Hi, I'm Encra AI

I can explain concepts, generate starter code, troubleshoot errors, and guide your setup.

May make mistakes · verify critical crypto details