Dental·Polyglot
SECURITY & PRIVACY · UPDATED 24 MAY 2026

Your data stays in Europe.

DentalPolyglot is built by Europeans, for European clinics, on European infrastructure. Patient data never crosses the Atlantic. Encryption at rest and in transit. GDPR is the floor, not the ceiling.

FRANKFURT
PRIMARY REGION
Vercel fra1 · Neon EU
AES-256
ENCRYPTION AT REST
Postgres + file storage
TLS 1.3
IN TRANSIT
HSTS · auto-renewed certs
GDPR
COMPLIANT BY DEFAULT
DPA on request
01 · THREE COMMITMENTS

Three commitments. Written into the platform.

EU RESIDENCY01

Your data stays in the EU.

Patient records, conversations, treatment plans, attachments: everything lives in Frankfurt on Vercel's fra1 region, with the database in Neon's EU cluster. Nothing replicates across the Atlantic. Nothing.

FRANKFURT · NEON EU · RESEND EU
YOU OWN IT02

You own it. We hold it.

You can export your clinic's content and lead inbox at any time, in formats that don't lock you in. We don't sell data, we don't mine it, we don't train models on it.

FULL EXPORT · ANY TIME · NO FEE
GDPR FLOOR03

GDPR is the floor.

Default-secure account settings. Passwords hashed with Argon2id, never in plaintext, every new password checked against the HaveIBeenPwned breach corpus at set time. Sessions HttpOnly and HMAC-signed. Right to be forgotten, by clinic and by patient, executed within 30 days of request.

30-DAY DELETION · BY CLINIC OR PATIENT
02 · WHERE YOUR DATA LIVES

One region today. Always in the EU.

DentalPolyglot runs on Vercel's Frankfurt region (fra1), with the database in Neon's EU cluster. We don't replicate to the United States, the United Kingdom, or anywhere outside the EU. Our CDN is Vercel's EU edge, our transactional email runs through Resend's EU infrastructure, and our analytics never leave Vercel.

Multi-region disaster recovery is on the roadmap for 2026. When we turn it on, we will publish the architecture and the regions on this page before any data moves.

WHAT LIVES IN FRANKFURT
Patient records
Clinic accounts
Treatment plans
Conversations
X-rays + attachments
Audit metadata
03 · ENCRYPTION & ACCESS

Encrypted at rest. Encrypted in transit.

AT REST
Postgres · file storage · backups
AES-256
Database encryption managed by Neon, keys held in their EU infrastructure
File uploads stored under opaque UUIDs, original filename kept as metadata only
Automatic backups encrypted at rest, EU-resident, retained per Neon's standard policy
Secrets stored in Vercel encrypted environment, never in code
IN TRANSIT
TLS 1.3 · HSTS
TLS 1.3
All traffic forced HTTPS via HSTS
Perfect forward secrecy (ECDHE)
Certificate auto-renewal via Let's Encrypt
No TLS 1.0 / 1.1 / 1.2 support
ACCESS · WHO TOUCHES YOUR DATA

Two roles. Every query scoped at the database layer.

Clinic staff
Their own clinic only. Every database query filters by tenant ID derived from the signed session, never from client input.
ENFORCED IN CODE · REVIEWED ON EVERY CHANGE
Platform operator
Production access is limited to support and translation review. No outside contractors hold production credentials.
LEAST PRIVILEGE · 2FA REQUIRED · LOGGED
04 · SUB-PROCESSORS

Every vendor. Every country.

UPDATED 24 MAY 2026 · email privacy@dentalpolyglot.com for change notifications

Every third party that touches data we hold for you. We notify clinics in writing 30 days before any change. If you're on a DPA with flow-down, you can object to a new sub-processor and we'll work with you.

Vercel
Hosting · fra1 region · CDN edge
EU edge · US HQ
DPA on request
Neon
Postgres database
EU region
DPA on request
Resend
Transactional email
EU region
DPA on request
Upstash
Rate-limit cache (Redis)
EU region
DPA on request
Anthropic
AI translation of clinic content
US, EU processing addendum
Per Anthropic's API terms: no model training on inputs
Stripe
Clinic subscription payments (never patient cards)
Ireland
PCI DSS Level 1
Vendors that are NOT on this list, on purpose
GOOGLE ANALYTICS · META PIXEL · MIXPANEL · SEGMENT · GTM · ANY US-RESIDENT CRM
ABOUT THE ONE US PROCESSOR

Anthropic is the one US-headquartered vendor on this list. Clinic content (page copy, treatment-plan source text) is sent to Claude only when a clinic asks for translation. We use the standard API, which Anthropic states is not used to train their models. We do not send patient identifiers in translation prompts.

05 · PATIENT RECORDS · A SPECIAL CASE

Dental records are medical data. We treat them as such.

Photos, X-rays, treatment plans, conversations between a patient and the clinic are Article 9 special category data under GDPR. We hold them under stricter rules than the rest of the platform.

Photos and X-rays

Encrypted on upload, never indexed for search, never used for ML training. Only the patient, their clinic, and a DentalPolyglot translator working on the case can access them.

Conversation history

Stored encrypted at rest. Auto-translated copies are derived from the original, never shared with third parties, deleted alongside the source on request.

Treatment plans

Generated server-side, archived as branded PDF, downloadable by patient and clinic. Retained for the legal period required by the clinic's jurisdiction.

Identifiable information

Patient name, email, phone stored separately from medical content, linked only via opaque IDs. Defense in depth: a breach of one layer does not expose the other.

RETENTION POLICY · IN PLAIN LANGUAGE

We hold patient records as long as the clinic needs to under local medical record law (typically 10 years in DE/AT/IT, 5 years in RO). After that, or sooner on request, records are deleted, including from backups within the next snapshot cycle.

DELETION SLAs
Patient request · 30 days
Clinic offboarding · 60 days
Backup overwrite · next cycle
Audit metadata retained · 7 years
06 · ACCOUNT SECURITY

Strong defaults. Boring is the point.

Password sign-in
ARGON2ID · HIBP-CHECKED

Returning sign-ins use email + password. Passwords are hashed with Argon2id (OWASP-aligned parameters), never stored in plaintext, and every new password is checked against the HaveIBeenPwned breach corpus at set time. Forgot it? A one-time link to your verified email, no security questions, no SMS codes.

Session cookies
HTTPONLY · SAMESITE=LAX

Sessions are HttpOnly, SameSite=lax, secure in production. The cookie name and TTL are constants in the code, not hand-rolled per route.

Tenant isolation
ENFORCED IN CODE

Every database query that reads clinic data scopes by tenant ID derived from the session. We never trust a client-supplied tenant ID. The pattern is reviewed on every change.

Input validation
ZOD ON EVERY API ROUTE

Every API endpoint validates its request body against a Zod schema before doing anything. Malformed input is rejected at the door with a clear error code.

Rate limiting
FAIL-CLOSED ON COST-BEARING

Sign-in attempts are rate-limited per IP and per email, fail-closed (a Redis outage blocks rather than bypasses). AI translation and scrape are rate-limited per tenant, also fail-closed. Contact forms are rate-limited per IP and fail-open (a Redis hiccup never blocks a real patient).

Browser hardening
STRICT CSP · COOP · COEP · CORP

Every page ships with a strict Content-Security-Policy using per-request nonces and strict-dynamic, plus cross-origin isolation headers (COOP, COEP, CORP). If an attacker ever managed to inject content, the browser would refuse to run it. securityheaders.com grades us A+.

Webhook signatures
VERIFIED BEFORE PROCESSING

Stripe and Resend webhooks are signature-verified before we touch the payload. Unverified webhooks return 400 and never reach the database.

ON THE ROADMAP FOR 2026 · SSO / SAML FOR CONCIERGE · AUDIT-LOG EXPORT · IN-APP SESSION MANAGEMENT
07 · RESPONSIBLE DISCLOSURE

Find something. Tell us.

We don't run a paid bug bounty yet. We do read every security report, we acknowledge within 24 hours, and we fix critical issues fast. If you've found something, please email us with a description and reproduction steps. Public credit on this page unless you ask us to skip it.

security@dentalpolyglot.com

We acknowledge within 24 hours. We aim to resolve critical issues in 48 hours, high in 7 days, medium in 30 days. We will tell you what we did, and what we changed.

SCOPE
IN SCOPE
  • · dentalpolyglot.com
  • · *.dentalpolyglot.com tenant sites
  • · Our API endpoints
OUT OF SCOPE
  • · Rate-limit or volumetric testing on production
  • · Social engineering of staff or clinics
  • · Physical attacks on infrastructure
08 · TALK TO US

Lawyers welcome.
Privacy officers especially.

DOCUMENTS · AVAILABLE ON REQUEST
Data Processing AgreementPDF · by email
Sub-processor listthis page, kept current
Privacy policyHTML · /privacy
DPIA templatePDF · fill-in-able

Email privacy@dentalpolyglot.com and we will send what you need within one working day.

SECURITY
security@dentalpolyglot.com
Bugs, vulnerabilities, suspicious activity.
PRIVACY / DPO
privacy@dentalpolyglot.com
Data subject requests, DPA negotiation, GDPR questions.
LEGAL / COMPLIANCE
legal@dentalpolyglot.com
Contracts, regulator inquiries, audit requests.